From 525c4e59b6316d26b05ef2e4813524796eefbd38 Mon Sep 17 00:00:00 2001 From: Helium314 Date: Sat, 29 Mar 2025 11:47:06 +0100 Subject: [PATCH] confirm color in color picker dialog on done, fixes GH-1443 --- .../keyboard/settings/dialogs/ColorPickerDialog.kt | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/helium314/keyboard/settings/dialogs/ColorPickerDialog.kt b/app/src/main/java/helium314/keyboard/settings/dialogs/ColorPickerDialog.kt index 15e926ac..d1771b61 100644 --- a/app/src/main/java/helium314/keyboard/settings/dialogs/ColorPickerDialog.kt +++ b/app/src/main/java/helium314/keyboard/settings/dialogs/ColorPickerDialog.kt @@ -7,6 +7,7 @@ import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size +import androidx.compose.foundation.text.KeyboardActions import androidx.compose.foundation.text.KeyboardOptions import androidx.compose.material3.Surface import androidx.compose.material3.Text @@ -24,6 +25,7 @@ import androidx.compose.ui.graphics.PaintingStyle import androidx.compose.ui.graphics.toArgb import androidx.compose.ui.platform.LocalConfiguration import androidx.compose.ui.text.TextRange +import androidx.compose.ui.text.input.ImeAction import androidx.compose.ui.text.input.KeyboardType import androidx.compose.ui.text.input.TextFieldValue import androidx.compose.ui.tooling.preview.Preview @@ -109,8 +111,12 @@ fun ColorPickerDialog( ) TextField( value = textValue, - // todo: KeyboardType.Password is a crappy way of avoiding suggestions... is there really no way in compose? - keyboardOptions = KeyboardOptions(autoCorrectEnabled = false, keyboardType = KeyboardType.Password), + keyboardOptions = KeyboardOptions( + autoCorrectEnabled = false, + keyboardType = KeyboardType.Password, // todo: KeyboardType.Password is a crappy way of avoiding suggestions... is there really no way in compose? + imeAction = ImeAction.Done, + ), + keyboardActions = KeyboardActions(onDone = { onDismissRequest(); onConfirmed(controller.selectedColor.value.toArgb()) }), onValueChange = { textValue = it val androidColor = runCatching { android.graphics.Color.parseColor("#${it.text}") }.getOrNull()