@@ -11,6 +11,7 @@ import android.view.Menu
1111import androidx.core.view.forEach
1212import com.google.android.material.bottomnavigation.BottomNavigationView
1313import com.google.android.material.navigation.NavigationView
14+ import com.owncloud.android.R
1415
1516fun NavigationView.getSelectedMenuItemId (): Int {
1617 menu.forEach {
@@ -21,19 +22,25 @@ fun NavigationView.getSelectedMenuItemId(): Int {
2122 return Menu .NONE
2223}
2324
24- fun NavigationView.unsetAllNavigationItems () {
25- uncheckMenu(menu)
26- }
25+ fun highlightNavigationView (
26+ drawerNavigationView : NavigationView ? ,
27+ bottomNavigationView : BottomNavigationView ? ,
28+ menuItemId : Int
29+ ) {
30+ drawerNavigationView?.setCheckedItem(menuItemId)
2731
28- fun BottomNavigationView. unsetAllNavigationItems () {
29- uncheckMenu(menu )
30- }
32+ bottomNavigationView?. let { bottomNav ->
33+ val bottomNavItems = setOf ( R .id.nav_assistant, R .id.nav_all_files, R .id.nav_favorites, R .id.nav_gallery )
34+ val menuItem = bottomNav.menu.findItem(menuItemId)
3135
32- private fun uncheckMenu (menu : Menu ) {
33- menu.forEach { item ->
34- item.isChecked = false
36+ // Uncheck previous item that exists in drawer if this ID doesn't belong to bottom nav
37+ if (menuItemId !in bottomNavItems) {
38+ bottomNav.menu.findItem(bottomNav.selectedItemId)?.isChecked = false
39+ }
3540
36- // recursively uncheck submenu items
37- item.subMenu?.let { uncheckMenu(it) }
41+ // Highlight new item, skip assistant because Assistant screen doesn't have same bottom navigation bar
42+ if (menuItem != null && menuItem.itemId != R .id.nav_assistant) {
43+ menuItem.isChecked = true
44+ }
3845 }
3946}
0 commit comments