Kalender: doppel Klick zum vor und zurück blättern der Wochen eingefügt

Deutsche übersetzung erweitert
This commit is contained in:
Joshua
2018-07-30 17:23:40 +02:00
parent d3b41508bb
commit f0f8fdcb5a
4 changed files with 70 additions and 5 deletions

View File

@@ -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);
}
}

View File

@@ -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<EventRect> 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.

View File

@@ -34,5 +34,8 @@
<string name="Current_percentage">Aktuelle Prozentzahl</string>
<string name="offline_mode">Offline-Modus</string>
<string name="refresh_failed">Aktualisieren fehlgeschlagen...</string>
<string name="share_intent">Hey, guck\' dir mal die KVV-App an: %1$s</string>
<string name="share_intent">Hey, schau dir die neue KVV App an: %s$s</string>
<string name="refresh">"Aktualisieren "</string>
<string name="go_to_today">Heute</string>
<string name="canteens">Kantinen</string>
</resources>

View File

@@ -45,5 +45,5 @@
<string name="refresh">Refresh</string>
<string name="go_to_today">Go to today</string>
<string name="canteens">Canteens</string>
<string name="prices">%1$.2f / %2$.2f / %3$.2f</string>
<string name="prices" translatable="false">%1$.2f / %2$.2f / %3$.2f</string>
</resources>