From 94bb9baa729a0b9cdc7db09fe7efddcb31c8aa25 Mon Sep 17 00:00:00 2001 From: James Magahern Date: Mon, 26 Feb 2024 00:29:53 -0800 Subject: [PATCH] SettingsScreen: username/password --- .../ui/settings/SettingsScreen.kt | 27 ++++++++++++++++--- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/net/buzzert/kordophonedroid/ui/settings/SettingsScreen.kt b/app/src/main/java/net/buzzert/kordophonedroid/ui/settings/SettingsScreen.kt index 064cce3..b70ee44 100644 --- a/app/src/main/java/net/buzzert/kordophonedroid/ui/settings/SettingsScreen.kt +++ b/app/src/main/java/net/buzzert/kordophonedroid/ui/settings/SettingsScreen.kt @@ -39,6 +39,7 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource +import androidx.compose.ui.text.input.PasswordVisualTransformation import androidx.compose.ui.text.input.TextFieldValue import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.tooling.preview.Preview @@ -81,9 +82,11 @@ fun SettingsFormView( ) { val serverName = viewModel.serverPreference.collectAsState() val userName = viewModel.usernamePreference.collectAsState() + val password = viewModel.passwordPreference.collectAsState() Column(modifier) { var serverNameInput by remember { mutableStateOf(TextFieldValue(serverName.value)) } + SettingsTextField( name = "Server", icon = R.drawable.storage, @@ -95,20 +98,36 @@ fun SettingsFormView( }) } + var usernameInput by remember { mutableStateOf(TextFieldValue()) } + var passwordInput by remember { mutableStateOf(TextFieldValue()) } SettingsTextField( name = "Authentication", icon = R.drawable.account_circle, state = userName, - onSave = { /* TODO */ } + onSave = { + viewModel.saveAuthenticationPreferences(usernameInput.text, passwordInput.text) + } ) { - // TODO - Text("Hoohah!") + Column() { + TextField( + value = usernameInput, + onValueChange = { usernameInput = it }, + label = { Text("Username") }, + ) + + TextField( + value = passwordInput, + onValueChange = { passwordInput = it }, + label = {Text("Password") }, + visualTransformation = PasswordVisualTransformation(), + ) + } } } } -@OptIn(ExperimentalMaterialApi::class) @Composable +@OptIn(ExperimentalMaterialApi::class) fun SettingsTextField( name: String, @DrawableRes icon: Int,