alpha 0.0.1
[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.mensaplan.MensaTagesplan;
21
22 /**
23  * A simple {@link Fragment} subclass.
24  */
25 public class DashboardMensa extends CampusAppFragment {
26     private View view;
27
28     public DashboardMensa() {
29         // Required empty public constructor
30     }
31
32
33     @Override
34     public View onCreateView(LayoutInflater inflater, ViewGroup container,
35                              Bundle savedInstanceState) {
36         view = inflater.inflate(R.layout.fragment_dashboard_mensa, container, false);
37         refreshMensaMenue();
38         return view;
39     }
40
41
42     private void refreshMensaMenue() {
43         if(AppContext == null)
44             AppContext = CampusAppContext.getInstance();
45         Calendar cal = Calendar.getInstance();
46         cal.setTime(new Date());
47         cal.set(Calendar.HOUR_OF_DAY, 0);
48         cal.set(Calendar.MINUTE, 0);
49         cal.set(Calendar.SECOND, 0);
50         cal.set(Calendar.MILLISECOND, 0);
51         long now = (new Date()).getTime() / 1000;
52         long mensaCloseTime = (3600 * 13); // 13 uhr
53         long timeFrom = cal.getTime().getTime() / 1000;
54         if(now > timeFrom + mensaCloseTime)
55             timeFrom += 86400;
56         long timeTo = timeFrom + (86400 * 3) + 86399; // +3days for weekend
57
58         MensaTagesplan[] dayplans = AppContext.getDatabaseManager().getMensaTagesplan(timeFrom, timeTo);
59         if(dayplans.length == 0) {
60
61             return;
62         }
63         MensaTagesplan dayplan = dayplans[0];
64         TextView dateTextView = (TextView) view.findViewById(R.id.menuDate);
65         dateTextView.setText(getDateText(dayplan.getPlanDate(), now));
66
67         LinearLayout menueContainer = (LinearLayout) view.findViewById(R.id.menuList);
68         menueContainer.removeAllViews();
69
70         MensaTagesplan cmenue = dayplan;
71         int i = 0;
72         LayoutInflater li = LayoutInflater.from(AppContext.getMainActivity());
73         do {
74             RelativeLayout menu = (RelativeLayout) li.inflate(R.layout.fragment_dashboard_mensa_menu, null, false);
75             menueContainer.addView(menu);
76
77             TextView menuName = (TextView) menu.findViewById(R.id.menuName);
78             TextView menuPrice = (TextView) menu.findViewById(R.id.menuPrice);
79
80             menuName.setText(cmenue.getName());
81             double price = cmenue.getStudentPrice();
82             menuPrice.setText(Double.toString(price));
83         } while(i < dayplans.length && (cmenue = dayplans[++i]) != null && cmenue.getPlanDate() == dayplan.getPlanDate());
84     }
85
86     private String getDateText(long date, long now) {
87         String datetext;
88         if(now < date+86400)
89             datetext = AppContext.getResString(R.string.dashboard_calendar_today);
90         else if(now < date + (86400*2))
91             datetext = AppContext.getResString(R.string.dashboard_calendar_tomorrow);
92         else {
93             int weekdayResIds[] = new int[] { R.string.week_sunday, R.string.week_monday, R.string.week_tuesday, R.string.week_wednesday, R.string.week_thursday, R.string.week_friday, R.string.week_saturday };
94             Calendar cal = Calendar.getInstance();
95             cal.setTime(new Date(date * 1000));
96             int dow = cal.get(Calendar.DAY_OF_WEEK);
97             SimpleDateFormat dateFormat = new SimpleDateFormat("dd.MM");
98
99             datetext = AppContext.getResString(weekdayResIds[dow]) + ", " + dateFormat.format(cal.getTime());
100         }
101         return datetext;
102     }
103
104 }