1 package de.dhbwloe.campusapp.fragments;
4 import android.os.Bundle;
5 import android.support.v4.app.Fragment;
6 import android.text.method.CharacterPickerDialog;
7 import android.view.LayoutInflater;
8 import android.view.View;
9 import android.view.ViewGroup;
10 import android.widget.AdapterView;
11 import android.widget.CheckBox;
12 import android.widget.CompoundButton;
13 import android.widget.ListView;
15 import java.util.ArrayList;
16 import java.util.Date;
18 import de.dhbwloe.campusapp.CampusAppFragment;
19 import de.dhbwloe.campusapp.R;
20 import de.dhbwloe.campusapp.vorlesungen.CourseGroup;
23 * A simple {@link Fragment} subclass.
25 public class VorlesungsplanGroups extends CampusAppFragment implements Vorlesungsplan.VorlesungsplanFragment {
26 private String coursename;
28 private VorlesungsplanGroupsListAdapter listAdapter;
29 private ArrayList<VorlesungsplanGroupsListItem> listItems = new ArrayList<VorlesungsplanGroupsListItem>();
30 private boolean showOldCourses = false;
32 public VorlesungsplanGroups() {
33 // Required empty public constructor
38 public View onCreateView(LayoutInflater inflater, ViewGroup container,
39 Bundle savedInstanceState) {
40 String kursTag = AppContext.getDatabaseManager().getRuntimeCache("CourseName");
41 if(kursTag == null || kursTag.isEmpty())
45 view = inflater.inflate(R.layout.fragment_vorlesungsplan_groups, container, false);
47 ListView listView = (ListView) view.findViewById(R.id.listView);
48 listAdapter = new VorlesungsplanGroupsListAdapter(view.getContext(), R.layout.fragment_vorlesungsplan_groups_course, listItems);
49 listView.setAdapter(listAdapter);
51 CheckBox showOldChkBox = (CheckBox) view.findViewById(R.id.showOldCourses);
52 showOldChkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
54 public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
55 showOldCourses = isChecked;
60 listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
62 public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
63 VorlesungsplanGroupsListItem item = listItems.get(position);
65 Bundle args = new Bundle();
66 args.putString("groupid", Integer.toString(item.getGroupId()));
67 AppContext.getNavigationManager().navigatePage("Vorlesungsplan", args);
75 public void setActive() {
81 public void onResume() {
83 if(coursename != null)
87 private void updateCoursesList() {
92 notBefore = new Date();
94 CourseGroup[] groups = AppContext.getDatabaseManager().getCourseGroups(coursename, notBefore);
96 for(CourseGroup group : groups) {
97 Bundle extraData = group.getExtraData();
98 long nextKlausur = extraData.getLong("NextKlausurEvent");
99 long lastEvent = extraData.getLong("LastEvent");
101 // wenn nextKlausur über 5 jahrevon LastEvent entfernt liegt gibt es in diesem kurs KEINE Klausur.
102 // der fiktive Wert musste zur technischen funktionalität der Datenbankabfrage eingefügt werden.
103 if(nextKlausur - lastEvent > (86400 * 365 * 5))
106 VorlesungsplanGroupsListItem item = new VorlesungsplanGroupsListItem(
109 group.getGroupName(),
110 extraData.getLong("FirstEvent"),
112 extraData.getInt("EventCount"),
113 extraData.getLong("NextEvent"),
118 if(listAdapter != null)
119 listAdapter.notifyDataSetChanged();