import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
-import android.util.Log;
import net.fortuna.ical4j.model.Component;
-import net.fortuna.ical4j.model.DateList;
-import net.fortuna.ical4j.model.DateTime;
-import net.fortuna.ical4j.model.Period;
-import net.fortuna.ical4j.model.Recur;
-import net.fortuna.ical4j.model.parameter.Value;
-import net.fortuna.ical4j.model.property.RRule;
-
-import java.lang.reflect.Array;
-import java.text.ParseException;
+
import java.util.ArrayList;
import java.util.Date;
-import java.util.ListIterator;
import de.dhbwloe.campusapp.CampusAppContext;
+import de.dhbwloe.campusapp.coursenames.CourseName;
import de.dhbwloe.campusapp.mensaplan.MensaTagesplan;
import de.dhbwloe.campusapp.news.NewsItem;
import de.dhbwloe.campusapp.search.SearchIndices;
*/
public class DatabaseManager {
private static final String DATABASE_NAME = "DHBWLoe.CampusApp.db";
- private static final int DATABASE_VERSION = 2; // Datenbank Version - muss bei strukturellen Anpassungen erhöht werden
+ private static final int DATABASE_VERSION = 3; // Datenbank Version - muss bei strukturellen Anpassungen erhöht werden
private CampusAppContext AppContext;
private SQLiteDatabase database;
}
if(oldVersion < 3 && newVersion >= 3) {
// Version 3
+ database.execSQL("CREATE TABLE IF NOT EXISTS CourseNames " +
+ "(" +
+ "CourseName TEXT, " +
+ "Status TEXT, " +
+ "LastUpdate INT" +
+ ");");
+ }
+ if(oldVersion < 4 && newVersion >= 4) {
+ // Version 4
}
return nfcCardData;
}
+ public CourseName[] getCourseNames() {
+ openDatabase();
+ String value = null;
+ Cursor resultSet;
+ resultSet = database.rawQuery("SELECT CourseName, Status, LastUpdate FROM CourseNames ORDER BY CourseName ASC", null);
+
+ ArrayList<CourseName> courseNames = new ArrayList<CourseName>();
+ if(resultSet.moveToFirst()) {
+ do {
+ CourseName cname = new CourseName(resultSet.getString(0), resultSet.getString(1), resultSet.getLong(2));
+ courseNames.add(cname);
+ } while (resultSet.moveToNext());
+ }
+ resultSet.close();
+ CourseName[] resultsArr = new CourseName[courseNames.size()];
+ resultsArr = courseNames.toArray(resultsArr);
+ return resultsArr;
+ }
+
+ public CourseName getLatestCourseName() {
+ openDatabase();
+ CourseName lastCourse = null;
+ Cursor resultSet;
+ resultSet = database.rawQuery("SELECT CourseName, Status, LastUpdate FROM CourseNames ORDER BY LastUpdate DESC LIMIT 1", null);
+
+ if(resultSet.moveToFirst()) {
+ lastCourse = new CourseName(resultSet.getString(0), resultSet.getString(1), resultSet.getLong(2));
+ }
+ resultSet.close();
+ return lastCourse;
+ }
+
+ public void addCourseName(CourseName courseName) {
+ openDatabase();
+ String[] whereArgs = new String[] {
+ courseName.getName()
+ };
+ Cursor resultSet = database.rawQuery("SELECT CourseName FROM CourseNames WHERE CourseName = ?", whereArgs);
+ if(resultSet.moveToFirst()) {
+ if(courseName.isActiveCourse()) {
+ try {
+ ContentValues updateValues = new ContentValues();
+ updateValues.put("Status", courseName.getStatus());
+ updateValues.put("LastUpdate", courseName.getLastUpdate());
+
+ database.update("CourseNames", updateValues, "CourseName = ?", whereArgs);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ } else {
+ database.delete("CourseNames", "CourseName = ?", whereArgs);
+ }
+ } else if(courseName.isActiveCourse()) {
+ try {
+ ContentValues indexValues = new ContentValues();
+ indexValues.put("CourseName", courseName.getName());
+ indexValues.put("Status", courseName.getStatus());
+ indexValues.put("LastUpdate", courseName.getLastUpdate());
+
+ database.insertOrThrow("CourseNames", null, indexValues);
+ } catch(Exception e) {
+ e.printStackTrace();
+ }
+ }
+ resultSet.close();
+ }
+
+ public boolean haveCourseName(String courseName) {
+ openDatabase();
+ String[] whereArgs = new String[] {
+ courseName
+ };
+ Cursor resultSet = database.rawQuery("SELECT CourseName FROM CourseNames WHERE CourseName = ?", whereArgs);
+ boolean result;
+ if(resultSet.moveToFirst()) {
+ result = true;
+ } else {
+ result = false;
+ }
+ return result;
+ }
+
public void updateCourseCalendar(CourseEvent event, Component cevent) {
openDatabase();
if(vorlesungsplanDBHelper == null)