commit c44537dedacc9f50c1067242a6b3067eb18d2045
parent 6b3c1464ea68d3d31d17e2c967f9539bb9b90475
Author: fsb2 <benjamin.fehrensen@bfh.ch>
Date: Mon, 14 Apr 2025 09:30:38 +0200
Autofocus added
Diffstat:
2 files changed, 24 insertions(+), 4 deletions(-)
diff --git a/wallee-c2ec/app/build.gradle.kts b/wallee-c2ec/app/build.gradle.kts
@@ -11,8 +11,8 @@ android {
applicationId = "ch.bfh.habej2.wallee_c2ec"
minSdk = 27
targetSdk = 34
- versionCode = 2
- versionName = "1.0.1"
+ versionCode = 3
+ versionName = "1.0.2"
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
vectorDrawables {
diff --git a/wallee-c2ec/app/src/main/java/ch/bfh/habej2/wallee_c2ec/withdrawal/AmountScreen.kt b/wallee-c2ec/app/src/main/java/ch/bfh/habej2/wallee_c2ec/withdrawal/AmountScreen.kt
@@ -26,15 +26,22 @@ import androidx.compose.foundation.text.KeyboardOptions
import androidx.compose.material3.Text
import androidx.compose.material3.TextField
import androidx.compose.runtime.Composable
+import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.collectAsState
import androidx.compose.runtime.getValue
+import androidx.compose.runtime.remember
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
+import androidx.compose.ui.focus.FocusRequester
+import androidx.compose.ui.focus.focusRequester
+import androidx.compose.ui.focus.onFocusChanged
import androidx.compose.ui.platform.LocalConfiguration
+import androidx.compose.ui.platform.LocalSoftwareKeyboardController
import androidx.compose.ui.res.colorResource
import androidx.compose.ui.text.input.KeyboardType
import androidx.compose.ui.unit.dp
import ch.bfh.habej2.wallee_c2ec.R
+import kotlinx.coroutines.delay
@Composable
fun AmountScreen(
@@ -46,6 +53,9 @@ fun AmountScreen(
val uiState by model.uiState.collectAsState()
val configuration = LocalConfiguration.current
+ val focusRequester = remember { FocusRequester() }
+ val keyboardController = LocalSoftwareKeyboardController.current
+
Column(
Modifier.width(configuration.screenWidthDp.dp),
@@ -60,12 +70,18 @@ fun AmountScreen(
TextField(
uiState.amountStr,
onValueChange = {
- println(it)
if (!model.validateInput(it)) {
model.resetAmountStr()
}
},
label = { Text(text = "Withdrawal amount") },
+ modifier = Modifier
+ .focusRequester(focusRequester)
+ .onFocusChanged {
+ if (it.isFocused) {
+ keyboardController?.show()
+ }
+ },
keyboardOptions = KeyboardOptions(
autoCorrectEnabled = false,
keyboardType = KeyboardType.Number
@@ -79,7 +95,6 @@ fun AmountScreen(
TalerButton(
text = "Continue",
onClick = {
- println("clicked 'pay'")
model.setupWithdrawal(activity)
navigateToWhenAmountEntered()
},
@@ -88,4 +103,9 @@ fun AmountScreen(
TalerButton(text = "Stop", onClick = { model.withdrawalOperationFailed(activity) })
}
+ LaunchedEffect(Unit) {
+ delay(100)
+ focusRequester.requestFocus()
+ keyboardController?.show()
+ }
}