Kalender: doppel Klick zum vor und zurück blättern der Wochen eingefügt
Deutsche übersetzung erweitert
This commit is contained in:
@@ -34,11 +34,12 @@ import de.sebse.fuplanner.tools.ui.weekview.WeekViewEvent;
|
|||||||
* create an instance of this fragment.
|
* 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 MainAcitivityListener mListener;
|
||||||
private WeekView mWeekView;
|
private WeekView mWeekView;
|
||||||
private Logger log = new Logger(this);
|
private Logger log = new Logger(this);
|
||||||
private Modules mModules = null;
|
private Modules mModules = null;
|
||||||
|
private Calendar firstVisibleDay;
|
||||||
|
|
||||||
public ScheduleFragment() {
|
public ScheduleFragment() {
|
||||||
// Required empty public constructor
|
// Required empty public constructor
|
||||||
@@ -91,10 +92,14 @@ public class ScheduleFragment extends Fragment implements MonthLoader.MonthChang
|
|||||||
mWeekView = v.findViewById(R.id.weekView);
|
mWeekView = v.findViewById(R.id.weekView);
|
||||||
mWeekView.setMonthChangeListener(this);
|
mWeekView.setMonthChangeListener(this);
|
||||||
mWeekView.setScrollListener(this);
|
mWeekView.setScrollListener(this);
|
||||||
|
mWeekView.setEventDoubleTapListener(this);
|
||||||
return v;
|
return v;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onAttach(Context context) {
|
public void onAttach(Context context) {
|
||||||
super.onAttach(context);
|
super.onAttach(context);
|
||||||
@@ -142,13 +147,37 @@ public class ScheduleFragment extends Fragment implements MonthLoader.MonthChang
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onFirstVisibleDayChanged(Calendar newFirstVisibleDay, Calendar oldFirstVisibleDay) {
|
public void onFirstVisibleDayChanged(Calendar newFirstVisibleDay, Calendar oldFirstVisibleDay) {
|
||||||
|
firstVisibleDay = newFirstVisibleDay;
|
||||||
Calendar newLastVisibleDay = (Calendar) newFirstVisibleDay.clone();
|
Calendar newLastVisibleDay = (Calendar) newFirstVisibleDay.clone();
|
||||||
newLastVisibleDay.add(Calendar.HOUR, 24*mWeekView.getNumberOfVisibleDays());
|
newLastVisibleDay.add(Calendar.HOUR, 24*mWeekView.getNumberOfVisibleDays());
|
||||||
//mListener.onScheduleFragmentInteraction(newFirstVisibleDay, newLastVisibleDay);
|
//mListener.onScheduleFragmentInteraction(newFirstVisibleDay, newLastVisibleDay);
|
||||||
mListener.onTitleTextChange(getResources().getString(R.string.date_scale, DateUtils.getModifiedDate(newFirstVisibleDay.getTimeInMillis()), DateUtils.getModifiedDate(newLastVisibleDay.getTimeInMillis())));
|
mListener.onTitleTextChange(getResources().getString(R.string.date_scale, DateUtils.getModifiedDate(newFirstVisibleDay.getTimeInMillis()), DateUtils.getModifiedDate(newLastVisibleDay.getTimeInMillis())));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public void goToToday() {
|
public void goToToday() {
|
||||||
mWeekView.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);
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -47,6 +47,7 @@ import java.util.Locale;
|
|||||||
|
|
||||||
import de.sebse.fuplanner.R;
|
import de.sebse.fuplanner.R;
|
||||||
import de.sebse.fuplanner.tools.DateUtils;
|
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.daysBetween;
|
||||||
import static de.sebse.fuplanner.tools.ui.weekview.WeekViewUtil.getPassedMinutesInDay;
|
import static de.sebse.fuplanner.tools.ui.weekview.WeekViewUtil.getPassedMinutesInDay;
|
||||||
@@ -180,14 +181,18 @@ public class WeekView extends View {
|
|||||||
// Listeners.
|
// Listeners.
|
||||||
private EventClickListener mEventClickListener;
|
private EventClickListener mEventClickListener;
|
||||||
private EventLongPressListener mEventLongPressListener;
|
private EventLongPressListener mEventLongPressListener;
|
||||||
|
private GestureDetector.OnDoubleTapListener mOnDoubleTapListener;//////////////////////////////////////////////////////
|
||||||
private WeekViewLoader mWeekViewLoader;
|
private WeekViewLoader mWeekViewLoader;
|
||||||
private EmptyViewClickListener mEmptyViewClickListener;
|
private EmptyViewClickListener mEmptyViewClickListener;
|
||||||
private EmptyViewLongPressListener mEmptyViewLongPressListener;
|
private EmptyViewLongPressListener mEmptyViewLongPressListener;
|
||||||
|
private DoubleTapListener mDoubleTapListener; //////////////////////////////
|
||||||
private DateTimeInterpreter mDateTimeInterpreter;
|
private DateTimeInterpreter mDateTimeInterpreter;
|
||||||
private ScrollListener mScrollListener;
|
private ScrollListener mScrollListener;
|
||||||
private AddEventClickListener mAddEventClickListener;
|
private AddEventClickListener mAddEventClickListener;
|
||||||
private DropListener mDropListener;
|
private DropListener mDropListener;
|
||||||
|
|
||||||
|
private Logger log = new Logger(this);
|
||||||
|
|
||||||
private final GestureDetector.SimpleOnGestureListener mGestureListener = new GestureDetector.SimpleOnGestureListener() {
|
private final GestureDetector.SimpleOnGestureListener mGestureListener = new GestureDetector.SimpleOnGestureListener() {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -297,10 +302,19 @@ public class WeekView extends View {
|
|||||||
return true;
|
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
|
@Override
|
||||||
public boolean onSingleTapConfirmed(MotionEvent e) {
|
public boolean onSingleTapConfirmed(MotionEvent e) {
|
||||||
|
log.d("onSingleTapConfirmed");
|
||||||
// If the tap was on an event then trigger the callback.
|
// If the tap was on an event then trigger the callback.
|
||||||
if (mEventRects != null && mEventClickListener != null) {
|
if (mEventRects != null && mEventClickListener != null) {
|
||||||
List<EventRect> reversedEventRects = mEventRects;
|
List<EventRect> reversedEventRects = mEventRects;
|
||||||
@@ -1563,10 +1577,21 @@ public class WeekView extends View {
|
|||||||
return mEventLongPressListener;
|
return mEventLongPressListener;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//Event für Doppelkick/////////////////////// wird offenbar nicht gebraucht
|
||||||
|
/*public GestureDetector.OnDoubleTapListener getEventDoubleTapListener() {
|
||||||
|
return mOnDoubleTapListener; // oder der mDoubleTapListener ????
|
||||||
|
}*/
|
||||||
|
|
||||||
|
|
||||||
public void setEventLongPressListener(EventLongPressListener eventLongPressListener) {
|
public void setEventLongPressListener(EventLongPressListener eventLongPressListener) {
|
||||||
this.mEventLongPressListener = eventLongPressListener;
|
this.mEventLongPressListener = eventLongPressListener;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//Event für Doppelkick
|
||||||
|
public void setEventDoubleTapListener(DoubleTapListener eventDoubleTapListener) {
|
||||||
|
this.mDoubleTapListener = eventDoubleTapListener;
|
||||||
|
}
|
||||||
|
|
||||||
public void setEmptyViewClickListener(EmptyViewClickListener emptyViewClickListener) {
|
public void setEmptyViewClickListener(EmptyViewClickListener emptyViewClickListener) {
|
||||||
this.mEmptyViewClickListener = emptyViewClickListener;
|
this.mEmptyViewClickListener = emptyViewClickListener;
|
||||||
}
|
}
|
||||||
@@ -2714,6 +2739,14 @@ public class WeekView extends View {
|
|||||||
void onEmptyViewLongPress(Calendar time);
|
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 {
|
public interface ScrollListener {
|
||||||
/**
|
/**
|
||||||
* Called when the first visible day has changed.
|
* Called when the first visible day has changed.
|
||||||
|
|||||||
@@ -34,5 +34,8 @@
|
|||||||
<string name="Current_percentage">Aktuelle Prozentzahl</string>
|
<string name="Current_percentage">Aktuelle Prozentzahl</string>
|
||||||
<string name="offline_mode">Offline-Modus</string>
|
<string name="offline_mode">Offline-Modus</string>
|
||||||
<string name="refresh_failed">Aktualisieren fehlgeschlagen...</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>
|
</resources>
|
||||||
@@ -45,5 +45,5 @@
|
|||||||
<string name="refresh">Refresh</string>
|
<string name="refresh">Refresh</string>
|
||||||
<string name="go_to_today">Go to today</string>
|
<string name="go_to_today">Go to today</string>
|
||||||
<string name="canteens">Canteens</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>
|
</resources>
|
||||||
|
|||||||
Reference in New Issue
Block a user