From a509d413589eb4ee89f959a574dcbe9b89b88e1f Mon Sep 17 00:00:00 2001 From: Claude Date: Fri, 10 Jul 2026 20:11:47 +0000 Subject: [PATCH] fix: keep login/signup page choice across uiMode recreation (#1097) Toggling the system dark/light theme recreates MainActivity (uiMode is not in configChanges), and the login/signup page choice was held in a plain remember, so the UI reset from Sign-Up back to Login. Switch it to rememberSaveable so the choice survives recreation. Same fix for the password-visibility toggle in LoginScreen. https://github.com/vitorpamplona/amethyst/issues/1097 Co-Authored-By: Claude Fable 5 Claude-Session: https://claude.ai/code/session_01J74bRJ9H1KFx4vTo9wpez3 --- .../amethyst/ui/screen/loggedOff/LoginOrSignupScreen.kt | 4 ++-- .../amethyst/ui/screen/loggedOff/login/LoginScreen.kt | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedOff/LoginOrSignupScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedOff/LoginOrSignupScreen.kt index 9dd0c70900..76f0e418c1 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedOff/LoginOrSignupScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedOff/LoginOrSignupScreen.kt @@ -24,7 +24,7 @@ import androidx.compose.animation.Crossfade import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf -import androidx.compose.runtime.remember +import androidx.compose.runtime.saveable.rememberSaveable import androidx.compose.runtime.setValue import com.vitorpamplona.amethyst.ui.screen.AccountSessionManager import com.vitorpamplona.amethyst.ui.screen.loggedOff.login.LoginPage @@ -36,7 +36,7 @@ fun LoginOrSignupScreen( accountSessionManager: AccountSessionManager, isFirstLogin: Boolean, ) { - var wantsNewUser by remember { + var wantsNewUser by rememberSaveable { mutableStateOf(false) } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedOff/login/LoginScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedOff/login/LoginScreen.kt index eef969c214..3012943f2c 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedOff/login/LoginScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedOff/login/LoginScreen.kt @@ -47,6 +47,7 @@ import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.runtime.rememberCoroutineScope +import androidx.compose.runtime.saveable.rememberSaveable import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier @@ -278,7 +279,7 @@ fun PasswordField( passwordFocusRequester: FocusRequester, onGo: () -> Unit, ) { - var showCharsPassword by remember { mutableStateOf(false) } + var showCharsPassword by rememberSaveable { mutableStateOf(false) } OutlinedTextField( modifier = Modifier