summaryrefslogtreecommitdiffhomepage
path: root/android/app/src
diff options
context:
space:
mode:
Diffstat (limited to 'android/app/src')
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/textfield/CustomTextField.kt6
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/textfield/GroupedTextField.kt47
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
+ )
+}