return vorlesungsplanDBHelper.getCourseGroups(coursename, notBefore);
}
+ public CourseEvent[] getCourseExamEvents(String coursename, long timeFrom, long timeTo) {
+ openDatabase();
+ if(vorlesungsplanDBHelper == null)
+ vorlesungsplanDBHelper = new VorlesungsplanDatabaseHelper(AppContext, database);
+ return vorlesungsplanDBHelper.getCourseExamEvents(coursename, timeFrom, timeTo);
+ }
+
public void updateMensaTagesplan(MensaTagesplan plan) {
openDatabase();
if(mensaplanDBHelper == null)
return groupsArr;
}
+ public CourseEvent[] getCourseExamEvents(String coursename, long timeFrom, long timeTo) {
+ String[] whereArgs = new String[] {
+ coursename,
+ Long.toString(timeFrom),
+ Long.toString(timeTo)
+ };
+ Cursor resultSet = database.rawQuery(
+ "SELECT " +
+ "Id, CourseName, UniqueId, SequenceId, CourseCalendarEvent.EventFrom, CourseCalendarEvent.EventTo, EventTitle, EventLocation, EventStatus, RecurRule, ExcludeDates, CourseGroupId, EventType " +
+ "FROM " +
+ "CourseCalendarEvent " +
+ "LEFT JOIN " +
+ "CourseCalendar ON CourseCalendar.Id = CourseCalendarEvent.EventId "+
+ "WHERE " +
+ "CourseName = ? AND CourseCalendarEvent.EventTo >= ? AND CourseCalendarEvent.EventFrom <= ? AND EventType = 2",
+ whereArgs);
+ ArrayList<CourseEvent> events = new ArrayList<CourseEvent>();
+ if(resultSet.moveToFirst()) {
+ int[] columnIndexes = {
+ resultSet.getColumnIndex("Id"),
+ resultSet.getColumnIndex("CourseName"),
+ resultSet.getColumnIndex("UniqueId"),
+ resultSet.getColumnIndex("SequenceId"),
+ resultSet.getColumnIndex("EventFrom"),
+ resultSet.getColumnIndex("EventTo"),
+ resultSet.getColumnIndex("EventTitle"),
+ resultSet.getColumnIndex("EventLocation"),
+ resultSet.getColumnIndex("EventStatus"),
+ resultSet.getColumnIndex("RecurRule"),
+ resultSet.getColumnIndex("ExcludeDates"),
+ resultSet.getColumnIndex("CourseGroupId"),
+ resultSet.getColumnIndex("EventType")
+ };
+ do {
+ int groupId = resultSet.getInt(columnIndexes[11]);
+ CourseGroup group;
+ if(groupId > 0)
+ group = CourseGroup.GetCourseGroupById(AppContext.getDatabaseManager(), groupId);
+ else
+ group = null;
+
+ int eventType = resultSet.getInt(columnIndexes[12]);
+
+ CourseEvent event = new CourseEvent(resultSet.getInt(columnIndexes[0]), resultSet.getString(columnIndexes[1]), resultSet.getString(columnIndexes[2]), resultSet.getInt(columnIndexes[3]),
+ resultSet.getLong(columnIndexes[4]), resultSet.getLong(columnIndexes[5]), resultSet.getString(columnIndexes[6]), resultSet.getString(columnIndexes[7]),
+ resultSet.getString(columnIndexes[8]), resultSet.getString(columnIndexes[9]), resultSet.getString(columnIndexes[10]), group, eventType);
+
+ events.add(event);
+ } while (resultSet.moveToNext());
+ }
+ resultSet.close();
+
+ CourseEvent[] eventsArr = new CourseEvent[events.size()];
+ eventsArr = events.toArray(eventsArr);
+ return eventsArr;
+ }
+
}
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
+import android.widget.ListView;
+
+import java.util.ArrayList;
+import java.util.Date;
import de.dhbwloe.campusapp.CampusAppFragment;
import de.dhbwloe.campusapp.R;
+import de.dhbwloe.campusapp.vorlesungen.CourseEvent;
+import de.dhbwloe.campusapp.vorlesungen.CourseGroup;
/**
* A simple {@link Fragment} subclass.
*/
public class VorlesungsplanExams extends CampusAppFragment implements Vorlesungsplan.VorlesungsplanFragment {
-
+ private String coursename;
+ private View view;
+ private VorlesungsplanExamsListAdapter listAdapter;
+ private ArrayList<VorlesungsplanExamsListItem> listItems = new ArrayList<VorlesungsplanExamsListItem>();
public VorlesungsplanExams() {
// Required empty public constructor
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
- // Inflate the layout for this fragment
- return inflater.inflate(R.layout.fragment_vorlesungsplan_exams, container, false);
+ String kursTag = AppContext.getDatabaseManager().getRuntimeCache("CourseName");
+ if(kursTag == null || kursTag.isEmpty())
+ return null;
+ coursename = kursTag;
+
+ view = inflater.inflate(R.layout.fragment_vorlesungsplan_exams, container, false);
+
+ ListView listView = (ListView) view.findViewById(R.id.listView);
+ listAdapter = new VorlesungsplanExamsListAdapter(view.getContext(), R.layout.fragment_vorlesungsplan_exams_exam, listItems);
+ listView.setAdapter(listAdapter);
+
+ return view;
}
@Override
}
+ @Override
+ public void onResume() {
+ super.onResume();
+ if(coursename != null)
+ updateCoursesList();
+ }
+
+ private void updateCoursesList() {
+ long now = (new Date()).getTime()/1000;
+
+ CourseEvent[] events = AppContext.getDatabaseManager().getCourseExamEvents(coursename, now, now + (86400 * 30 * 3)); // next 3 month
+ listItems.clear();
+ for(CourseEvent event : events) {
+
+ VorlesungsplanExamsListItem item = new VorlesungsplanExamsListItem(
+ event.getEventId(),
+ coursename,
+ event.getEventTitle(),
+ event.getEventFrom(),
+ event.getEventTo(),
+ 1
+ );
+ listItems.add(item);
+ }
+ if(listAdapter != null)
+ listAdapter.notifyDataSetChanged();
+ }
+
}
--- /dev/null
+package de.dhbwloe.campusapp.fragments;
+
+import android.content.Context;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ArrayAdapter;
+import android.widget.TextView;
+
+import java.util.ArrayList;
+
+import de.dhbwloe.campusapp.CampusAppContext;
+import de.dhbwloe.campusapp.R;
+
+/**
+ * Created by pk910 on 27.02.2016.
+ */
+public class VorlesungsplanExamsListAdapter extends ArrayAdapter<VorlesungsplanExamsListItem> {
+ private Context context;
+ private int layoutResourceId;
+ private ArrayList<VorlesungsplanExamsListItem> data = new ArrayList<VorlesungsplanExamsListItem>();
+
+ public VorlesungsplanExamsListAdapter(Context context, int layoutResourceId, ArrayList<VorlesungsplanExamsListItem> data) {
+ super(context, layoutResourceId, data);
+ this.layoutResourceId = layoutResourceId;
+ this.context = context;
+ this.data = data;
+ }
+
+ @Override
+ public View getView(int position, View convertView, ViewGroup parent) {
+ View row = convertView;
+ RecordHolder holder = null;
+
+ if (row == null) {
+ LayoutInflater inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
+ row = inflater.inflate(layoutResourceId, parent, false);
+
+ holder = new RecordHolder(row);
+ row.setTag(holder);
+ } else {
+ holder = (RecordHolder) row.getTag();
+ }
+
+ final VorlesungsplanExamsListAdapter that = this;
+ final VorlesungsplanExamsListItem item = data.get(position);
+
+ holder.groupName.setText(item.getGroupName());
+ holder.eventDate.setText(item.getEventDate());
+ holder.eventStart.setText(item.getEventStart());
+ holder.eventEnd.setText(item.getEventEnd());
+
+ return row;
+ }
+
+ static class RecordHolder {
+ TextView groupName;
+ TextView eventDate;
+ TextView eventStart;
+ TextView eventEnd;
+
+ public RecordHolder(View view) {
+ this.groupName = (TextView) view.findViewById(R.id.courseTitle);
+ this.eventDate = (TextView) view.findViewById(R.id.eventDate);
+ this.eventStart = (TextView) view.findViewById(R.id.eventStart);
+ this.eventEnd = (TextView) view.findViewById(R.id.eventEnd);
+ }
+ }
+}
--- /dev/null
+package de.dhbwloe.campusapp.fragments;
+
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+import de.dhbwloe.campusapp.CampusAppContext;
+import de.dhbwloe.campusapp.R;
+
+/**
+ * Created by pk910 on 28.02.2016.
+ */
+public class VorlesungsplanExamsListItem {
+ private int groupId;
+ private String courseName;
+ private String groupName;
+ private long eventStart, eventEnd;
+ private int eventCount;
+
+ public VorlesungsplanExamsListItem(int groupid, String coursename, String groupname, long eventstart, long eventend, int eventcount) {
+ groupId = groupid;
+ courseName = coursename;
+ groupName = groupname;
+ eventStart = eventstart;
+ eventEnd = eventend;
+ eventCount = eventcount;
+ }
+
+ public int getGroupId() {
+ return groupId;
+ }
+
+ public String getCourseName() {
+ return courseName;
+ }
+
+ public String getGroupName() {
+ return groupName;
+ }
+
+ public String getEventDate() {
+ if(eventStart == 0)
+ return null;
+ SimpleDateFormat dateFormat = new SimpleDateFormat(CampusAppContext.getInstance().getResString(R.string.timeformat_vorlesungsplan_date));
+ Date date = new Date(eventStart*1000);
+ return dateFormat.format(date);
+ }
+
+ public String getEventStart() {
+ if(eventStart == 0)
+ return null;
+ SimpleDateFormat dateFormat = new SimpleDateFormat(CampusAppContext.getInstance().getResString(R.string.timeformat_vorlesungsplan_time));
+ Date date = new Date(eventStart*1000);
+ return dateFormat.format(date);
+ }
+
+ public String getEventEnd() {
+ if(eventEnd == 0)
+ return null;
+ SimpleDateFormat dateFormat = new SimpleDateFormat(CampusAppContext.getInstance().getResString(R.string.timeformat_vorlesungsplan_time));
+ Date date = new Date(eventEnd*1000);
+ return dateFormat.format(date);
+ }
+
+ public int getEventCount() {
+ return eventCount;
+ }
+}
-<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
- tools:context="de.dhbwloe.campusapp.fragments.VorlesungsplanExams">
+ tools:context="de.dhbwloe.campusapp.fragments.VorlesungsplanGroups"
+ android:orientation="vertical">
- <!-- TODO: Update blank fragment layout -->
- <TextView
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:text="@string/hello_blank_fragment" />
-</FrameLayout>
+ <ListView
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:id="@+id/listView"
+ android:layout_gravity="center_horizontal" />
+</LinearLayout>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:card_view="http://schemas.android.com/apk/res-auto"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent">
+
+ <android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@+id/card_upcomingday"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_margin="8dp"
+ card_view:cardCornerRadius="5dp">
+
+ <RelativeLayout
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:padding="8dp">
+
+
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="{title}"
+ android:id="@+id/courseTitle"
+ android:layout_alignParentTop="true"
+ android:layout_alignParentLeft="true"
+ android:layout_alignParentStart="true" />
+
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="@string/vorlesungsplan_exam_date"
+ android:id="@+id/textView16"
+ android:layout_below="@+id/courseTitle"
+ android:layout_marginLeft="12dp"
+ android:layout_marginTop="8dp" />
+
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="@string/vorlesungsplan_exam_start"
+ android:id="@+id/textView17"
+ android:layout_below="@+id/textView16"
+ android:layout_marginLeft="12dp" />
+
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="@string/vorlesungsplan_exam_end"
+ android:id="@+id/klausurName"
+ android:layout_below="@+id/textView17"
+ android:layout_marginLeft="12dp" />
+
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="{date}"
+ android:id="@+id/eventDate"
+ android:layout_alignBottom="@+id/textView16"
+ android:layout_toRightOf="@+id/textView16"
+ android:layout_toEndOf="@+id/textView16"
+ android:layout_marginLeft="16dp" />
+
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="{date}"
+ android:id="@+id/eventStart"
+ android:layout_alignBottom="@+id/textView17"
+ android:layout_alignLeft="@+id/eventDate"
+ android:layout_alignStart="@+id/eventDate" />
+
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="{date}"
+ android:id="@+id/eventEnd"
+ android:layout_alignBottom="@+id/klausurName"
+ android:layout_alignLeft="@+id/eventDate"
+ android:layout_alignStart="@+id/eventDate" />
+
+ </RelativeLayout>
+ </android.support.v7.widget.CardView>
+
+</RelativeLayout>
\ No newline at end of file
<string name="vorlesungsplan_groups_klausur">Klausur:</string>
<string name="vorlesungsplan_groups_praesi">Präsentation:</string>
+ <string name="vorlesungsplan_exam_date">Datum:</string>
+ <string name="vorlesungsplan_exam_start">Beginn:</string>
+ <string name="vorlesungsplan_exam_end">Ende:</string>
+
<string name="impressum_title">Impressum</string>
<string name="impressum_h1">Campus App</string>
<string name="impressum_about">Diese App wurde im Rahmen der Vorlesung \n\'Entwicklung mobiler Apps\' erstellt.</string>