From 4e293faf1306f28c2d04ec57fa28d083b038fa7e Mon Sep 17 00:00:00 2001 From: Jarne Demeulemeester Date: Sun, 30 Jan 2022 19:46:03 +0100 Subject: [PATCH] Fix bottom navigation using multiple back stacks --- app/src/main/java/dev/jdtech/jellyfin/MainActivity.kt | 7 +++++-- .../java/dev/jdtech/jellyfin/fragments/HomeFragment.kt | 2 -- app/src/main/res/navigation/tv_navigation.xml | 1 + 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/dev/jdtech/jellyfin/MainActivity.kt b/app/src/main/java/dev/jdtech/jellyfin/MainActivity.kt index 19eefa1a..794df550 100644 --- a/app/src/main/java/dev/jdtech/jellyfin/MainActivity.kt +++ b/app/src/main/java/dev/jdtech/jellyfin/MainActivity.kt @@ -7,8 +7,9 @@ import androidx.appcompat.app.AppCompatActivity import androidx.core.splashscreen.SplashScreen.Companion.installSplashScreen import androidx.navigation.fragment.NavHostFragment import androidx.navigation.ui.AppBarConfiguration +import androidx.navigation.ui.NavigationUI +import androidx.navigation.ui.NavigationUiSaveStateControl import androidx.navigation.ui.setupActionBarWithNavController -import androidx.navigation.ui.setupWithNavController import com.google.android.material.bottomnavigation.BottomNavigationView import dagger.hilt.android.AndroidEntryPoint import dev.jdtech.jellyfin.databinding.ActivityMainAppBinding @@ -48,7 +49,9 @@ class MainActivity : AppCompatActivity() { ) setupActionBarWithNavController(navController, appBarConfiguration) - navView.setupWithNavController(navController) + // navView.setupWithNavController(navController) + // Don't save the state of other main navigation items, only this experimental function allows turning off this behavior + NavigationUI.setupWithNavController(navView, navController, false) navController.addOnDestinationChangedListener { _, destination, _ -> binding.navView.visibility = when (destination.id) { diff --git a/app/src/main/java/dev/jdtech/jellyfin/fragments/HomeFragment.kt b/app/src/main/java/dev/jdtech/jellyfin/fragments/HomeFragment.kt index c622b356..1d5015e7 100644 --- a/app/src/main/java/dev/jdtech/jellyfin/fragments/HomeFragment.kt +++ b/app/src/main/java/dev/jdtech/jellyfin/fragments/HomeFragment.kt @@ -45,8 +45,6 @@ class HomeFragment : Fragment() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setHasOptionsMenu(true) - - findNavController().graph.setStartDestination(R.id.homeFragment) } override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) { diff --git a/app/src/main/res/navigation/tv_navigation.xml b/app/src/main/res/navigation/tv_navigation.xml index 84a0d6bd..1b2cc8d6 100644 --- a/app/src/main/res/navigation/tv_navigation.xml +++ b/app/src/main/res/navigation/tv_navigation.xml @@ -45,6 +45,7 @@ app:nullable="true" />