/* * ____.____ __.____ ___ _____ * | | |/ _| | \ / _ \ ______ ______ * | | < | | / / /_\ \\____ \\____ \ * /\__| | | \| | / / | \ |_> > |_> > * \________|____|__ \______/ \____|__ / __/| __/ * \/ \/|__| |__| * * Copyright (c) 2014-2015 Paul "Marunjar" Pretsch * * 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 <http://www.gnu.org/licenses/> */ package org.voidsink.anewjkuapp.fragment; import android.content.SharedPreferences; import android.support.v7.preference.PreferenceManager; import org.voidsink.anewjkuapp.MensaDayTabItem; import org.voidsink.anewjkuapp.PreferenceWrapper; import org.voidsink.anewjkuapp.R; import org.voidsink.anewjkuapp.base.SlidingTabItem; import org.voidsink.anewjkuapp.base.SlidingTabsFragment; import org.voidsink.anewjkuapp.utils.Consts; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.List; import java.util.Locale; public class MensaFragment extends SlidingTabsFragment implements SharedPreferences.OnSharedPreferenceChangeListener { @Override public void onStart() { super.onStart(); PreferenceManager.getDefaultSharedPreferences(getContext()) .registerOnSharedPreferenceChangeListener(this); } @Override public void onStop() { super.onStop(); PreferenceManager.getDefaultSharedPreferences(getContext()) .unregisterOnSharedPreferenceChangeListener(this); } @Override protected void fillTabs(List<SlidingTabItem> mTabs) { if (PreferenceWrapper.getGroupMenuByDay(getContext())) { Calendar cal = Calendar.getInstance(); cal.setTime(new Date()); // jump to next day if later than 4pm if (cal.get(Calendar.HOUR_OF_DAY) >= 16) { cal.add(Calendar.DATE, 1); } // add days until next friday do { // do not add weekend (no menu) if (cal.get(Calendar.DAY_OF_WEEK) != Calendar.SATURDAY && cal.get(Calendar.DAY_OF_WEEK) != Calendar.SUNDAY) { mTabs.add(new MensaDayTabItem(getTabTitle(cal), cal.getTime())); } // increment day cal.add(Calendar.DATE, 1); } while (cal.get(Calendar.DAY_OF_WEEK) != Calendar.SATURDAY); } else { mTabs.add(new SlidingTabItem(getString(R.string.mensa_title_classic), MensaClassicFragment.class)); mTabs.add(new SlidingTabItem(getString(R.string.mensa_title_choice), MensaChoiceFragment.class)); mTabs.add(new SlidingTabItem(getString(R.string.mensa_title_khg), MensaKHGFragment.class)); mTabs.add(new SlidingTabItem(getString(R.string.mensa_title_raab), MensaRaabFragment.class)); } } private String getTabTitle(final Calendar cal) { final Calendar now = Calendar.getInstance(); if (now.get(Calendar.DATE) == cal.get(Calendar.DATE)) { return getResources().getString(R.string.mensa_menu_today); } else if (cal.get(Calendar.DATE) - now.get(Calendar.DATE) == 1) { return getResources().getString(R.string.mensa_menu_tomorrow); } return new SimpleDateFormat("EEEE", Locale.getDefault()).format(cal.getTime()); } @Override protected String getScreenName() { return Consts.SCREEN_MENSA; } @Override public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) { if (key.equals(PreferenceWrapper.PREF_MENSA_GROUP_MENU_BY_DAY)) { createTabs(null); } } }