From 8df6efb9c471009d9f95e511c44b0bb91cfa68cb Mon Sep 17 00:00:00 2001 From: James Rich <2199651+jamesarich@users.noreply.github.com> Date: Tue, 21 Apr 2026 09:44:44 -0500 Subject: [PATCH] fix(canned-messages): enable multiline text editing for long message lists (#5203) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Co-authored-by: garthvh <1795163+garthvh@users.noreply.github.com> --- .../org/meshtastic/core/ui/component/EditTextPreference.kt | 4 +++- .../settings/radio/component/CannedMessageConfigItemList.kt | 1 + 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/core/ui/src/commonMain/kotlin/org/meshtastic/core/ui/component/EditTextPreference.kt b/core/ui/src/commonMain/kotlin/org/meshtastic/core/ui/component/EditTextPreference.kt index 43a19ef1b..0e4699a28 100644 --- a/core/ui/src/commonMain/kotlin/org/meshtastic/core/ui/component/EditTextPreference.kt +++ b/core/ui/src/commonMain/kotlin/org/meshtastic/core/ui/component/EditTextPreference.kt @@ -205,6 +205,7 @@ fun EditTextPreference( onFocusChanged: (FocusState) -> Unit = {}, trailingIcon: (@Composable () -> Unit)? = null, visualTransformation: VisualTransformation = VisualTransformation.None, + multiline: Boolean = false, ) { var isFocused by remember { mutableStateOf(false) } @@ -212,7 +213,8 @@ fun EditTextPreference( OutlinedTextField( modifier = Modifier.fillMaxWidth().onFocusEvent { onFocusChanged(it) }, value = value, - singleLine = true, + singleLine = !multiline, + maxLines = if (multiline) 5 else 1, enabled = enabled, isError = isError, onValueChange = { diff --git a/feature/settings/src/commonMain/kotlin/org/meshtastic/feature/settings/radio/component/CannedMessageConfigItemList.kt b/feature/settings/src/commonMain/kotlin/org/meshtastic/feature/settings/radio/component/CannedMessageConfigItemList.kt index 4c6cdc9f5..89df9d4be 100644 --- a/feature/settings/src/commonMain/kotlin/org/meshtastic/feature/settings/radio/component/CannedMessageConfigItemList.kt +++ b/feature/settings/src/commonMain/kotlin/org/meshtastic/feature/settings/radio/component/CannedMessageConfigItemList.kt @@ -181,6 +181,7 @@ fun CannedMessageConfigScreen(viewModel: RadioConfigViewModel, onBack: () -> Uni KeyboardOptions.Default.copy(keyboardType = KeyboardType.Text, imeAction = ImeAction.Done), keyboardActions = KeyboardActions(onDone = { focusManager.clearFocus() }), onValueChanged = { messagesInput = it }, + multiline = true, ) } }