3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 3 of the License, or
6 * (at your option) any later version.
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
16 package de.dhbwloe.campusapp.fragments;
17 import android.os.Bundle;
18 import android.support.v4.app.Fragment;
19 import android.view.LayoutInflater;
20 import android.view.View;
21 import android.view.ViewGroup;
22 import android.widget.AdapterView;
23 import android.widget.ListView;
25 import java.text.DateFormat;
26 import java.text.ParseException;
27 import java.text.SimpleDateFormat;
28 import java.util.ArrayList;
29 import java.util.Calendar;
30 import java.util.Date;
32 import de.dhbwloe.campusapp.CampusAppContext;
33 import de.dhbwloe.campusapp.CampusAppFragment;
34 import de.dhbwloe.campusapp.R;
37 * A simple {@link Fragment} subclass.
39 public class MensaTagesplan extends CampusAppFragment {
40 private ArrayList<de.dhbwloe.campusapp.mensaplan.MensaTagesplan> tagesplanMenueItems = new ArrayList<>();
41 private Date viewPlanDate;
42 private boolean setActiveOnLoad = false;
43 private boolean redirectPage = true;
45 public void onSetActive() {
46 if(AppContext == null)
47 AppContext = CampusAppContext.getInstance();
48 if(viewPlanDate == null) {
49 AppContext.setTitle("");
50 setActiveOnLoad = true;
53 SimpleDateFormat titleDateFormater = new SimpleDateFormat(AppContext.getResString(R.string.timeformat_mensa_titledate));
54 AppContext.setTitle(AppContext.getResString(R.string.mensa_dayplan_title, titleDateFormater.format(viewPlanDate)));
57 private void setupPlanDate() {
58 Bundle args = getArguments();
61 boolean mensaparent = args.getBoolean("parentIsMensaFragment");
64 long plandate = args.getLong("date");
66 planDay = new Date(plandate * 1000);
67 DateFormat justDay = new SimpleDateFormat("yyyyMMdd");
69 planDay = justDay.parse(justDay.format(planDay));
70 } catch (Exception e) {
77 viewPlanDate = planDay;
81 public void onCreate(Bundle savedInstanceState) {
82 super.onCreate(savedInstanceState);
89 public View onCreateView(LayoutInflater inflater, ViewGroup container,
90 Bundle savedInstanceState) {
91 View view = inflater.inflate(R.layout.fragment_mensa_tagesplan, container, false);
93 if(viewPlanDate == null) {
95 AppContext.getNavigationManager().navigatePage("Mensa", null, false); // silent redirect
97 return inflater.inflate(R.layout.fragment_mensa_weekend, container, false);
101 if(setActiveOnLoad) {
102 setActiveOnLoad = false;
106 ListView tagesplanItemsList = (ListView) view.findViewById(R.id.tagesplanItems);
107 MensaTagesplanListAdapter listAdapter = new MensaTagesplanListAdapter(view.getContext(), R.layout.fragment_mensa_tagesplan_listitem, tagesplanMenueItems);
108 tagesplanItemsList.setAdapter(listAdapter);
110 tagesplanItemsList.setOnItemClickListener(new AdapterView.OnItemClickListener() {
112 public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
113 de.dhbwloe.campusapp.mensaplan.MensaTagesplan item = tagesplanMenueItems.get(position);
126 private void requestMenues() {
127 Date endOfDay = (Date)viewPlanDate.clone();
128 endOfDay.setTime(endOfDay.getTime() + (86400 - 1) * 1000);
130 de.dhbwloe.campusapp.mensaplan.MensaTagesplan menues[] = AppContext.getDatabaseManager().getMensaTagesplan(viewPlanDate.getTime()/1000, endOfDay.getTime()/1000);
131 tagesplanMenueItems.clear();
132 for(de.dhbwloe.campusapp.mensaplan.MensaTagesplan menue : menues) {
133 tagesplanMenueItems.add(menue);