Added own crash handler for debugging
[DHBWCampusApp.git] / app / src / main / java / de / dhbwloe / campusapp / CampusApp.java
index 654a4dc1f708a187ec7a35c948ed201f059f16b4..403c7401b748e12feeb2d2ca8f935f60b7eb6596 100644 (file)
@@ -17,6 +17,7 @@ package de.dhbwloe.campusapp;
 
 import android.content.Context;
 import android.content.Intent;
+import android.content.res.TypedArray;
 import android.nfc.NfcAdapter;
 import android.os.Bundle;
 import android.support.design.widget.FloatingActionButton;
@@ -45,7 +46,6 @@ import java.util.Date;
 import de.dhbwloe.campusapp.nfcreader.NfcCardListener;
 
 public class CampusApp extends FragmentActivity {
-
     private boolean bSearchActive = false;
     private CampusAppContext AppContext = null;
 
@@ -66,13 +66,27 @@ public class CampusApp extends FragmentActivity {
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         Log.i("CampusApp", "Event: onCreate");
+
+        if(CampusAppContext.DEBUG) {
+            final Thread.UncaughtExceptionHandler systemExceptionHandler = Thread.getDefaultUncaughtExceptionHandler();
+            final CampusAppExceptionHandler oExceptionHandler = new CampusAppExceptionHandler();
+            Thread.setDefaultUncaughtExceptionHandler (new Thread.UncaughtExceptionHandler() {
+                @Override
+                public void uncaughtException(Thread thread, Throwable e) {
+                    oExceptionHandler.handleUncaughtException(thread, e);
+                    //systemExceptionHandler.uncaughtException(thread, e);
+                    System.exit(1);
+                }
+            });
+        }
+
         super.onCreate(savedInstanceState);
         setContentView(R.layout.activity_campus_app);
 
         // Erstelle neuen AppContext, wenn keiner existiert
         AppContext = CampusAppContext.getInstance();
         if(AppContext == null)
-            AppContext = new CampusAppContext(this, R.id.fragment_container);
+            AppContext = new CampusAppContext(this, R.id.fragment_container, R.id.nav_view);
         else
             AppContext.setMainActivity(this);
 
@@ -155,30 +169,11 @@ public class CampusApp extends FragmentActivity {
                 // Handle navigation view item clicks here.
                 int id = item.getItemId();
 
-                switch (id) { // Navigation Items from res/menu/activity_campus_app_drawer.xml
-                    case R.id.nav_dashboard:
-                        AppContext.getNavigationManager().navigatePage("Dashboard");
-                        break;
-                    case R.id.nav_vorlesungsplan:
-                        AppContext.getNavigationManager().navigatePage("Vorlesungsplan");
-                        break;
-                    case R.id.nav_mensa:
-                        AppContext.getNavigationManager().navigatePage("Mensa");
+                for(CampusAppContext.NavigationItem navitem : AppContext.NAVIGATION_TARGETS) {
+                    if(navitem.navItemId == id) {
+                        AppContext.getNavigationManager().navigatePage(navitem.navTarget);
                         break;
-                    case R.id.nav_news:
-                        AppContext.getNavigationManager().navigatePage("News");
-                        break;
-                    case R.id.nav_settings:
-                        AppContext.getNavigationManager().navigatePage("Settings");
-                        break;
-                    case R.id.nav_wifi:
-                        AppContext.getNavigationManager().navigatePage("WifiSettings");
-                        break;
-                    case R.id.nav_impressum:
-                        AppContext.getNavigationManager().navigatePage("Impressum");
-                        break;
-                    default:
-                        return false;
+                    }
                 }
 
                 DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
@@ -308,10 +303,12 @@ public class CampusApp extends FragmentActivity {
     @Override
     public void onResume() {
         if(AppContext == null)
-            AppContext = new CampusAppContext(this, R.id.fragment_container);
+            AppContext = CampusAppContext.getInstance();
+        if(AppContext == null)
+            AppContext = new CampusAppContext(this, R.id.fragment_container, R.id.nav_view);
         else
             AppContext.setMainActivity(this);
-
+        
         super.onResume();
         Log.i("CampusApp", "onResume event");
         AppContext.getNfcCardListener().resumeForefrontDispatcher();