Zuordnung von Navigationsitem zu Zielseite in CampusAppContext verschoben - somit...
[DHBWCampusApp.git] / app / src / main / java / de / dhbwloe / campusapp / NavigationManager.java
index ed339dd8a6b10cad42f64815ebf234ccd8de9f2b..073bf190bab359bda77f0c1fd2c33ed42840e275 100644 (file)
@@ -16,6 +16,7 @@
 package de.dhbwloe.campusapp;
 
 import android.os.Bundle;
+import android.support.design.widget.NavigationView;
 import android.support.v4.app.Fragment;
 import android.support.v4.app.FragmentActivity;
 import android.support.v4.app.FragmentTransaction;
@@ -53,13 +54,15 @@ public class NavigationManager {
 
     // Container ID
     private int iFragmentContainerId;
+    private int iNavigationViewId;
 
     // Alle registrierte Fragmente mit Name
     private ArrayList<NavPage> lNavigationPages = new ArrayList<NavPage>();
 
-    public NavigationManager(CampusAppContext context, int fragmentContainer) {
+    public NavigationManager(CampusAppContext context, int fragmentContainer, int navigationView) {
         AppContext = context;
         iFragmentContainerId = fragmentContainer;
+        iNavigationViewId = navigationView;
         oCurrentPage = null;
     }
 
@@ -152,6 +155,8 @@ public class NavigationManager {
         oCurrentPage = page;
         oCurrentFragment = fragment;
 
+        updateNavigationHighlight();
+
         transaction.commit();
     }
 
@@ -225,4 +230,22 @@ public class NavigationManager {
         return closeDialog();
     }
 
+    private void updateNavigationHighlight() {
+        NavigationView navigationView = (NavigationView) AppContext.getMainActivity().findViewById(iNavigationViewId);
+
+        if(oCurrentPage == null)
+            return;
+
+        int activeItemId = 0;
+        for(CampusAppContext.NavigationItem navitem : AppContext.NAVIGATION_TARGETS) {
+            if(oCurrentPage.name.equalsIgnoreCase(navitem.navTarget)) {
+                activeItemId = navitem.navItemId;
+            }
+        }
+        if(activeItemId == 0)
+            return;
+
+        navigationView.setCheckedItem(activeItemId);
+    }
+
 }