diff options
Diffstat (limited to 'android/app/src')
| -rw-r--r-- | android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/textfield/CustomTextField.kt | 6 | ||||
| -rw-r--r-- | android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/textfield/GroupedTextField.kt | 47 |
2 files changed, 52 insertions, 1 deletions
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/textfield/CustomTextField.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/textfield/CustomTextField.kt index 13d91df68b..e5350f9844 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/textfield/CustomTextField.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/textfield/CustomTextField.kt @@ -32,6 +32,7 @@ import androidx.compose.ui.res.dimensionResource import androidx.compose.ui.text.TextStyle import androidx.compose.ui.text.input.ImeAction import androidx.compose.ui.text.input.KeyboardType +import androidx.compose.ui.text.input.VisualTransformation import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp @@ -58,7 +59,8 @@ fun CustomTextField( isValidValue: Boolean, isDigitsOnlyAllowed: Boolean, defaultTextColor: Color = Color.White, - textAlign: TextAlign = TextAlign.Start + textAlign: TextAlign = TextAlign.Start, + visualTransformation: VisualTransformation = VisualTransformation.None ) { val fontSize = dimensionResource(id = R.dimen.text_medium_plus).value.sp val shape = RoundedCornerShape(4.dp) @@ -122,6 +124,7 @@ fun CustomTextField( Text( text = placeholderText, color = placeholderTextColor, + style = TextStyle(fontSize = fontSize, textAlign = textAlign), fontSize = fontSize, textAlign = textAlign, modifier = Modifier.fillMaxWidth() @@ -131,6 +134,7 @@ fun CustomTextField( } }, cursorBrush = SolidColor(MullvadBlue), + visualTransformation = visualTransformation, modifier = modifier .background(backgroundColor) diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/textfield/GroupedTextField.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/textfield/GroupedTextField.kt new file mode 100644 index 0000000000..d9fcecc597 --- /dev/null +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/textfield/GroupedTextField.kt @@ -0,0 +1,47 @@ +package net.mullvad.mullvadvpn.compose.textfield + +import androidx.compose.material3.MaterialTheme +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.text.input.KeyboardType +import androidx.compose.ui.text.input.VisualTransformation +import androidx.compose.ui.text.style.TextAlign + +@Composable +fun GroupedTextField( + value: String, + keyboardType: KeyboardType, + modifier: Modifier = Modifier, + onValueChanged: (String) -> Unit, + onFocusChange: (Boolean) -> Unit, + onSubmit: (String) -> Unit, + isEnabled: Boolean = true, + visualTransformation: VisualTransformation, + placeholderText: String = "", + placeHolderColor: Color = MaterialTheme.colorScheme.primary, + maxCharLength: Int = Int.MAX_VALUE, + isValidValue: Boolean, + isDigitsOnlyAllowed: Boolean, + validateRegex: Regex, + defaultTextColor: Color = MaterialTheme.colorScheme.onPrimary, + textAlign: TextAlign = TextAlign.Start +) { + CustomTextField( + value = value, + keyboardType = keyboardType, + onValueChanged = { if (validateRegex.matches(it)) onValueChanged(it) }, + onFocusChange = onFocusChange, + onSubmit = onSubmit, + isValidValue = isValidValue, + isDigitsOnlyAllowed = isDigitsOnlyAllowed, + modifier = modifier, + isEnabled = isEnabled, + visualTransformation = visualTransformation, + placeholderText = placeholderText, + placeHolderColor = placeHolderColor, + maxCharLength = maxCharLength, + defaultTextColor = defaultTextColor, + textAlign = textAlign + ) +} |
