Mensa Bild angepasst & links auf dem Dashboard hinzugefĆ¼gt
[DHBWCampusApp.git] / app / src / main / java / de / dhbwloe / campusapp / fragments / DashboardMensa.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.LinearLayout;
10 import android.widget.RelativeLayout;
11 import android.widget.TextView;
12
13 import java.text.SimpleDateFormat;
14 import java.util.Calendar;
15 import java.util.Date;
16
17 import de.dhbwloe.campusapp.CampusAppContext;
18 import de.dhbwloe.campusapp.CampusAppFragment;
19 import de.dhbwloe.campusapp.R;
20 import de.dhbwloe.campusapp.Tools;
21 import de.dhbwloe.campusapp.mensaplan.MensaTagesplan;
22
23 /**
24  * A simple {@link Fragment} subclass.
25  */
26 public class DashboardMensa extends CampusAppFragment {
27     private View view;
28
29     public DashboardMensa() {
30         // Required empty public constructor
31     }
32
33
34     @Override
35     public View onCreateView(LayoutInflater inflater, ViewGroup container,
36                              Bundle savedInstanceState) {
37         view = inflater.inflate(R.layout.fragment_dashboard_mensa, container, false);
38         refreshMensaMenue();
39
40         LinearLayout linearcontainer = (LinearLayout)view.findViewById(R.id.menuList);
41         linearcontainer.setOnClickListener(new View.OnClickListener() {
42             @Override
43             public void onClick(View v) {
44                 AppContext.getNavigationManager().navigatePage("Mensa");
45             }
46         });
47         return view;
48     }
49
50
51     private void refreshMensaMenue() {
52         if(AppContext == null)
53             AppContext = CampusAppContext.getInstance();
54         Calendar cal = Calendar.getInstance();
55         cal.setTime(new Date());
56         cal.set(Calendar.HOUR_OF_DAY, 0);
57         cal.set(Calendar.MINUTE, 0);
58         cal.set(Calendar.SECOND, 0);
59         cal.set(Calendar.MILLISECOND, 0);
60         long now = (new Date()).getTime() / 1000;
61         long mensaCloseTime = (3600 * 13); // 13 uhr
62         long timeFrom = cal.getTime().getTime() / 1000;
63         if(now > timeFrom + mensaCloseTime)
64             timeFrom += 86400;
65         long timeTo = timeFrom + (86400 * 3) + 86399; // +3days for weekend
66
67         MensaTagesplan[] dayplans = AppContext.getDatabaseManager().getMensaTagesplan(timeFrom, timeTo);
68         if(dayplans.length == 0) {
69
70             return;
71         }
72         MensaTagesplan dayplan = dayplans[0];
73         TextView dateTextView = (TextView) view.findViewById(R.id.menuDate);
74         dateTextView.setText(getDateText(dayplan.getPlanDate(), now));
75
76         LinearLayout menueContainer = (LinearLayout) view.findViewById(R.id.menuList);
77         menueContainer.removeAllViews();
78
79         MensaTagesplan cmenue = dayplan;
80         int i = 0;
81         LayoutInflater li = LayoutInflater.from(AppContext.getMainActivity());
82         do {
83             String menuTitle = cmenue.getMenuName();
84             if(menuTitle == null || menuTitle.matches("^Buffet"))
85                 continue;
86
87             LinearLayout menu = (LinearLayout) li.inflate(R.layout.fragment_dashboard_mensa_menu, null, false);
88             menueContainer.addView(menu);
89
90             TextView menuName = (TextView) menu.findViewById(R.id.menuName);
91             TextView menuPrice = (TextView) menu.findViewById(R.id.menuPrice);
92
93             menuName.setText(cmenue.getName());
94             String priceStr = cmenue.getFormatedRolePrice();
95             menuPrice.setText(priceStr);
96         } while(i < dayplans.length && (cmenue = dayplans[++i]) != null && cmenue.getPlanDate() == dayplan.getPlanDate());
97     }
98
99     private String getDateText(long date, long now) {
100         String datetext;
101         if(now < date+86400)
102             datetext = AppContext.getResString(R.string.dashboard_calendar_today);
103         else if(now < date + (86400*2))
104             datetext = AppContext.getResString(R.string.dashboard_calendar_tomorrow);
105         else {
106             Date dateObj = new Date(date * 1000);
107             String dayStr = Tools.getWeekdayString(dateObj);
108             SimpleDateFormat dateFormat = new SimpleDateFormat(AppContext.getResString(R.string.timeformat_dashboard_mensa));
109
110             datetext = dayStr + ", " + dateFormat.format(dateObj);
111         }
112         return datetext;
113     }
114
115 }