From 2e1f938bce7262c67c10b1cca7987ef0a45fbb8b Mon Sep 17 00:00:00 2001 From: Torsten Grote Date: Mon, 4 May 2026 11:52:29 -0300 Subject: [PATCH] Close keyboard on global search action --- .../kotlin/org/fdroid/ui/search/AppSearchInputField.kt | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/app/src/main/kotlin/org/fdroid/ui/search/AppSearchInputField.kt b/app/src/main/kotlin/org/fdroid/ui/search/AppSearchInputField.kt index 74c2a1b1b..979a5134e 100644 --- a/app/src/main/kotlin/org/fdroid/ui/search/AppSearchInputField.kt +++ b/app/src/main/kotlin/org/fdroid/ui/search/AppSearchInputField.kt @@ -16,6 +16,7 @@ import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.runtime.snapshotFlow import androidx.compose.ui.Modifier +import androidx.compose.ui.platform.LocalSoftwareKeyboardController import androidx.compose.ui.res.stringResource import kotlinx.coroutines.FlowPreview import kotlinx.coroutines.flow.collectLatest @@ -49,12 +50,18 @@ fun AppSearchInputField( } } } + val keyboardController = LocalSoftwareKeyboardController.current SearchBarDefaults.InputField( modifier = modifier, searchBarState = searchBarState, textFieldState = textFieldState, textStyle = MaterialTheme.typography.bodyLarge, - onSearch = { if (it.isSearchable()) scope.launch { onSearch(it) } }, + onSearch = { + if (it.isSearchable()) { + keyboardController?.hide() + scope.launch { onSearch(it) } + } + }, placeholder = { Text(stringResource(R.string.search_placeholder)) }, trailingIcon = { if (textFieldState.text.isNotEmpty()) {