Crash Handler Klassen umbenannt
[DHBWCampusApp.git] / app / src / main / java / de / dhbwloe / campusapp / CampusApp.java
index 654a4dc1f708a187ec7a35c948ed201f059f16b4..9c3542be9204ea974c032aec2a093f9660568f21 100644 (file)
@@ -19,8 +19,6 @@ import android.content.Context;
 import android.content.Intent;
 import android.nfc.NfcAdapter;
 import android.os.Bundle;
-import android.support.design.widget.FloatingActionButton;
-import android.support.design.widget.Snackbar;
 import android.support.v4.app.FragmentActivity;
 import android.util.Log;
 import android.view.KeyEvent;
@@ -29,7 +27,6 @@ import android.support.design.widget.NavigationView;
 import android.support.v4.view.GravityCompat;
 import android.support.v4.widget.DrawerLayout;
 import android.support.v7.app.ActionBarDrawerToggle;
-import android.support.v7.app.AppCompatActivity;
 import android.support.v7.widget.Toolbar;
 import android.view.Menu;
 import android.view.MenuItem;
@@ -42,10 +39,7 @@ import android.widget.TextView;
 
 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 +60,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 CampusAppCrashHandler oExceptionHandler = new CampusAppCrashHandler();
+            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 +163,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");
+                for(CampusAppContext.NavigationItem navitem : AppContext.NAVIGATION_TARGETS) {
+                    if(navitem.navItemId == id) {
+                        AppContext.getNavigationManager().navigatePage(navitem.navTarget);
                         break;
-                    case R.id.nav_mensa:
-                        AppContext.getNavigationManager().navigatePage("Mensa");
-                        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,7 +297,9 @@ 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);