import java.text.SimpleDateFormat;
import java.util.ArrayList;
+import java.util.Calendar;
import java.util.Date;
import java.util.List;
private TabLayout tabLayout;
private ViewPager viewPager;
- private boolean viewDayplan;
private long viewDate;
@Override
long date;
if(showdate != null && !showdate.isEmpty() && (date = Long.parseLong(showdate)) > 0) {
viewDate = date;
- viewDayplan = true;
- viewmodeSet = true;
- }
- if(!viewmodeSet) {
- String viewmode = arguments.getString("viewmode");
- if(viewmode != null && !viewmode.isEmpty()) {
- if(viewmode.equalsIgnoreCase("day"))
- viewDayplan = true;
- else
- viewDayplan = false;
- viewmodeSet = true;
- }
- }
- }
- if(!viewmodeSet) {
- String lastViewmode = AppContext.getDatabaseManager().getRuntimeCache("MensaplanViewMode");
- if(lastViewmode != null && !lastViewmode.isEmpty()) {
- if(lastViewmode.equalsIgnoreCase("day"))
- viewDayplan = true;
- else
- viewDayplan = false;
- viewmodeSet = true;
}
}
- if(!viewmodeSet)
- viewDayplan = true;
- AppContext.setTitle("Mensa "+(viewDayplan ? "Tagesplan" : "Wochenplan"));
+ AppContext.setTitle("Mensa Speiseplan");
/*
toolbar = (Toolbar) view.findViewById(R.id.toolbar);
long[] showDates;
long now = (new Date()).getTime()/1000;
- if(viewDayplan)
- showDates = AppContext.getDatabaseManager().getDaysWithPlanData(now - (30 * 86400), now + (30 * 86400));
- else
- showDates = AppContext.getDatabaseManager().getDaysWithPlanData(now - (365 * 86400), now + (30 * 86400));
+ if(viewDate < now)
+ now = viewDate;
+
+ int weekdayResIds[] = new int[] { R.string.week_monday_short, R.string.week_tuesday_short, R.string.week_wednesday_short, R.string.week_thursday_short, R.string.week_friday_short, R.string.week_saturday_short, R.string.week_sunday_short };
+ Calendar cal = Calendar.getInstance();
+ cal.setTime(new Date(now * 1000));
+ cal.set(Calendar.HOUR_OF_DAY, 0);
+ cal.set(Calendar.MINUTE, 0);
+ cal.set(Calendar.SECOND, 0);
+ cal.set(Calendar.MILLISECOND, 0);
+ long midnight = cal.getTimeInMillis() / 1000;
+ int dow = cal.get(Calendar.DAY_OF_WEEK);
+ dow -= 2;
+ if(dow < 0) // monday should be 0!
+ dow += 7;
+ long subTimeToWeekStart = (86400 * dow);
+ long showDateFrom = midnight - subTimeToWeekStart;
+
+ showDates = AppContext.getDatabaseManager().getDaysWithPlanData(showDateFrom, now + (30 * 86400));
int activeItem = -1;
long activeItemDiff = -1;
Bundle args = getArguments();
+ int lastWeekday = 0;
for(int i = 0; i < showDates.length; i++) {
long date = showDates[i];
Bundle bundle = new Bundle();
bundle.putAll(args);
String title;
SimpleDateFormat sdf;
- if(viewDayplan)
- sdf = new SimpleDateFormat("dd.MM.");
- else
- sdf = new SimpleDateFormat("WW");
+
+ cal.setTime(new Date(date * 1000));
+ int weekday = cal.get(Calendar.DAY_OF_WEEK);
+ weekday -= 2; // monday should be 0!
+ if(weekday < 0)
+ weekday += 7;
if(viewDate > 0) {
long diff = Math.abs(viewDate - date);
}
}
- title = sdf.format(new Date(date * 1000));
+ if(lastWeekday > weekday) {
+ adapter.addFragment(null, null);
+ }
+ lastWeekday = weekday;
+
+ title = AppContext.getResString(weekdayResIds[weekday]);
bundle.putLong("date", date);
adapter.addFragment(bundle, title);
}
viewPager.setAdapter(adapter);
viewPager.setCurrentItem(activeItem);
- if(viewDayplan) {
- MensaTagesplan tagesplan = (MensaTagesplan)adapter.getItem(activeItem);
- tagesplan.onSetActive();
- }
+
+ MensaTagesplan tagesplan = (MensaTagesplan)adapter.getItem(activeItem);
+ tagesplan.onSetActive();
+
viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
@Override
public void onPageSelected(int position) {
- if(viewDayplan) {
- MensaTagesplan tagesplan = (MensaTagesplan)adapter.getItem(position);
- tagesplan.onSetActive();
- }
+ MensaTagesplan tagesplan = (MensaTagesplan)adapter.getItem(position);
+ tagesplan.onSetActive();
}
@Override
}
if(mFragmentList.get(position) != null)
return mFragmentList.get(position);
- if(viewDayplan)
- fragment = new MensaTagesplan();
- else
- fragment = new MensaWochenplan();
+ fragment = new MensaTagesplan();
+
fragment.setArguments(mFragmentDataList.get(position));
mFragmentList.set(position, fragment);
return fragment;
}
public void addFragment(Bundle fragmentdata, String title) {
+ if(title == null) {
+ Bundle bnd = new Bundle();
+ bnd.putBoolean("parentIsMensaFragment", true);
+ mFragmentDataList.add(bnd);
+ mFragmentTitleList.add("");
+ return;
+ }
+
fragmentdata.putBoolean("parentIsMensaFragment", true);
mFragmentDataList.add(fragmentdata);
mFragmentTitleList.add(title);