Grundaufbau der App
[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.CampusAppFragment;
20 import de.dhbwloe.campusapp.R;
21
22 /**
23  * A simple {@link Fragment} subclass.
24  */
25 public class MensaTagesplan extends CampusAppFragment {
26     private ArrayList<de.dhbwloe.campusapp.mensaplan.MensaTagesplan> tagesplanMenueItems = new ArrayList<>();
27     private Date viewPlanDate;
28     private boolean setActiveOnLoad = false;
29
30     public void onSetActive() {
31         if(viewPlanDate == null) {
32             setActiveOnLoad = true;
33             return;
34         }
35         SimpleDateFormat titleDateFormater = new SimpleDateFormat("dd.MM.yyyy");
36         AppContext.setTitle("Mensa: " + titleDateFormater.format(viewPlanDate));
37     }
38
39     private void setupPlanDate() {
40         Bundle args = getArguments();
41         Date planDay = null;
42         if(args != null) {
43             long plandate = args.getLong("date");
44             if(plandate > 0) {
45                 planDay = new Date(plandate * 1000);
46                 DateFormat justDay = new SimpleDateFormat("yyyyMMdd");
47                 try {
48                     planDay = justDay.parse(justDay.format(planDay));
49                 } catch (Exception e) {
50                 }
51             }
52         }
53         if(planDay == null) {
54             return;
55         }
56         viewPlanDate = planDay;
57     }
58
59     @Override
60     public void onCreate(Bundle savedInstanceState) {
61         super.onCreate(savedInstanceState);
62
63         setupPlanDate();
64
65     }
66
67     @Override
68     public View onCreateView(LayoutInflater inflater, ViewGroup container,
69                              Bundle savedInstanceState) {
70         View view = inflater.inflate(R.layout.fragment_mensa_tagesplan, container, false);
71
72         if(viewPlanDate == null) {
73             AppContext.getNavigationManager().navigatePage("Mensa", null, false); // silent redirect
74             return null;
75         }
76         if(setActiveOnLoad) {
77             setActiveOnLoad = false;
78             onSetActive();
79         }
80
81         ListView tagesplanItemsList = (ListView) view.findViewById(R.id.tagesplanItems);
82         MensaTagesplanListAdapter listAdapter = new MensaTagesplanListAdapter(view.getContext(), R.layout.fragment_mensa_tagesplan_listitem, tagesplanMenueItems);
83         tagesplanItemsList.setAdapter(listAdapter);
84
85         tagesplanItemsList.setOnItemClickListener(new AdapterView.OnItemClickListener() {
86             @Override
87             public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
88                 de.dhbwloe.campusapp.mensaplan.MensaTagesplan item = tagesplanMenueItems.get(position);
89                 if (item == null)
90                     return;
91
92                 // do sth?
93             }
94         });
95
96         requestMenues();
97
98         return view;
99     }
100
101     private void requestMenues() {
102         Date endOfDay = (Date)viewPlanDate.clone();
103         endOfDay.setTime(endOfDay.getTime() + (86400 - 1) * 1000);
104
105         de.dhbwloe.campusapp.mensaplan.MensaTagesplan menues[] = AppContext.getDatabaseManager().getMensaTagesplan(viewPlanDate.getTime()/1000, endOfDay.getTime()/1000);
106         tagesplanMenueItems.clear();
107         for(de.dhbwloe.campusapp.mensaplan.MensaTagesplan menue : menues) {
108             tagesplanMenueItems.add(menue);
109         }
110
111     }
112
113 }