From 672e46562d9b57ef7a9165cd37136053f5518713 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kalle=20Lindstr=C3=B6m?= <karl.lindstrom@mullvad.net> Date: Tue, 22 Oct 2024 17:01:27 +0200 Subject: [PATCH] Use KeyboardType.Number on Amazon FireStick --- .../mullvadvpn/compose/screen/LoginScreen.kt | 3 ++- .../mullvad/mullvadvpn/compose/util/Keyboard.kt | 15 +++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) create mode 100644 android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/util/Keyboard.kt diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/LoginScreen.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/LoginScreen.kt index a0829b79d536..e7966bcc3979 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/LoginScreen.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/LoginScreen.kt @@ -82,6 +82,7 @@ import net.mullvad.mullvadvpn.compose.transitions.LoginTransition import net.mullvad.mullvadvpn.compose.util.CollectSideEffectWithLifecycle import net.mullvad.mullvadvpn.compose.util.OnNavResultValue import net.mullvad.mullvadvpn.compose.util.accountNumberVisualTransformation +import net.mullvad.mullvadvpn.compose.util.numberPasswordInputType import net.mullvad.mullvadvpn.compose.util.showSnackbarImmediately import net.mullvad.mullvadvpn.lib.theme.AppTheme import net.mullvad.mullvadvpn.lib.theme.Dimens @@ -285,7 +286,7 @@ private fun ColumnScope.LoginInput( keyboardOptions = KeyboardOptions( imeAction = if (state.loginButtonEnabled) ImeAction.Done else ImeAction.None, - keyboardType = KeyboardType.NumberPassword, + keyboardType = KeyboardType.numberPasswordInputType(LocalContext.current), ), onValueChange = onAccountNumberChange, singleLine = true, diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/util/Keyboard.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/util/Keyboard.kt new file mode 100644 index 000000000000..cb5ed61c5bef --- /dev/null +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/util/Keyboard.kt @@ -0,0 +1,15 @@ +package net.mullvad.mullvadvpn.compose.util + +import android.content.Context +import androidx.compose.ui.text.input.KeyboardType + +fun KeyboardType.Companion.numberPasswordInputType(context: Context): KeyboardType = + if (isFireStick(context)) { + Number + } else { + NumberPassword + } + +// see: https://developer.amazon.com/docs/fire-tv/identify-amazon-fire-tv-devices.html +private fun isFireStick(context: Context): Boolean = + context.packageManager.hasSystemFeature("amazon.hardware.fire_tv")