X-Git-Url: http://git.pk910.de/?a=blobdiff_plain;f=app%2Fsrc%2Fmain%2Fjava%2Fde%2Fdhbwloe%2Fcampusapp%2Ffragments%2FMensa.java;h=daa7427225a5a7a81e25a679ddde75f149444bd1;hb=48e758721a39298a85c69ecc7267f3daf6993e78;hp=ccc778595453b5db9dfe4f29af0b74a1ea2ba8e9;hpb=a0f644715b43af1e4acf2513b972c3f980efdaca;p=DHBWCampusApp.git 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..daa7427 100644 --- a/app/src/main/java/de/dhbwloe/campusapp/fragments/Mensa.java +++ b/app/src/main/java/de/dhbwloe/campusapp/fragments/Mensa.java @@ -1,6 +1,19 @@ +/* Mensa.java + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ package de.dhbwloe.campusapp.fragments; - - import android.os.Bundle; import android.support.design.widget.TabLayout; import android.support.v4.app.Fragment; @@ -15,11 +28,13 @@ import android.view.ViewGroup; import java.text.SimpleDateFormat; import java.util.ArrayList; +import java.util.Calendar; import java.util.Date; import java.util.List; import de.dhbwloe.campusapp.CampusAppFragment; import de.dhbwloe.campusapp.R; +import de.dhbwloe.campusapp.Tools; import de.dhbwloe.campusapp.search.SearchIndices; /** @@ -32,16 +47,15 @@ public class Mensa extends CampusAppFragment { new SearchIndices("Mensa", true) {{ setUpdateTime(1); setTarget("#Mensa"); - setTitle("Mensa"); - setDescription("Aktuelle Mensapläne"); - addKeyWord("mensa, kantine, essen, mittagessen, mensaplan, plan, hunger, mittag"); + setTitle(R.string.search_mensa_title); + setDescription(R.string.search_mensa_description); + addKeyWord(R.string.search_mensa_keywords); }}, }; } private TabLayout tabLayout; private ViewPager viewPager; - private boolean viewDayplan; private long viewDate; @Override @@ -56,34 +70,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(AppContext.getResString(R.string.mensa_title)); /* toolbar = (Toolbar) view.findViewById(R.id.toolbar); @@ -106,14 +96,29 @@ 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; + + 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 +126,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 +141,21 @@ public class Mensa extends CampusAppFragment { } } - title = sdf.format(new Date(date * 1000)); + if(lastWeekday > weekday) { + adapter.addFragment(null, null); + } + lastWeekday = weekday; + + title = Tools.getWeekdayString(date, false); 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 +165,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 +194,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 +207,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);