X-Git-Url: http://git.pk910.de/?a=blobdiff_plain;f=app%2Fsrc%2Fmain%2Fjava%2Fde%2Fdhbwloe%2Fcampusapp%2FCampusAppContext.java;h=6f0b57865bd541ec994e4baf18b7cb4fbadab904;hb=031bc5825ec414fbe567276d504748c92325fd3b;hp=77c2b9d82ccc366b7bf4fc33eb10e9125975ed34;hpb=bd624f87e88e024b0c680f989cf008941fccc17f;p=DHBWCampusApp.git diff --git a/app/src/main/java/de/dhbwloe/campusapp/CampusAppContext.java b/app/src/main/java/de/dhbwloe/campusapp/CampusAppContext.java index 77c2b9d..6f0b578 100644 --- a/app/src/main/java/de/dhbwloe/campusapp/CampusAppContext.java +++ b/app/src/main/java/de/dhbwloe/campusapp/CampusAppContext.java @@ -1,6 +1,22 @@ +/* CampusAppContext.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.app.Activity; +import android.content.Intent; import android.os.Bundle; import android.util.Log; import android.widget.TextView; @@ -14,9 +30,9 @@ import de.dhbwloe.campusapp.fragments.FirstRun; import de.dhbwloe.campusapp.fragments.Impressum; import de.dhbwloe.campusapp.fragments.Mensa; import de.dhbwloe.campusapp.fragments.MensaCard; -import de.dhbwloe.campusapp.fragments.MensaWochenplan; import de.dhbwloe.campusapp.fragments.News; import de.dhbwloe.campusapp.fragments.PopupFragment; +import de.dhbwloe.campusapp.fragments.Settings; import de.dhbwloe.campusapp.fragments.SplashScreen; import de.dhbwloe.campusapp.fragments.Vorlesungsplan; import de.dhbwloe.campusapp.fragments.WebBrowser; @@ -47,7 +63,50 @@ public class CampusAppContext { this.fragementType = type; } } - private final AppPage[] PAGES = { + public class NavigationItem { + int navItemId; + String navTarget; + }; + + public final static boolean DEBUG = true; + public final NavigationItem[] NAVIGATION_TARGETS = new NavigationItem[] { + new NavigationItem() {{ + navItemId = R.id.nav_dashboard; + navTarget = "Dashboard"; + }}, + new NavigationItem() {{ + navItemId = R.id.nav_vorlesungsplan; + navTarget = "Vorlesungsplan"; + }}, + new NavigationItem() {{ + navItemId = R.id.nav_mensa; + navTarget = "Mensa"; + }}, + new NavigationItem() {{ + navItemId = R.id.nav_mensa; + navTarget = "Mensa"; + }}, + new NavigationItem() {{ + navItemId = R.id.nav_news; + navTarget = "News"; + }}, + new NavigationItem() {{ + navItemId = R.id.nav_settings; + navTarget = "Settings"; + }}, + new NavigationItem() {{ + navItemId = R.id.nav_wifi; + navTarget = "WifiSettings"; + }}, + new NavigationItem() {{ + navItemId = R.id.nav_impressum; + navTarget = "Impressum"; + }}, + + }; + + public static final String APPVERSION = "0.1.4 (beta)"; + private final AppPage[] PAGES = { // Hier müssen alle Fragmente, die auf der Activity angezeigt werden sollen eingetragen werden. new AppPage("SplashScreen", SplashScreen.class), new AppPage("Dashboard", Dashboard.class), new AppPage("AppSearch", AppSearch.class), @@ -57,6 +116,7 @@ public class CampusAppContext { new AppPage("News", News.class), new AppPage("WifiSettings", WifiSettings.class), new AppPage("FirstRun", FirstRun.class), + new AppPage("Settings", Settings.class), new AppPage("Impressum", Impressum.class), new AppPage("WebBrowser", WebBrowser.class), new AppPage("WebBrowserPopup", WebBrowser.class, 3) @@ -72,15 +132,20 @@ public class CampusAppContext { private NavigationManager oNavigationManager; private DatabaseManager oDatabaseManager; private NfcCardListener oNfcCardListener; + private Bundle oContextVariables; + private CampusAppExceptionHandler oExceptionHandler; - public CampusAppContext(CampusApp mainActivity, int fragmentContainerId) { + public CampusAppContext(CampusApp mainActivity, int fragmentContainerId, int navigationViewId) { final CampusAppContext AppContext = this; instance = this; + oMainActivity = mainActivity; - oNavigationManager = new NavigationManager(this, fragmentContainerId); + oContextVariables = new Bundle(); + oNavigationManager = new NavigationManager(this, fragmentContainerId, navigationViewId); oDatabaseManager = new DatabaseManager(this); oNfcCardListener = new NfcCardListener(this); + // Alle Fragmente "registrieren" for(int i = 0; i < PAGES.length; i++) oNavigationManager.registerPage(PAGES[i].name, PAGES[i].fragment, PAGES[i].fragementType); @@ -110,9 +175,11 @@ public class CampusAppContext { } public void setTitle(String title) { + // Ändern des Titels (Im App Header angezeigt) PopupFragment popup = oNavigationManager.getDialog(); if(popup != null) { - popup.getDialog().setTitle(title); + if(popup.getDialog() != null) + popup.getDialog().setTitle(title); } else { TextView titleView = (TextView)oMainActivity.findViewById(R.id.title); titleView.setText(title); @@ -124,6 +191,7 @@ public class CampusAppContext { } public void addDefaultSearchIndexes() { + // Alle Search Indices der eigetragenen Seiten beziehen und in der Datenbank speichern for(int i = 0; i < PAGES.length; i++) { try { Method m = PAGES[i].fragment.getMethod("GetSearchIndices"); @@ -144,11 +212,17 @@ public class CampusAppContext { } private void onNfcCardDataReceived(NfcCardData data) { + // NFC Daten erhalten Bundle bundle = new Bundle(); - bundle.putDouble("balance", data.getBalance() / 100.0); + double cardBalance = data.getBalance() / 100.0; + bundle.putDouble("balance", cardBalance); bundle.putDouble("transaction", data.getLastTransaction() / 100.0); + oContextVariables.putInt("nfcCardUniqueId", data.getUniqueId()); + oContextVariables.putDouble("nfcCardBalance", cardBalance); + String pagename = oNavigationManager.getCurrentPageName(); + // Update angezeigtes Guthaben lediglich, wenn das Fragment bereits angezeigt wird if(pagename != null && pagename.equalsIgnoreCase("MensaCard")) { MensaCard fragment = (MensaCard) oNavigationManager.getCurrentFragment(); fragment.showNfcCardData(bundle); @@ -156,4 +230,19 @@ public class CampusAppContext { oNavigationManager.navigatePage("MensaCard", bundle); } + public Bundle getContextVariables() { + return oContextVariables; + } + + public String getResString(int id, Object... arguments) { + // printf like resource strings + String format = getResString(id); + String res = String.format(format, arguments); + return res; + } + public String getResString(int id) { + String str = oMainActivity.getResources().getString(id); + return str; + } + }