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 5249275..720f7d5 100644
--- a/app/src/main/java/de/sebse/fuplanner/fragments/ScheduleFragment.java
+++ b/app/src/main/java/de/sebse/fuplanner/fragments/ScheduleFragment.java
@@ -1,6 +1,8 @@
package de.sebse.fuplanner.fragments;
+import android.app.AlertDialog;
import android.content.Context;
+import android.graphics.RectF;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.v4.app.Fragment;
@@ -13,7 +15,6 @@ import java.util.Calendar;
import java.util.Iterator;
import java.util.List;
-import de.sebse.fuplanner.MainActivity;
import de.sebse.fuplanner.R;
import de.sebse.fuplanner.services.KVV.KVV;
import de.sebse.fuplanner.services.KVV.types.Event;
@@ -34,7 +35,7 @@ import de.sebse.fuplanner.tools.ui.weekview.WeekViewEvent;
* create an instance of this fragment.
*
*/
-public class ScheduleFragment extends Fragment implements MonthLoader.MonthChangeListener, WeekView.ScrollListener, WeekView.DoubleTapListener {
+public class ScheduleFragment extends Fragment implements MonthLoader.MonthChangeListener, WeekView.ScrollListener, WeekView.DoubleTapListener, WeekView.EventClickListener {
private MainAcitivityListener mListener;
private WeekView mWeekView;
private final Logger log = new Logger(this);
@@ -58,8 +59,8 @@ public class ScheduleFragment extends Fragment implements MonthLoader.MonthChang
}
public void invalidate(boolean forceRefresh) {
- if (getActivity() != null) {
- KVV kvv = ((MainActivity) getActivity()).getKVV();
+ if (mListener != null) {
+ KVV kvv = mListener.getKVV();
kvv.getModuleList((Modules success) -> {
mModules = success;
final int[] i = {0};
@@ -85,7 +86,8 @@ public class ScheduleFragment extends Fragment implements MonthLoader.MonthChang
mWeekView = v.findViewById(R.id.weekView);
mWeekView.setMonthChangeListener(this);
mWeekView.setScrollListener(this);
- mWeekView.setEventDoubleTapListener(this);
+ mWeekView.setDoubleTapListener(this);
+ mWeekView.setOnEventClickListener(this);
invalidate(false);
return v;
}
@@ -122,14 +124,13 @@ public class ScheduleFragment extends Fragment implements MonthLoader.MonthChang
while (it_modEvents.hasNext()) {
Event e = it_modEvents.next();
- Calendar ende = Calendar.getInstance();
- ende.setTimeInMillis(e.getEndDate());
+ Calendar end = Calendar.getInstance();
+ end.setTimeInMillis(e.getEndDate());
Calendar start = Calendar.getInstance();
start.setTimeInMillis(e.getStartDate());
- WeekViewEvent weekViewEvent = new WeekViewEvent(e.getId(), e.getTitle(), start.get(Calendar.YEAR), start.get(Calendar.MONTH) + 1, start.get(Calendar.DAY_OF_MONTH), start.get(Calendar.HOUR_OF_DAY), start.get(Calendar.MINUTE), ende.get(Calendar.YEAR), ende.get(Calendar.MONTH) + 1, ende.get(Calendar.DAY_OF_MONTH), ende.get(Calendar.HOUR_OF_DAY), ende.get(Calendar.MINUTE));
+ WeekViewEvent weekViewEvent = new WeekViewEvent(e.getModuleId()+"/"+e.getId(), e.getTitle(), e.getLocation(), start, end);
weekViewEvent.setColor(e.getColor());
- weekViewEvent.setLocation(e.getLocation());
events.add(weekViewEvent);
}
}
@@ -137,15 +138,12 @@ public class ScheduleFragment extends Fragment implements MonthLoader.MonthChang
}
return events;
- //(List extends WeekViewEvent>) new WeekViewEvent(l,"Test", 2018, 7, 3,15,00,2018, 7, 3, 20,00);
- //int id, String title, int startYear, int startMonth, int startDay, int startHour, int startMinute, int endYear, int endMonth, int endDay, int endHour, int endMinute
}
@Override
public void onFirstVisibleDayChanged(Calendar newFirstVisibleDay, Calendar oldFirstVisibleDay) {
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())));
}
@@ -155,7 +153,7 @@ public class ScheduleFragment extends Fragment implements MonthLoader.MonthChang
}
@Override
- public void mOnDoubleTapListener(Calendar time) {
+ public void onDoubleTapListener(Calendar time) {
Calendar firstVisibleDay = mWeekView.getFirstVisibleDay();
Calendar c = Calendar.getInstance();
c.set(firstVisibleDay.get(Calendar.YEAR), firstVisibleDay.get(Calendar.MONTH), firstVisibleDay.get(Calendar.DAY_OF_MONTH), 0,0 );
@@ -174,6 +172,32 @@ public class ScheduleFragment extends Fragment implements MonthLoader.MonthChang
}
}
mWeekView.goToDate(firstVisibleDay);
+ }
+ @Override
+ public void onEventClick(WeekViewEvent event, RectF eventRect) {
+ String[] idParts = event.getIdentifier().split("/");
+ String moduleId = idParts[0];
+ AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(getContext());
+
+ if (mListener != null) {
+ KVV kvv = mListener.getKVV();
+ kvv.getModuleList((Modules success) -> {
+ Modules.Module module = success.get(moduleId);
+ String moduleName = module.title;
+ alertDialogBuilder
+ .setTitle(event.getName())
+ .setMessage(
+ getResources().getString(R.string.module_name, moduleName) + "\n" +
+ getResources().getString(R.string.location_name, event.getLocation()) + "\n" +
+ getResources().getString(R.string.date_scale, DateUtils.getModifiedTime(getContext(), event.getStartTime().getTimeInMillis()), DateUtils.getModifiedTime(getContext(), event.getEndTime().getTimeInMillis()+1))
+ )
+ .setCancelable(true)
+ .setNeutralButton(R.string.close, (dialog, id) -> dialog.cancel());
+
+ AlertDialog alertDialog = alertDialogBuilder.create();
+ alertDialog.show();
+ }, log::e);
+ }
}
}
diff --git a/app/src/main/java/de/sebse/fuplanner/services/KVV/types/Event.java b/app/src/main/java/de/sebse/fuplanner/services/KVV/types/Event.java
index e4535d0..2a87cb7 100644
--- a/app/src/main/java/de/sebse/fuplanner/services/KVV/types/Event.java
+++ b/app/src/main/java/de/sebse/fuplanner/services/KVV/types/Event.java
@@ -8,21 +8,21 @@ import java.security.NoSuchAlgorithmException;
import de.sebse.fuplanner.tools.ColorRGB;
public class Event implements Serializable {
+ private final String siteId;
private final String id;
private final String type;
private final String title;
private final long duration;
private final long firstTime;
- private final String siteId;
private final String location;
public Event(String id, String type, String title, long duration, long firstTime, String siteId, String location) {
+ this.siteId = siteId;
this.id = id;
this.type = type;
this.title = title;
this.duration = duration;
this.firstTime = firstTime;
- this.siteId = siteId;
this.location = location
.replace(" Übungsraum", "")
.replace(" Konferenzraum", "")
@@ -53,6 +53,10 @@ public class Event implements Serializable {
return location;
}
+ public String getModuleId() {
+ return siteId;
+ }
+
public ColorRGB getColor() {
MessageDigest digest;
try {
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 ed4db61..212f53b 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
@@ -182,11 +182,10 @@ 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 DoubleTapListener mDoubleTapListener;
private DateTimeInterpreter mDateTimeInterpreter;
private ScrollListener mScrollListener;
private AddEventClickListener mAddEventClickListener;
@@ -307,7 +306,7 @@ public class WeekView extends View {
public boolean onDoubleTap(MotionEvent e){
Calendar selectedTime = getTimeFromPoint(e.getX(), e.getY());
if (selectedTime != null && mDoubleTapListener != null) {
- mDoubleTapListener.mOnDoubleTapListener((Calendar) selectedTime.clone());
+ mDoubleTapListener.onDoubleTapListener((Calendar) selectedTime.clone());
}
return super.onDoubleTap(e);
}
@@ -1583,15 +1582,15 @@ public class WeekView extends View {
return mEventLongPressListener;
}
- public GestureDetector.OnDoubleTapListener getEventDoubleTapListener() {
- return mOnDoubleTapListener;
+ public DoubleTapListener getDoubleTapListener() {
+ return mDoubleTapListener;
}
public void setEventLongPressListener(EventLongPressListener eventLongPressListener) {
this.mEventLongPressListener = eventLongPressListener;
}
- public void setEventDoubleTapListener(DoubleTapListener eventDoubleTapListener) {
+ public void setDoubleTapListener(DoubleTapListener eventDoubleTapListener) {
this.mDoubleTapListener = eventDoubleTapListener;
}
@@ -2747,7 +2746,7 @@ public class WeekView extends View {
*
* @param time: {@link Calendar} object set with the date and time of the long pressed position on the view.
*/
- void mOnDoubleTapListener(Calendar time);
+ void onDoubleTapListener(Calendar time);
}
public interface ScrollListener {
diff --git a/app/src/main/java/de/sebse/fuplanner/tools/ui/weekview/WeekViewEvent.java b/app/src/main/java/de/sebse/fuplanner/tools/ui/weekview/WeekViewEvent.java
index df08053..b12b106 100644
--- a/app/src/main/java/de/sebse/fuplanner/tools/ui/weekview/WeekViewEvent.java
+++ b/app/src/main/java/de/sebse/fuplanner/tools/ui/weekview/WeekViewEvent.java
@@ -50,6 +50,8 @@ public class WeekViewEvent {
this.mStartTime.set(Calendar.DAY_OF_MONTH, startDay);
this.mStartTime.set(Calendar.HOUR_OF_DAY, startHour);
this.mStartTime.set(Calendar.MINUTE, startMinute);
+ this.mStartTime.set(Calendar.SECOND, 0);
+ this.mStartTime.set(Calendar.MILLISECOND, 0);
this.mEndTime = Calendar.getInstance();
this.mEndTime.set(Calendar.YEAR, endYear);
@@ -57,6 +59,8 @@ public class WeekViewEvent {
this.mEndTime.set(Calendar.DAY_OF_MONTH, endDay);
this.mEndTime.set(Calendar.HOUR_OF_DAY, endHour);
this.mEndTime.set(Calendar.MINUTE, endMinute);
+ this.mEndTime.set(Calendar.SECOND, 0);
+ this.mEndTime.set(Calendar.MILLISECOND, 0);
this.mName = name;
}
diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml
index a0a1b95..623cf53 100644
--- a/app/src/main/res/values-de/strings.xml
+++ b/app/src/main/res/values-de/strings.xml
@@ -38,4 +38,6 @@
"Aktualisieren"
Heute
Kantinen
+ Ort: %1$s
+ Modul: %1$s
\ No newline at end of file
diff --git a/app/src/main/res/values-ldrtl/strings.xml b/app/src/main/res/values-ldrtl/strings.xml
deleted file mode 100644
index d70d91f..0000000
--- a/app/src/main/res/values-ldrtl/strings.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
- /
-
\ 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 1aed874..2cf62ca 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -43,5 +43,7 @@
Canteens
%1$.2f€ / %2$.2f€ / %3$.2f€
%1$.2f€
- /
+ /
+ Location: %1$s
+ Module: %1$s