From eea18fa4a507c703cce32e1615cc9daf6ab24122 Mon Sep 17 00:00:00 2001 From: Owen LeJeune Date: Mon, 21 Mar 2022 23:06:06 -0400 Subject: [PATCH] move some remember to rememberSaveable --- .../com/owenlejeune/tvtime/MainActivity.kt | 3 +- .../owenlejeune/tvtime/ui/screens/MainView.kt | 4 +-- .../ui/screens/tabs/bottom/AccountTab.kt | 30 ++++++++++++------- .../ui/screens/tabs/bottom/PeopleTab.kt | 2 +- 4 files changed, 24 insertions(+), 15 deletions(-) diff --git a/app/src/main/java/com/owenlejeune/tvtime/MainActivity.kt b/app/src/main/java/com/owenlejeune/tvtime/MainActivity.kt index fc6008d..ea4a97d 100644 --- a/app/src/main/java/com/owenlejeune/tvtime/MainActivity.kt +++ b/app/src/main/java/com/owenlejeune/tvtime/MainActivity.kt @@ -5,6 +5,7 @@ import androidx.activity.ComponentActivity import androidx.activity.compose.setContent import androidx.compose.foundation.layout.Box import androidx.compose.runtime.* +import androidx.compose.runtime.saveable.rememberSaveable import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.LocalFocusManager import androidx.compose.ui.tooling.preview.Preview @@ -29,7 +30,7 @@ class MainActivity : ComponentActivity() { setContent { AppKeyboardFocusManager() - val displayUnderStatusBar = remember { mutableStateOf(false) } + val displayUnderStatusBar = rememberSaveable { mutableStateOf(false) } // WindowCompat.setDecorFitsSystemWindows(window, false) // WindowCompat.setDecorFitsSystemWindows(window, !displayUnderStatusBar.value) // val statusBarColor = if (displayUnderStatusBar.value) { diff --git a/app/src/main/java/com/owenlejeune/tvtime/ui/screens/MainView.kt b/app/src/main/java/com/owenlejeune/tvtime/ui/screens/MainView.kt index a65d76f..69403c6 100644 --- a/app/src/main/java/com/owenlejeune/tvtime/ui/screens/MainView.kt +++ b/app/src/main/java/com/owenlejeune/tvtime/ui/screens/MainView.kt @@ -45,7 +45,7 @@ fun MainAppView(appNavController: NavHostController, preferences: AppPreferences } val focusRequester = remember { FocusRequester() } - val focusSearchBar = remember { mutableStateOf(false) } + val focusSearchBar = rememberSaveable { mutableStateOf(false) } val searchableScreens = listOf(BottomNavItem.Movies.route, BottomNavItem.TV.route, BottomNavItem.People.route) val appBarActions = remember { mutableStateOf<@Composable RowScope.() -> Unit>( {} ) } @@ -123,7 +123,7 @@ private fun SearchTopBar( Row( verticalAlignment = Alignment.CenterVertically ) { - val hasSearchFocus = remember { mutableStateOf(requestSearchFocus.value) } + val hasSearchFocus = rememberSaveable { mutableStateOf(requestSearchFocus.value) } if (!requestSearchFocus.value && !hasSearchFocus.value && !(preferences.persistentSearch && preferences.hideTitle)) { Text(text = title.value) } diff --git a/app/src/main/java/com/owenlejeune/tvtime/ui/screens/tabs/bottom/AccountTab.kt b/app/src/main/java/com/owenlejeune/tvtime/ui/screens/tabs/bottom/AccountTab.kt index 5c3183d..a375d5b 100644 --- a/app/src/main/java/com/owenlejeune/tvtime/ui/screens/tabs/bottom/AccountTab.kt +++ b/app/src/main/java/com/owenlejeune/tvtime/ui/screens/tabs/bottom/AccountTab.kt @@ -54,17 +54,25 @@ fun AccountTab( appBarTitle: MutableState, appBarActions: MutableState<@Composable (RowScope.() -> Unit)> = mutableStateOf({}) ) { - when (SessionManager.currentSession?.isAuthorized) { - false -> { - appBarTitle.value = - stringResource(id = R.string.account_header_title_formatted, stringResource(id = R.string.account_name_guest)) - } - true -> { - appBarTitle.value = - stringResource(id = R.string.account_header_title_formatted, getAccountName(SessionManager.currentSession?.accountDetails)) - } - else -> { - appBarTitle.value = stringResource(id = R.string.account_not_logged_in) + if (appBarTitle.value.equals(stringResource(id = R.string.nav_account_title))) { + when (SessionManager.currentSession?.isAuthorized) { + false -> { + appBarTitle.value = + stringResource( + id = R.string.account_header_title_formatted, + stringResource(id = R.string.account_name_guest) + ) + } + true -> { + appBarTitle.value = + stringResource( + id = R.string.account_header_title_formatted, + getAccountName(SessionManager.currentSession?.accountDetails) + ) + } + else -> { + appBarTitle.value = stringResource(id = R.string.account_not_logged_in) + } } } diff --git a/app/src/main/java/com/owenlejeune/tvtime/ui/screens/tabs/bottom/PeopleTab.kt b/app/src/main/java/com/owenlejeune/tvtime/ui/screens/tabs/bottom/PeopleTab.kt index 014b0ff..409b4ad 100644 --- a/app/src/main/java/com/owenlejeune/tvtime/ui/screens/tabs/bottom/PeopleTab.kt +++ b/app/src/main/java/com/owenlejeune/tvtime/ui/screens/tabs/bottom/PeopleTab.kt @@ -25,7 +25,7 @@ fun PeopleTab( appBarTitle: MutableState, appNavController: NavHostController ) { -// appBarTitle.value = stringResource(id = R.string.nav_popular_people_title) +// appBarTitle.value = stringResource(id = R.string.nav_people_title) val service = PeopleService()