+/* 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 <http://www.gnu.org/licenses/>.
+ */
package de.dhbwloe.campusapp;
import android.app.Activity;
this.fragementType = type;
}
}
- private final AppPage[] PAGES = {
+ public class NavigationItem {
+ int navItemId;
+ String navTarget;
+ };
+
+ 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.3 (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),
private NfcCardListener oNfcCardListener;
private Bundle oContextVariables;
- public CampusAppContext(CampusApp mainActivity, int fragmentContainerId) {
+ public CampusAppContext(CampusApp mainActivity, int fragmentContainerId, int navigationViewId) {
final CampusAppContext AppContext = this;
instance = this;
oMainActivity = mainActivity;
oContextVariables = new Bundle();
- oNavigationManager = new NavigationManager(this, fragmentContainerId);
+ 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);
}
public void setTitle(String title) {
+ // Ändern des Titels (Im App Header angezeigt)
PopupFragment popup = oNavigationManager.getDialog();
if(popup != null) {
if(popup.getDialog() != null)
}
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");
}
private void onNfcCardDataReceived(NfcCardData data) {
+ // NFC Daten erhalten
Bundle bundle = new Bundle();
double cardBalance = data.getBalance() / 100.0;
bundle.putDouble("balance", cardBalance);
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);
}
public String getResString(int id, Object... arguments) {
+ // printf like resource strings
String format = getResString(id);
String res = String.format(format, arguments);
return res;