added launcher icon, fixed crash due to AppContext = null (damn Android GC), made...
[DHBWCampusApp.git] / app / src / main / java / de / dhbwloe / campusapp / CampusApp.java
index e9200ac1900e54b2d049642dee14c994054b2bb9..15ae6dcbf70953fa34154e87808d9418082ae6da 100644 (file)
@@ -63,11 +63,19 @@ public class CampusApp extends FragmentActivity {
         boolean instantRestore = false;
         if(savedInstanceState != null) {
             long lastrun = savedInstanceState.getLong("lastrun");
-            if(((new Date()).getTime()/1000) - lastrun < 30) {
+            lastrun = ((new Date()).getTime()/1000) - lastrun;
+            Log.i("CampusApp", "Restored from Idle state! Idled: "+lastrun+" secs");
+            if(lastrun < 30) {
                 instantRestore = true;
 
                 AppContext.setTitle(savedInstanceState.getString("activetitle"));
+            }
+
 
+            Bundle contextVars = savedInstanceState.getBundle("savedContextVariables");
+            if(contextVars != null) {
+                Bundle contextVariables = AppContext.getContextVariables();
+                contextVariables.putAll(contextVars);
             }
         }
 
@@ -91,8 +99,13 @@ public class CampusApp extends FragmentActivity {
         TextView titleView = (TextView) findViewById(R.id.title);
         savedInstanceState.putString("activetitle", titleView.getText().toString());
 
+        Bundle contextVariables = AppContext.getContextVariables();
+        savedInstanceState.putBundle("savedContextVariables", contextVariables);
+
         // Always call the superclass so it can save the view hierarchy state
         super.onSaveInstanceState(savedInstanceState);
+
+        AppContext = null; // simulate GC
     }
 
     public void prepareMainUi() {
@@ -274,6 +287,11 @@ public class CampusApp extends FragmentActivity {
     /* nfc listener related callbacks */
     @Override
     public void onResume() {
+        if(AppContext == null)
+            AppContext = new CampusAppContext(this, R.id.fragment_container);
+        else
+            AppContext.setMainActivity(this);
+
         super.onResume();
         Log.i("CampusApp", "onResume event");
         AppContext.getNfcCardListener().resumeForefrontDispatcher();