From f1b3b73901ceaf74b79f1f0169aa33eb4e36cbe3 Mon Sep 17 00:00:00 2001 From: Abdelilah El Aissaoui Date: Sun, 14 May 2023 14:31:02 +0200 Subject: [PATCH] Added show password to http auth dialog & fixed text fields' size consistency across dialogs --- .../gitnuro/ui/dialogs/PasswordDialog.kt | 3 +- .../gitnuro/ui/dialogs/UserPasswordDialog.kt | 33 ++++++++++++++++++- 2 files changed, 34 insertions(+), 2 deletions(-) diff --git a/src/main/kotlin/com/jetpackduba/gitnuro/ui/dialogs/PasswordDialog.kt b/src/main/kotlin/com/jetpackduba/gitnuro/ui/dialogs/PasswordDialog.kt index 89b5f93..cd3ace8 100644 --- a/src/main/kotlin/com/jetpackduba/gitnuro/ui/dialogs/PasswordDialog.kt +++ b/src/main/kotlin/com/jetpackduba/gitnuro/ui/dialogs/PasswordDialog.kt @@ -118,7 +118,8 @@ fun PasswordDialog( showPassword = !showPassword passwordFieldFocusRequester.requestFocus() }, - modifier = Modifier.handOnHover(), + modifier = Modifier.handOnHover() + .size(20.dp), ) { Icon( painterResource(visibilityIcon), diff --git a/src/main/kotlin/com/jetpackduba/gitnuro/ui/dialogs/UserPasswordDialog.kt b/src/main/kotlin/com/jetpackduba/gitnuro/ui/dialogs/UserPasswordDialog.kt index 924fa44..b2a6a20 100644 --- a/src/main/kotlin/com/jetpackduba/gitnuro/ui/dialogs/UserPasswordDialog.kt +++ b/src/main/kotlin/com/jetpackduba/gitnuro/ui/dialogs/UserPasswordDialog.kt @@ -2,6 +2,7 @@ package com.jetpackduba.gitnuro.ui.dialogs import androidx.compose.foundation.layout.* import androidx.compose.material.Icon +import androidx.compose.material.IconButton import androidx.compose.material.MaterialTheme import androidx.compose.material.Text import androidx.compose.runtime.* @@ -15,11 +16,14 @@ import androidx.compose.ui.input.key.onPreviewKeyEvent import androidx.compose.ui.res.painterResource import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.input.PasswordVisualTransformation +import androidx.compose.ui.text.input.VisualTransformation import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp import com.jetpackduba.gitnuro.AppIcons +import com.jetpackduba.gitnuro.extensions.handOnHover import com.jetpackduba.gitnuro.keybindings.KeybindingOption import com.jetpackduba.gitnuro.keybindings.matchesBinding +import com.jetpackduba.gitnuro.theme.outlinedTextFieldColors import com.jetpackduba.gitnuro.ui.components.AdjustableOutlinedTextField import com.jetpackduba.gitnuro.ui.components.PrimaryButton @@ -30,6 +34,7 @@ fun UserPasswordDialog( ) { var userField by remember { mutableStateOf("") } var passwordField by remember { mutableStateOf("") } + var showPassword by remember { mutableStateOf(false) } val userFieldFocusRequester = remember { FocusRequester() } val passwordFieldFocusRequester = remember { FocusRequester() } val buttonFieldFocusRequester = remember { FocusRequester() } @@ -87,7 +92,9 @@ fun UserPasswordDialog( } }, value = userField, + colors = outlinedTextFieldColors(), maxLines = 1, + singleLine = true, hint = "Username", onValueChange = { userField = it @@ -112,11 +119,35 @@ fun UserPasswordDialog( }, value = passwordField, maxLines = 1, + singleLine = true, + colors = outlinedTextFieldColors(), hint = "Password", onValueChange = { passwordField = it }, - visualTransformation = PasswordVisualTransformation() + visualTransformation = if (showPassword) VisualTransformation.None else PasswordVisualTransformation(), + trailingIcon = { + val visibilityIcon = if (showPassword) { + AppIcons.VISIBILITY_OFF + } else { + AppIcons.VISIBILITY + } + + IconButton( + onClick = { + showPassword = !showPassword + passwordFieldFocusRequester.requestFocus() + }, + modifier = Modifier.handOnHover() + .size(20.dp), + ) { + Icon( + painterResource(visibilityIcon), + contentDescription = null, + tint = MaterialTheme.colors.onBackground, + ) + } + } ) Row(