From f0f8fdcb5a7855e48c6e0e0d56a735006c5136e9 Mon Sep 17 00:00:00 2001 From: Joshua <8Joshua@web.de> Date: Mon, 30 Jul 2018 17:23:40 +0200 Subject: [PATCH] =?UTF-8?q?Kalender:=20doppel=20Klick=20zum=20vor=20und=20?= =?UTF-8?q?zur=C3=BCck=20bl=C3=A4ttern=20der=20Wochen=20eingef=C3=BCgt=20D?= =?UTF-8?q?eutsche=20=C3=BCbersetzung=20erweitert?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fuplanner/fragments/ScheduleFragment.java | 33 +++++++++++++++-- .../fuplanner/tools/ui/weekview/WeekView.java | 35 ++++++++++++++++++- app/src/main/res/values-de/strings.xml | 5 ++- app/src/main/res/values/strings.xml | 2 +- 4 files changed, 70 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/de/sebse/fuplanner/fragments/ScheduleFragment.java b/app/src/main/java/de/sebse/fuplanner/fragments/ScheduleFragment.java index b5b54a2..88df9cd 100644 --- a/app/src/main/java/de/sebse/fuplanner/fragments/ScheduleFragment.java +++ b/app/src/main/java/de/sebse/fuplanner/fragments/ScheduleFragment.java @@ -34,11 +34,12 @@ import de.sebse.fuplanner.tools.ui.weekview.WeekViewEvent; * create an instance of this fragment. * */ -public class ScheduleFragment extends Fragment implements MonthLoader.MonthChangeListener, WeekView.ScrollListener { +public class ScheduleFragment extends Fragment implements MonthLoader.MonthChangeListener, WeekView.ScrollListener, WeekView.DoubleTapListener { private MainAcitivityListener mListener; private WeekView mWeekView; private Logger log = new Logger(this); private Modules mModules = null; + private Calendar firstVisibleDay; public ScheduleFragment() { // Required empty public constructor @@ -91,10 +92,14 @@ public class ScheduleFragment extends Fragment implements MonthLoader.MonthChang mWeekView = v.findViewById(R.id.weekView); mWeekView.setMonthChangeListener(this); mWeekView.setScrollListener(this); - + mWeekView.setEventDoubleTapListener(this); return v; } + + + + @Override public void onAttach(Context context) { super.onAttach(context); @@ -142,13 +147,37 @@ public class ScheduleFragment extends Fragment implements MonthLoader.MonthChang @Override public void onFirstVisibleDayChanged(Calendar newFirstVisibleDay, Calendar oldFirstVisibleDay) { + firstVisibleDay = newFirstVisibleDay; Calendar newLastVisibleDay = (Calendar) newFirstVisibleDay.clone(); newLastVisibleDay.add(Calendar.HOUR, 24*mWeekView.getNumberOfVisibleDays()); //mListener.onScheduleFragmentInteraction(newFirstVisibleDay, newLastVisibleDay); mListener.onTitleTextChange(getResources().getString(R.string.date_scale, DateUtils.getModifiedDate(newFirstVisibleDay.getTimeInMillis()), DateUtils.getModifiedDate(newLastVisibleDay.getTimeInMillis()))); } + public void goToToday() { mWeekView.goToToday(); } + + @Override + public void mOnDoubleTapListener(Calendar time) { + Calendar c = Calendar.getInstance(); + c.set(firstVisibleDay.get(Calendar.YEAR), firstVisibleDay.get(Calendar.MONTH), firstVisibleDay.get(Calendar.DAY_OF_MONTH), 0,0 ); + c.add(Calendar.DATE, 2); // die Grenze beim tippen, wann ver nach vorne und wann nach hinten springt + + if (c.getTimeInMillis() > time.getTimeInMillis()){//nach links blättern + firstVisibleDay.add(Calendar.DATE, -1); + while (firstVisibleDay.get(Calendar.DAY_OF_WEEK) != Calendar.MONDAY) { + firstVisibleDay.add(Calendar.DATE, -1); + } + } + else{ + firstVisibleDay.add(Calendar.DATE, 1); + while (firstVisibleDay.get(Calendar.DAY_OF_WEEK) != Calendar.MONDAY) { + firstVisibleDay.add(Calendar.DATE, 1); + } + } + mWeekView.goToDate(firstVisibleDay); + + } } diff --git a/app/src/main/java/de/sebse/fuplanner/tools/ui/weekview/WeekView.java b/app/src/main/java/de/sebse/fuplanner/tools/ui/weekview/WeekView.java index 26604b4..07ef4b0 100644 --- a/app/src/main/java/de/sebse/fuplanner/tools/ui/weekview/WeekView.java +++ b/app/src/main/java/de/sebse/fuplanner/tools/ui/weekview/WeekView.java @@ -47,6 +47,7 @@ import java.util.Locale; import de.sebse.fuplanner.R; import de.sebse.fuplanner.tools.DateUtils; +import de.sebse.fuplanner.tools.logging.Logger; import static de.sebse.fuplanner.tools.ui.weekview.WeekViewUtil.daysBetween; import static de.sebse.fuplanner.tools.ui.weekview.WeekViewUtil.getPassedMinutesInDay; @@ -180,14 +181,18 @@ public class WeekView extends View { // Listeners. private EventClickListener mEventClickListener; private EventLongPressListener mEventLongPressListener; + private GestureDetector.OnDoubleTapListener mOnDoubleTapListener;////////////////////////////////////////////////////// private WeekViewLoader mWeekViewLoader; private EmptyViewClickListener mEmptyViewClickListener; private EmptyViewLongPressListener mEmptyViewLongPressListener; + private DoubleTapListener mDoubleTapListener; ////////////////////////////// private DateTimeInterpreter mDateTimeInterpreter; private ScrollListener mScrollListener; private AddEventClickListener mAddEventClickListener; private DropListener mDropListener; + private Logger log = new Logger(this); + private final GestureDetector.SimpleOnGestureListener mGestureListener = new GestureDetector.SimpleOnGestureListener() { @Override @@ -297,10 +302,19 @@ public class WeekView extends View { return true; } + @Override + public boolean onDoubleTap(MotionEvent e){ + log.d("onDoubleTapEvent"); + Calendar selectedTime = getTimeFromPoint(e.getX(), e.getY()); + if (selectedTime != null && mDoubleTapListener != null) { + mDoubleTapListener.mOnDoubleTapListener((Calendar) selectedTime.clone()); + } + return super.onDoubleTap(e); + } @Override public boolean onSingleTapConfirmed(MotionEvent e) { - + log.d("onSingleTapConfirmed"); // If the tap was on an event then trigger the callback. if (mEventRects != null && mEventClickListener != null) { List reversedEventRects = mEventRects; @@ -1563,10 +1577,21 @@ public class WeekView extends View { return mEventLongPressListener; } + //Event für Doppelkick/////////////////////// wird offenbar nicht gebraucht + /*public GestureDetector.OnDoubleTapListener getEventDoubleTapListener() { + return mOnDoubleTapListener; // oder der mDoubleTapListener ???? + }*/ + + public void setEventLongPressListener(EventLongPressListener eventLongPressListener) { this.mEventLongPressListener = eventLongPressListener; } + //Event für Doppelkick + public void setEventDoubleTapListener(DoubleTapListener eventDoubleTapListener) { + this.mDoubleTapListener = eventDoubleTapListener; + } + public void setEmptyViewClickListener(EmptyViewClickListener emptyViewClickListener) { this.mEmptyViewClickListener = emptyViewClickListener; } @@ -2714,6 +2739,14 @@ public class WeekView extends View { void onEmptyViewLongPress(Calendar time); } + public interface DoubleTapListener { + /** + * + * @param time: {@link Calendar} object set with the date and time of the long pressed position on the view. + */ + void mOnDoubleTapListener(Calendar time); + } + public interface ScrollListener { /** * Called when the first visible day has changed. diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 3a41c8f..dae1311 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -34,5 +34,8 @@ Aktuelle Prozentzahl Offline-Modus Aktualisieren fehlgeschlagen... - Hey, guck\' dir mal die KVV-App an: %1$s + Hey, schau dir die neue KVV App an: %s$s + "Aktualisieren " + Heute + Kantinen \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index d5be6f0..a71f9fc 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -45,5 +45,5 @@ Refresh Go to today Canteens - %1$.2f / %2$.2f / %3$.2f + %1$.2f / %2$.2f / %3$.2f