From 6eb815ec3ba1a46407da0102597db77e60feb25a Mon Sep 17 00:00:00 2001 From: Harsh Shandilya Date: Tue, 1 Feb 2022 01:01:10 +0530 Subject: [PATCH] Revert "android: remove unnecessary currentDestination variable" This reverts commit 77d15ae6c661e271f9612c3baa9cee3da6feda6c. --- .../dev/msfjarvis/claw/android/ui/LobstersApp.kt | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/android/src/main/kotlin/dev/msfjarvis/claw/android/ui/LobstersApp.kt b/android/src/main/kotlin/dev/msfjarvis/claw/android/ui/LobstersApp.kt index a87eb23f..f550477b 100644 --- a/android/src/main/kotlin/dev/msfjarvis/claw/android/ui/LobstersApp.kt +++ b/android/src/main/kotlin/dev/msfjarvis/claw/android/ui/LobstersApp.kt @@ -49,6 +49,9 @@ fun LobstersApp( val systemUiController = rememberSystemUiController() val listState = rememberLazyListState() val navController = rememberNavController() + // The destination needs to be tracked here rather than used directly since + // `NavController#currentDestination` is not a Composable state. + var currentDestination by remember { mutableStateOf(Destinations.Hottest.getRoute()) } var isFabVisible by remember { mutableStateOf(false) } val nestedScrollConnection = remember { object : NestedScrollConnection { @@ -85,6 +88,9 @@ fun LobstersApp( } } } + navController.addOnDestinationChangedListener { _, destination, _ -> + currentDestination = destination.route ?: Destinations.Hottest.getRoute() + } LobstersTheme( LocalUriHandler provides urlLauncher, LocalHTMLConverter provides htmlConverter, @@ -103,9 +109,7 @@ fun LobstersApp( topBar = { ClawAppBar(modifier = Modifier.statusBarsPadding()) }, floatingActionButton = { ClawFab( - isFabVisible = - isFabVisible && - navController.currentDestination?.route == Destinations.Hottest.getRoute(), + isFabVisible = isFabVisible && currentDestination == Destinations.Hottest.getRoute(), listState = listState, modifier = Modifier.navigationBarsPadding(), )