X-Git-Url: http://git.pk910.de/?a=blobdiff_plain;f=app%2Fsrc%2Fmain%2Fjava%2Fde%2Fdhbwloe%2Fcampusapp%2FCampusApp.java;h=654a4dc1f708a187ec7a35c948ed201f059f16b4;hb=48e758721a39298a85c69ecc7267f3daf6993e78;hp=e9200ac1900e54b2d049642dee14c994054b2bb9;hpb=a0f644715b43af1e4acf2513b972c3f980efdaca;p=DHBWCampusApp.git diff --git a/app/src/main/java/de/dhbwloe/campusapp/CampusApp.java b/app/src/main/java/de/dhbwloe/campusapp/CampusApp.java index e9200ac..654a4dc 100644 --- a/app/src/main/java/de/dhbwloe/campusapp/CampusApp.java +++ b/app/src/main/java/de/dhbwloe/campusapp/CampusApp.java @@ -1,3 +1,18 @@ +/* CampusApp.java + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ package de.dhbwloe.campusapp; import android.content.Context; @@ -54,20 +69,31 @@ public class CampusApp extends FragmentActivity { 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); else AppContext.setMainActivity(this); + // Wenn die App aus dem Ruhezustand (oder auch Orientation change) reaktiviert wird soll nicht zuerst der Splashscreen angezeigt werden. 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; + // restore previous Title AppContext.setTitle(savedInstanceState.getString("activetitle")); + } + + Bundle contextVars = savedInstanceState.getBundle("savedContextVariables"); + if(contextVars != null) { + Bundle contextVariables = AppContext.getContextVariables(); + contextVariables.putAll(contextVars); } } @@ -84,6 +110,7 @@ public class CampusApp extends FragmentActivity { @Override public void onSaveInstanceState(Bundle savedInstanceState) { Log.i("CampusApp", "Event: onSaveInstanceState"); + // Save instance state during "restarts" due to orientation changes. // We don't want to see the splash screen everytime the orientation changes ;) savedInstanceState.putLong("lastrun", (new Date()).getTime() / 1000); @@ -91,6 +118,9 @@ 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); } @@ -139,8 +169,10 @@ public class CampusApp extends FragmentActivity { AppContext.getNavigationManager().navigatePage("News"); break; case R.id.nav_settings: - Intent settings = new Intent(AppContext.getMainActivity(), SettingsActivity.class); - AppContext.getMainActivity().startActivity(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"); @@ -162,6 +194,7 @@ public class CampusApp extends FragmentActivity { EditText edtSearchInput = (EditText) findViewById(R.id.search_input); TextView txtTitle = (TextView) findViewById(R.id.title); + // EventListener für Suchfunktion btnOpenSearch.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { @@ -274,6 +307,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();