From c5ce50a9152d0ae6e799b10e53e68487e3ed1bbf Mon Sep 17 00:00:00 2001 From: Aayush Gupta Date: Mon, 4 Sep 2023 14:50:18 +0530 Subject: [PATCH] MainActivity: Handle back action properly when on onboarding/splash fragment Signed-off-by: Aayush Gupta --- app/src/main/java/com/aurora/store/MainActivity.kt | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/aurora/store/MainActivity.kt b/app/src/main/java/com/aurora/store/MainActivity.kt index a0f2c13bc..fd376bf98 100644 --- a/app/src/main/java/com/aurora/store/MainActivity.kt +++ b/app/src/main/java/com/aurora/store/MainActivity.kt @@ -98,6 +98,10 @@ class MainActivity : AppCompatActivity() { B = ActivityMainBinding.inflate(layoutInflater) setContentView(B.root) + val navHostFragment = + supportFragmentManager.findFragmentById(R.id.nav_host_fragment) as NavHostFragment + navController = navHostFragment.navController + this.lifecycleScope.launch { NetworkProvider(this@MainActivity).networkStatus.collect { when(it) { @@ -173,6 +177,9 @@ class MainActivity : AppCompatActivity() { } else { navController.navigate(defaultTab) } + } else if (navHostFragment.childFragmentManager.backStackEntryCount == 0) { + // We are on either on onboarding or splash fragment + finish() } else { navController.navigateUp() } @@ -220,9 +227,6 @@ class MainActivity : AppCompatActivity() { private fun attachNavigation() { val bottomNavigationView: BottomNavigationView = B.navView - val navHostFragment = - supportFragmentManager.findFragmentById(R.id.nav_host_fragment) as NavHostFragment - navController = navHostFragment.navController bottomNavigationView.setupWithNavController(navController) bottomNavigationView.apply {