alpha 0.0.1
[DHBWCampusApp.git] / app / src / main / java / de / dhbwloe / campusapp / fragments / MensaTagesplan.java
1 package de.dhbwloe.campusapp.fragments;
2
3
4 import android.os.Bundle;
5 import android.support.v4.app.Fragment;
6 import android.view.LayoutInflater;
7 import android.view.View;
8 import android.view.ViewGroup;
9 import android.widget.AdapterView;
10 import android.widget.ListView;
11
12 import java.text.DateFormat;
13 import java.text.ParseException;
14 import java.text.SimpleDateFormat;
15 import java.util.ArrayList;
16 import java.util.Calendar;
17 import java.util.Date;
18
19 import de.dhbwloe.campusapp.CampusAppContext;
20 import de.dhbwloe.campusapp.CampusAppFragment;
21 import de.dhbwloe.campusapp.R;
22
23 /**
24  * A simple {@link Fragment} subclass.
25  */
26 public class MensaTagesplan extends CampusAppFragment {
27     private ArrayList<de.dhbwloe.campusapp.mensaplan.MensaTagesplan> tagesplanMenueItems = new ArrayList<>();
28     private Date viewPlanDate;
29     private boolean setActiveOnLoad = false;
30     private boolean redirectPage = true;
31
32     public void onSetActive() {
33         if(AppContext == null)
34             AppContext = CampusAppContext.getInstance();
35         if(viewPlanDate == null) {
36             AppContext.setTitle("");
37             setActiveOnLoad = true;
38             return;
39         }
40         SimpleDateFormat titleDateFormater = new SimpleDateFormat("dd.MM.yyyy");
41         AppContext.setTitle("Mensa: " + titleDateFormater.format(viewPlanDate));
42     }
43
44     private void setupPlanDate() {
45         Bundle args = getArguments();
46         Date planDay = null;
47         if(args != null) {
48             boolean mensaparent = args.getBoolean("parentIsMensaFragment");
49             if(mensaparent)
50                 redirectPage = false;
51             long plandate = args.getLong("date");
52             if(plandate > 0) {
53                 planDay = new Date(plandate * 1000);
54                 DateFormat justDay = new SimpleDateFormat("yyyyMMdd");
55                 try {
56                     planDay = justDay.parse(justDay.format(planDay));
57                 } catch (Exception e) {
58                 }
59             }
60         }
61         if(planDay == null) {
62             return;
63         }
64         viewPlanDate = planDay;
65     }
66
67     @Override
68     public void onCreate(Bundle savedInstanceState) {
69         super.onCreate(savedInstanceState);
70
71         setupPlanDate();
72
73     }
74
75     @Override
76     public View onCreateView(LayoutInflater inflater, ViewGroup container,
77                              Bundle savedInstanceState) {
78         View view = inflater.inflate(R.layout.fragment_mensa_tagesplan, container, false);
79
80         if(viewPlanDate == null) {
81             if(redirectPage)
82                 AppContext.getNavigationManager().navigatePage("Mensa", null, false); // silent redirect
83             else {
84                 return inflater.inflate(R.layout.fragment_mensa_weekend, container, false);
85             }
86             return null;
87         }
88         if(setActiveOnLoad) {
89             setActiveOnLoad = false;
90             onSetActive();
91         }
92
93         ListView tagesplanItemsList = (ListView) view.findViewById(R.id.tagesplanItems);
94         MensaTagesplanListAdapter listAdapter = new MensaTagesplanListAdapter(view.getContext(), R.layout.fragment_mensa_tagesplan_listitem, tagesplanMenueItems);
95         tagesplanItemsList.setAdapter(listAdapter);
96
97         tagesplanItemsList.setOnItemClickListener(new AdapterView.OnItemClickListener() {
98             @Override
99             public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
100                 de.dhbwloe.campusapp.mensaplan.MensaTagesplan item = tagesplanMenueItems.get(position);
101                 if (item == null)
102                     return;
103
104                 // do sth?
105             }
106         });
107
108         requestMenues();
109
110         return view;
111     }
112
113     private void requestMenues() {
114         Date endOfDay = (Date)viewPlanDate.clone();
115         endOfDay.setTime(endOfDay.getTime() + (86400 - 1) * 1000);
116
117         de.dhbwloe.campusapp.mensaplan.MensaTagesplan menues[] = AppContext.getDatabaseManager().getMensaTagesplan(viewPlanDate.getTime()/1000, endOfDay.getTime()/1000);
118         tagesplanMenueItems.clear();
119         for(de.dhbwloe.campusapp.mensaplan.MensaTagesplan menue : menues) {
120             tagesplanMenueItems.add(menue);
121         }
122
123     }
124
125 }