X-Git-Url: http://git.pk910.de/?p=DHBWCampusApp.git;a=blobdiff_plain;f=app%2Fsrc%2Fmain%2Fjava%2Fde%2Fdhbwloe%2Fcampusapp%2Ffragments%2FMensa.java;h=2d641de6d28bb1bb7bf88cd6f38eeeea48730fd9;hp=ccc778595453b5db9dfe4f29af0b74a1ea2ba8e9;hb=9a28e7b4c1520f629721693a04b4978fec9692e7;hpb=89252e3c22caf6dcccd0c50ad3a9282a53b5a890 diff --git a/app/src/main/java/de/dhbwloe/campusapp/fragments/Mensa.java b/app/src/main/java/de/dhbwloe/campusapp/fragments/Mensa.java index ccc7785..2d641de 100644 --- a/app/src/main/java/de/dhbwloe/campusapp/fragments/Mensa.java +++ b/app/src/main/java/de/dhbwloe/campusapp/fragments/Mensa.java @@ -15,6 +15,7 @@ import android.view.ViewGroup; import java.text.SimpleDateFormat; import java.util.ArrayList; +import java.util.Calendar; import java.util.Date; import java.util.List; @@ -41,7 +42,6 @@ public class Mensa extends CampusAppFragment { private TabLayout tabLayout; private ViewPager viewPager; - private boolean viewDayplan; private long viewDate; @Override @@ -56,34 +56,10 @@ public class Mensa extends CampusAppFragment { 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); @@ -106,14 +82,30 @@ public class Mensa extends CampusAppFragment { 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(); @@ -121,10 +113,12 @@ public class Mensa extends CampusAppFragment { 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); @@ -134,16 +128,21 @@ public class Mensa extends CampusAppFragment { } } - 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 @@ -153,10 +152,8 @@ public class Mensa extends CampusAppFragment { @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 @@ -184,10 +181,8 @@ public class Mensa extends CampusAppFragment { } 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; @@ -199,6 +194,14 @@ public class Mensa extends CampusAppFragment { } 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);