From 0d4483274735950f3bc13d5ed4ed515af5946bd3 Mon Sep 17 00:00:00 2001 From: Leandro Schaguhn Date: Wed, 11 Jun 2025 18:50:20 +0200 Subject: [PATCH 1/2] fixed state on rotation --- .../de/lelehier/keeper/screens/home_screen.kt | 26 +++++++++---------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/app/src/main/java/de/lelehier/keeper/screens/home_screen.kt b/app/src/main/java/de/lelehier/keeper/screens/home_screen.kt index 8a8dbc0..79ca266 100644 --- a/app/src/main/java/de/lelehier/keeper/screens/home_screen.kt +++ b/app/src/main/java/de/lelehier/keeper/screens/home_screen.kt @@ -67,8 +67,8 @@ fun HomeScreen(paddingValues: PaddingValues) { }, ) { targetState -> when(targetState) { - 0 -> serverDialog(serverURL, {newServerURL -> serverURL = newServerURL }) - 1 -> passwordDialog(username, password, {newUsername -> username = newUsername}, {newPassword -> password = newPassword }) + 0 -> ServerDialog(serverURL, {newServerURL -> serverURL = newServerURL }) + 1 -> PasswordDialog(username, password, {newUsername -> username = newUsername}, {newPassword -> password = newPassword }) } } @@ -119,15 +119,15 @@ fun Greeting(serverURL: String, currentScreen: Int) { @Composable -fun serverDialog(serverURL: String, updateServerURL: (newServerURL: String) -> Unit) { - var serverURL by remember { mutableStateOf("") } +fun ServerDialog(serverURL: String, updateServerURL: (newServerURL: String) -> Unit) { + var dialogServerURL by remember { mutableStateOf("") } OutlinedTextField( label = { Text(text = "Server URL") }, textStyle = MaterialTheme.typography.bodySmall, value = serverURL, onValueChange = { text -> - serverURL = text - updateServerURL(serverURL) + dialogServerURL = text + updateServerURL(dialogServerURL) }, keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Uri), supportingText = { @@ -152,25 +152,25 @@ fun isValidUrl(url: String): Boolean { } @Composable -fun passwordDialog(username: String, password: String, updateUsername: (newUsername: String) -> Unit, updatePassword: (newPassword: String) -> Unit) { - var username by remember { mutableStateOf("") } - var password by remember { mutableStateOf("") } +fun PasswordDialog(username: String, password: String, updateUsername: (newUsername: String) -> Unit, updatePassword: (newPassword: String) -> Unit) { + var dialogUsername by remember { mutableStateOf("") } + var dialogPassword by remember { mutableStateOf("") } Column { OutlinedTextField( label = { Text(text = "Username") }, textStyle = MaterialTheme.typography.bodySmall, value = username, onValueChange = { text -> - username = text - updateUsername(username) + dialogUsername = text + updateUsername(dialogUsername) }); OutlinedTextField( label = { Text(text = "Password") }, textStyle = MaterialTheme.typography.bodySmall, value = password, onValueChange = { text -> - password = text - updatePassword(password) + dialogPassword = text + updatePassword(dialogPassword) } ) From 7668743a1f96892279cf065992bec94eb212e658 Mon Sep 17 00:00:00 2001 From: Leandro Schaguhn Date: Wed, 11 Jun 2025 18:56:42 +0200 Subject: [PATCH 2/2] added api login button --- .../de/lelehier/keeper/screens/home_screen.kt | 33 +++++++++++++------ 1 file changed, 23 insertions(+), 10 deletions(-) diff --git a/app/src/main/java/de/lelehier/keeper/screens/home_screen.kt b/app/src/main/java/de/lelehier/keeper/screens/home_screen.kt index 79ca266..97a6e43 100644 --- a/app/src/main/java/de/lelehier/keeper/screens/home_screen.kt +++ b/app/src/main/java/de/lelehier/keeper/screens/home_screen.kt @@ -21,6 +21,7 @@ import androidx.compose.foundation.layout.padding import androidx.compose.foundation.text.KeyboardOptions import androidx.compose.material3.Button import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.OutlinedButton import androidx.compose.material3.OutlinedTextField import androidx.compose.material3.Text import androidx.compose.runtime.Composable @@ -72,17 +73,29 @@ fun HomeScreen(paddingValues: PaddingValues) { } } - Button( - onClick = {currentScreen = nextScreen}, - modifier = Modifier.padding(top = 24.dp), - enabled = when(currentScreen) { - 0 -> isValidUrl(serverURL) - 1 -> username.isNotEmpty() && password.isNotEmpty() - else -> false - }, + Row { + AnimatedVisibility(currentScreen == 1) { + OutlinedButton ( + onClick = {currentScreen = nextScreen}, + modifier = Modifier.padding(top = 24.dp) + ) { + Row() { + Text(text = "Use API Key") + } + } + } + Button( + onClick = {currentScreen = nextScreen}, + modifier = Modifier.padding(top = 24.dp), + enabled = when(currentScreen) { + 0 -> isValidUrl(serverURL) + 1 -> username.isNotEmpty() && password.isNotEmpty() + else -> false + }, ) { - Row() { - Text(text = "Next") + Row() { + Text(text = "Next") + } } } }