X-Git-Url: http://git.pk910.de/?a=blobdiff_plain;ds=sidebyside;f=app%2Fsrc%2Fmain%2Fjava%2Fde%2Fdhbwloe%2Fcampusapp%2Fdatabase%2FDatabaseManager.java;h=628d78f88ff9728d0437e61b025539c68c44e029;hb=17d3a2ce93fd3ba1ec692dea601f246ef8e068b2;hp=d042bd0810a3e4b6fc1f121b96deb1b2477ce56b;hpb=48e758721a39298a85c69ecc7267f3daf6993e78;p=DHBWCampusApp.git diff --git a/app/src/main/java/de/dhbwloe/campusapp/database/DatabaseManager.java b/app/src/main/java/de/dhbwloe/campusapp/database/DatabaseManager.java index d042bd0..628d78f 100644 --- a/app/src/main/java/de/dhbwloe/campusapp/database/DatabaseManager.java +++ b/app/src/main/java/de/dhbwloe/campusapp/database/DatabaseManager.java @@ -18,23 +18,14 @@ import android.app.Activity; 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; @@ -46,7 +37,7 @@ import de.dhbwloe.campusapp.vorlesungen.CourseGroup; */ 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; @@ -189,6 +180,15 @@ public class DatabaseManager { } 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 } @@ -386,6 +386,88 @@ public class DatabaseManager { 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 courseNames = new ArrayList(); + 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)