From 550bab05c1d55311654b4129d9b0784af7936c6b Mon Sep 17 00:00:00 2001 From: Sven Jacobs Date: Sun, 6 Jun 2021 15:35:58 +0200 Subject: [PATCH] :bug: Fix back nav icon not visible in preferences (#15) * :bug: Fix back nav icon not visible in preferences * :memo: Update CHANGELOG --- CHANGELOG.md | 6 +++++ app/build.gradle.kts | 4 ++-- .../app/leon/ui/screens/main/MainScreen.kt | 24 ++++++++++++------- .../ui/screens/main/model/MainViewModel.kt | 7 ++++++ .../main/play/release-notes/de-DE/default.txt | 2 +- .../main/play/release-notes/en-US/default.txt | 2 +- 6 files changed, 32 insertions(+), 13 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index fe367906..ec272f41 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,9 @@ +## Version 0.4.1 + +_2021-06-06_ + +- Fix back navigation icon not visible in preferences + ## Version 0.4.0 _2021-06-03_ diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 9b454a93..62345bc6 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -38,8 +38,8 @@ android { applicationId = "com.svenjacobs.app.leon" minSdk = 21 targetSdk = 30 - versionCode = 224 - versionName = "0.4.0" + versionCode = 225 + versionName = "0.4.1" testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" diff --git a/app/src/main/java/com/svenjacobs/app/leon/ui/screens/main/MainScreen.kt b/app/src/main/java/com/svenjacobs/app/leon/ui/screens/main/MainScreen.kt index abee5e70..de5ebda2 100644 --- a/app/src/main/java/com/svenjacobs/app/leon/ui/screens/main/MainScreen.kt +++ b/app/src/main/java/com/svenjacobs/app/leon/ui/screens/main/MainScreen.kt @@ -25,7 +25,9 @@ import androidx.compose.foundation.layout.* import androidx.compose.material.* import androidx.compose.material.icons.Icons import androidx.compose.material.icons.filled.ArrowBack -import androidx.compose.runtime.* +import androidx.compose.runtime.Composable +import androidx.compose.runtime.collectAsState +import androidx.compose.runtime.getValue import androidx.compose.ui.Modifier import androidx.compose.ui.layout.ContentScale import androidx.compose.ui.platform.LocalContext @@ -37,6 +39,8 @@ import androidx.lifecycle.ViewModel import androidx.lifecycle.viewmodel.compose.viewModel import androidx.navigation.NavBackStackEntry import androidx.navigation.NavController +import androidx.navigation.NavDestination.Companion.hierarchy +import androidx.navigation.NavGraph.Companion.findStartDestination import androidx.navigation.compose.NavHost import androidx.navigation.compose.composable import androidx.navigation.compose.currentBackStackEntryAsState @@ -74,7 +78,7 @@ fun MainScreen( Screen.Settings ) - var isBackVisible by remember { mutableStateOf(false) } + val isBackVisible by viewModel.isBackVisible.collectAsState() AppTheme { Scaffold( @@ -88,18 +92,20 @@ fun MainScreen( bottomBar = { BottomNavigation { val navBackStackEntry by navController.currentBackStackEntryAsState() - val currentRoute = - navBackStackEntry?.destination?.route ?: Screen.Home.route + val currentDestination = navBackStackEntry?.destination bottomNavItems.forEach { screen -> BottomNavigationItem( icon = { Icon(screen.icon, contentDescription = null) }, label = { Text(stringResource(screen.resourceId)) }, - selected = currentRoute == screen.route, + selected = currentDestination?.hierarchy?.any { it.route == screen.route } == true, onClick = { navController.navigate(screen.route) { - popUpTo(navController.graph.startDestinationId) + popUpTo(navController.graph.findStartDestination().id) { + saveState = true + } launchSingleTop = true + restoreState = true } }, ) @@ -122,7 +128,7 @@ fun MainScreen( startDestination = Screen.Home.route, ) { composable(Screen.Home.route) { - isBackVisible = false + viewModel.setIsBackVisible(false) HomeScreen( result = result, onShareButtonClick = ::onShareButtonClick, @@ -131,7 +137,7 @@ fun MainScreen( } composable(Screen.Settings.route) { navBackStackEntry -> - isBackVisible = false + viewModel.setIsBackVisible(false) SettingsScreen( viewModel = navViewModel(navBackStackEntry), navController = navController, @@ -139,7 +145,7 @@ fun MainScreen( } composable(Screen.SettingsParameters.route) { navBackStackEntry -> - isBackVisible = true + viewModel.setIsBackVisible(true) SettingsParametersScreen( viewModel = navViewModel(navBackStackEntry), ) diff --git a/app/src/main/java/com/svenjacobs/app/leon/ui/screens/main/model/MainViewModel.kt b/app/src/main/java/com/svenjacobs/app/leon/ui/screens/main/model/MainViewModel.kt index 0506de66..4cce60d3 100644 --- a/app/src/main/java/com/svenjacobs/app/leon/ui/screens/main/model/MainViewModel.kt +++ b/app/src/main/java/com/svenjacobs/app/leon/ui/screens/main/model/MainViewModel.kt @@ -42,6 +42,9 @@ class MainViewModel @Inject constructor( private val _result = MutableStateFlow(CleaningResult.Failure) val result = _result.asStateFlow() + private val _isBackVisible = MutableStateFlow(false) + val isBackVisible = _isBackVisible.asStateFlow() + fun setText(text: String?) { if (text == null && result.value is CleaningResult.Success) return @@ -50,6 +53,10 @@ class MainViewModel @Inject constructor( } } + fun setIsBackVisible(isBackVisible: Boolean) { + _isBackVisible.value = isBackVisible + } + fun buildIntent(text: String): Intent { val target = Intent(Intent.ACTION_SEND).apply { type = "text/plain" diff --git a/app/src/main/play/release-notes/de-DE/default.txt b/app/src/main/play/release-notes/de-DE/default.txt index 81b6d2f6..f849f7a2 100644 --- a/app/src/main/play/release-notes/de-DE/default.txt +++ b/app/src/main/play/release-notes/de-DE/default.txt @@ -1 +1 @@ -Facebook-Parameter hinzugefĆ¼gt +Bugfixes diff --git a/app/src/main/play/release-notes/en-US/default.txt b/app/src/main/play/release-notes/en-US/default.txt index eca54de6..f849f7a2 100644 --- a/app/src/main/play/release-notes/en-US/default.txt +++ b/app/src/main/play/release-notes/en-US/default.txt @@ -1 +1 @@ -Add Facebook query parameters +Bugfixes