Added README.txt and GPL Header to Source Files
[DHBWCampusApp.git] / app / src / main / java / de / dhbwloe / campusapp / fragments / MensaTagesplan.java
1 /* MensaTagesplan.java
2  *
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.
7  *
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.
12  *
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/>.
15  */
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;
24
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;
31
32 import de.dhbwloe.campusapp.CampusAppContext;
33 import de.dhbwloe.campusapp.CampusAppFragment;
34 import de.dhbwloe.campusapp.R;
35
36 /**
37  * A simple {@link Fragment} subclass.
38  */
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;
44
45     public void onSetActive() {
46         if(AppContext == null)
47             AppContext = CampusAppContext.getInstance();
48         if(viewPlanDate == null) {
49             AppContext.setTitle("");
50             setActiveOnLoad = true;
51             return;
52         }
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)));
55     }
56
57     private void setupPlanDate() {
58         Bundle args = getArguments();
59         Date planDay = null;
60         if(args != null) {
61             boolean mensaparent = args.getBoolean("parentIsMensaFragment");
62             if(mensaparent)
63                 redirectPage = false;
64             long plandate = args.getLong("date");
65             if(plandate > 0) {
66                 planDay = new Date(plandate * 1000);
67                 DateFormat justDay = new SimpleDateFormat("yyyyMMdd");
68                 try {
69                     planDay = justDay.parse(justDay.format(planDay));
70                 } catch (Exception e) {
71                 }
72             }
73         }
74         if(planDay == null) {
75             return;
76         }
77         viewPlanDate = planDay;
78     }
79
80     @Override
81     public void onCreate(Bundle savedInstanceState) {
82         super.onCreate(savedInstanceState);
83
84         setupPlanDate();
85
86     }
87
88     @Override
89     public View onCreateView(LayoutInflater inflater, ViewGroup container,
90                              Bundle savedInstanceState) {
91         View view = inflater.inflate(R.layout.fragment_mensa_tagesplan, container, false);
92
93         if(viewPlanDate == null) {
94             if(redirectPage)
95                 AppContext.getNavigationManager().navigatePage("Mensa", null, false); // silent redirect
96             else {
97                 return inflater.inflate(R.layout.fragment_mensa_weekend, container, false);
98             }
99             return null;
100         }
101         if(setActiveOnLoad) {
102             setActiveOnLoad = false;
103             onSetActive();
104         }
105
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);
109
110         tagesplanItemsList.setOnItemClickListener(new AdapterView.OnItemClickListener() {
111             @Override
112             public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
113                 de.dhbwloe.campusapp.mensaplan.MensaTagesplan item = tagesplanMenueItems.get(position);
114                 if (item == null)
115                     return;
116
117                 // do sth?
118             }
119         });
120
121         requestMenues();
122
123         return view;
124     }
125
126     private void requestMenues() {
127         Date endOfDay = (Date)viewPlanDate.clone();
128         endOfDay.setTime(endOfDay.getTime() + (86400 - 1) * 1000);
129
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);
134         }
135
136     }
137
138 }