1 package de.dhbwloe.campusapp.fragments;
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.ListView;
11 import java.text.SimpleDateFormat;
12 import java.util.ArrayList;
13 import java.util.Date;
15 import de.dhbwloe.campusapp.CampusAppContext;
16 import de.dhbwloe.campusapp.CampusAppFragment;
17 import de.dhbwloe.campusapp.R;
18 import de.dhbwloe.campusapp.vorlesungen.CourseEvent;
21 * A simple {@link Fragment} subclass.
23 public class VorlesungsplanUpcoming extends CampusAppFragment implements Vorlesungsplan.VorlesungsplanFragment {
25 private String courseName;
26 private ArrayList<VorlesungsplanUpcomingDayListItem> upcomingDays = new ArrayList<VorlesungsplanUpcomingDayListItem>();
27 private VorlesungsplanUpcomingDayListAdapter upcomingDaysAdapter;
29 public VorlesungsplanUpcoming() {
30 // Required empty public constructor
35 public View onCreateView(LayoutInflater inflater, ViewGroup container,
36 Bundle savedInstanceState) {
37 view = inflater.inflate(R.layout.fragment_vorlesungsplan_upcoming, container, false);
39 String kursTag = AppContext.getDatabaseManager().getRuntimeCache("CourseName");
40 if(kursTag == null || kursTag.isEmpty()) {
45 ListView listView = (ListView) view.findViewById(R.id.listView);
46 upcomingDaysAdapter = new VorlesungsplanUpcomingDayListAdapter(view.getContext(), R.layout.fragment_vorlesungsplan_upcoming_day, upcomingDays);
47 listView.setAdapter(upcomingDaysAdapter);
53 public void setActive() {
58 public void onResume() {
60 if(courseName != null)
61 refreshUpcomingEvents();
64 private int getDayId(long time) {
65 Date date = new Date(time * 1000);
66 return getDayId(date);
68 private int getDayId(Date date) {
69 SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd");
70 return Integer.parseInt(dateFormat.format(date));
73 private void refreshUpcomingEvents() {
74 if(AppContext == null)
75 AppContext = CampusAppContext.getInstance();
76 long now = (new Date()).getTime() / 1000;
78 CourseEvent events[] = AppContext.getDatabaseManager().getCourseCalendarTimetable(courseName, now, 365);
80 VorlesungsplanUpcomingDayListItem lastDayItem = null;
82 for(int i = 0; i < events.length; i++) {
83 int dayId = getDayId(events[i].getEventTo());
84 if(dayId > lastDayId) {
85 lastDayItem = new VorlesungsplanUpcomingDayListItem(events[i].getEventTo());
86 upcomingDays.add(lastDayItem);
89 lastDayItem.addCourseEvent(events[i]);
91 if(upcomingDaysAdapter != null) {
92 upcomingDaysAdapter.notifyDataSetChanged();