Merge pull request #329 from greenart7c3/main

Add qrCode scanner to the login page
This commit is contained in:
Vitor Pamplona
2023-04-03 13:07:08 -04:00
committed by GitHub

View File

@@ -36,6 +36,7 @@ import androidx.compose.ui.text.style.TextDecoration
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp import androidx.compose.ui.unit.sp
import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.R
import com.vitorpamplona.amethyst.ui.qrcode.SimpleQrCodeScanner
import com.vitorpamplona.amethyst.ui.screen.AccountStateViewModel import com.vitorpamplona.amethyst.ui.screen.AccountStateViewModel
import java.util.* import java.util.*
@@ -51,6 +52,9 @@ fun LoginPage(
var termsAcceptanceIsRequired by remember { mutableStateOf("") } var termsAcceptanceIsRequired by remember { mutableStateOf("") }
val uri = LocalUriHandler.current val uri = LocalUriHandler.current
val context = LocalContext.current val context = LocalContext.current
var dialogOpen by remember {
mutableStateOf(false)
}
Column( Column(
modifier = Modifier modifier = Modifier
@@ -117,17 +121,35 @@ fun LoginPage(
) )
}, },
trailingIcon = { trailingIcon = {
IconButton(onClick = { showPassword = !showPassword }) { Row {
Icon( IconButton(onClick = { showPassword = !showPassword }) {
imageVector = if (showPassword) Icons.Outlined.VisibilityOff else Icons.Outlined.Visibility, Icon(
contentDescription = if (showPassword) { imageVector = if (showPassword) Icons.Outlined.VisibilityOff else Icons.Outlined.Visibility,
stringResource(R.string.show_password) contentDescription = if (showPassword) {
} else { stringResource(R.string.show_password)
stringResource( } else {
R.string.hide_password stringResource(
) R.string.hide_password
)
}
)
}
if (dialogOpen) {
SimpleQrCodeScanner {
dialogOpen = false
if (!it.isNullOrEmpty()) {
key.value = TextFieldValue(it)
}
} }
) }
IconButton(onClick = { dialogOpen = true }) {
Icon(
painter = painterResource(R.drawable.ic_qrcode),
null,
modifier = Modifier.size(24.dp),
tint = MaterialTheme.colors.primary
)
}
} }
}, },
visualTransformation = if (showPassword) VisualTransformation.None else PasswordVisualTransformation(), visualTransformation = if (showPassword) VisualTransformation.None else PasswordVisualTransformation(),