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.CheckBox;
10 import android.widget.CompoundButton;
11 import android.widget.ListView;
13 import java.util.ArrayList;
14 import java.util.Date;
16 import de.dhbwloe.campusapp.CampusAppFragment;
17 import de.dhbwloe.campusapp.R;
18 import de.dhbwloe.campusapp.vorlesungen.CourseGroup;
21 * A simple {@link Fragment} subclass.
23 public class VorlesungsplanGroups extends CampusAppFragment implements Vorlesungsplan.VorlesungsplanFragment {
24 private String coursename;
26 private VorlesungsplanGroupsListAdapter listAdapter;
27 private ArrayList<VorlesungsplanGroupsListItem> listItems = new ArrayList<VorlesungsplanGroupsListItem>();
28 private boolean showOldCourses = false;
30 public VorlesungsplanGroups() {
31 // Required empty public constructor
36 public View onCreateView(LayoutInflater inflater, ViewGroup container,
37 Bundle savedInstanceState) {
38 String kursTag = AppContext.getDatabaseManager().getRuntimeCache("CourseName");
39 if(kursTag == null || kursTag.isEmpty())
43 view = inflater.inflate(R.layout.fragment_vorlesungsplan_groups, container, false);
45 ListView listView = (ListView) view.findViewById(R.id.listView);
46 listAdapter = new VorlesungsplanGroupsListAdapter(view.getContext(), R.layout.fragment_vorlesungsplan_groups_course, listItems);
47 listView.setAdapter(listAdapter);
49 CheckBox showOldChkBox = (CheckBox) view.findViewById(R.id.showOldCourses);
50 showOldChkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
52 public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
53 showOldCourses = isChecked;
62 public void setActive() {
68 public void onResume() {
70 if(coursename != null)
74 private void updateCoursesList() {
79 notBefore = new Date();
81 CourseGroup[] groups = AppContext.getDatabaseManager().getCourseGroups(coursename, notBefore);
83 for(CourseGroup group : groups) {
84 Bundle extraData = group.getExtraData();
85 long nextKlausur = extraData.getLong("NextKlausurEvent");
86 long lastEvent = extraData.getLong("LastEvent");
88 // wenn nextKlausur über 5 jahrevon LastEvent entfernt liegt gibt es in diesem kurs KEINE Klausur.
89 // der fiktive Wert musste zur technischen funktionalität der Datenbankabfrage eingefügt werden.
90 if(nextKlausur - lastEvent > (86400 * 365 * 5))
93 VorlesungsplanGroupsListItem item = new VorlesungsplanGroupsListItem(
97 extraData.getLong("FirstEvent"),
99 extraData.getInt("EventCount"),
100 extraData.getLong("NextEvent"),
105 if(listAdapter != null)
106 listAdapter.notifyDataSetChanged();