added launcher icon, fixed crash due to AppContext = null (damn Android GC), made...
[DHBWCampusApp.git] / app / src / main / java / de / dhbwloe / campusapp / database / DatabaseManager.java
index 326b914be070117ff8548e7413812ae4734e12f6..ccf9a0424297fc8bdd1485304941bd06e2d9f3ea 100644 (file)
@@ -43,8 +43,15 @@ public class DatabaseManager {
         AppContext = context;
     }
 
-    public void initializeDatabase() {
+    private void openDatabase() {
+        if(database != null)
+            return;
+
         database = AppContext.getMainActivity().openOrCreateDatabase(DATABASE_NAME, Activity.MODE_PRIVATE, null);
+    }
+
+    public void initializeDatabase() {
+        openDatabase();
         database.execSQL("CREATE TABLE IF NOT EXISTS Version(Version INT);");
 
         Cursor resultSet = database.rawQuery("Select * from Version", null);
@@ -162,6 +169,7 @@ public class DatabaseManager {
     }
 
     public void addSearchIndices(SearchIndices[] indices) {
+        openDatabase();
         for(int i = 0; i < indices.length; i++) {
             String[] whereArgs = new String[] {
                     indices[i].getKeyName()
@@ -195,6 +203,7 @@ public class DatabaseManager {
     }
 
     public SearchIndices[] performSearchRequest(String query, int maxResults) {
+        openDatabase();
         String[] whereArgs = new String[] {
                 "%" + query + "%"
         };
@@ -228,6 +237,7 @@ public class DatabaseManager {
     }
 
     public void setRuntimeCache(String name, String value) {
+        openDatabase();
         long now = (new Date()).getTime() / 1000;
         String[] whereArgs = new String[] {
                 name
@@ -261,6 +271,7 @@ public class DatabaseManager {
     }
 
     public String getRuntimeCache(String name) {
+        openDatabase();
         String value = null;
         String[] whereArgs = new String[] {
                 name
@@ -274,6 +285,7 @@ public class DatabaseManager {
     }
 
     public void addNfcCardData(NfcCardData nfcCardData) {
+        openDatabase();
         String[] whereArgs = new String[] {
                 Integer.toString(nfcCardData.getUniqueId()),
                 Long.toString(nfcCardData.getLastUpdate())
@@ -306,6 +318,7 @@ public class DatabaseManager {
     }
 
     public NfcCardData[] getNfcCardData(int lastLimit) {
+        openDatabase();
         String value = null;
         Cursor resultSet;
         if(lastLimit > 0) {
@@ -329,6 +342,7 @@ public class DatabaseManager {
     }
 
     public NfcCardData getLatestNfcCardData(int cardId) {
+        openDatabase();
         String value = null;
         String[] whereArgs = {
                 Integer.toString(cardId)
@@ -343,66 +357,77 @@ public class DatabaseManager {
     }
 
     public void updateCourseCalendar(CourseEvent event) {
+        openDatabase();
         if(vorlesungsplanDBHelper == null)
             vorlesungsplanDBHelper = new VorlesungsplanDatabaseHelper(AppContext, database);
         vorlesungsplanDBHelper.updateCourseCalendar(event);
     }
 
     public CourseEvent[] getCourseCalendarEvents(String coursename, long timeFrom, long timeTo) {
+        openDatabase();
         if(vorlesungsplanDBHelper == null)
             vorlesungsplanDBHelper = new VorlesungsplanDatabaseHelper(AppContext, database);
         return vorlesungsplanDBHelper.getCourseCalendarEvents(coursename, timeFrom, timeTo);
     }
 
     public CourseGroup getCourseGroup(int courseGroupId) {
+        openDatabase();
         if(vorlesungsplanDBHelper == null)
             vorlesungsplanDBHelper = new VorlesungsplanDatabaseHelper(AppContext, database);
         return vorlesungsplanDBHelper.getCourseGroup(courseGroupId);
     }
 
     public CourseGroup getCourseGroup(String coursename, String groupname) {
+        openDatabase();
         if(vorlesungsplanDBHelper == null)
             vorlesungsplanDBHelper = new VorlesungsplanDatabaseHelper(AppContext, database);
         return vorlesungsplanDBHelper.getCourseGroup(coursename, groupname);
     }
 
     public CourseGroup addCourseGroup(String coursename, String groupname) {
+        openDatabase();
         if(vorlesungsplanDBHelper == null)
             vorlesungsplanDBHelper = new VorlesungsplanDatabaseHelper(AppContext, database);
         return vorlesungsplanDBHelper.addCourseGroup(coursename, groupname);
     }
 
     public void updateMensaTagesplan(MensaTagesplan plan) {
+        openDatabase();
         if(mensaplanDBHelper == null)
             mensaplanDBHelper = new MensaplanDatabaseHelper(AppContext, database);
         mensaplanDBHelper.updateMensaTagesplan(plan);
     }
 
     public MensaTagesplan[] getMensaTagesplan(long timeFrom, long timeTo) {
+        openDatabase();
         if(mensaplanDBHelper == null)
             mensaplanDBHelper = new MensaplanDatabaseHelper(AppContext, database);
         return mensaplanDBHelper.getMensaTagesplan(timeFrom, timeTo);
     }
 
     public long[] getDaysWithPlanData(long timeFrom, long timeTo) {
+        openDatabase();
         if(mensaplanDBHelper == null)
             mensaplanDBHelper = new MensaplanDatabaseHelper(AppContext, database);
         return mensaplanDBHelper.getDaysWithPlanData(timeFrom, timeTo);
     }
 
     public long[] getWeeksWithPlanData(long timeFrom, long timeTo) {
+        openDatabase();
         if(mensaplanDBHelper == null)
             mensaplanDBHelper = new MensaplanDatabaseHelper(AppContext, database);
         return mensaplanDBHelper.getWeeksWithPlanData(timeFrom, timeTo);
     }
 
     public void updateNewsItem(NewsItem news) {
+        openDatabase();
         if(newsDBHelper == null)
             newsDBHelper = new NewsDatabaseHelper(AppContext, database);
         newsDBHelper.updateNewsItem(news);
     }
 
     public NewsItem[] getNewsItems(String source, long timeFrom, long timeTo) {
+        openDatabase();
         if(newsDBHelper == null)
             newsDBHelper = new NewsDatabaseHelper(AppContext, database);
         return newsDBHelper.getNewsItems(source, timeFrom, timeTo);