From 8f5c903d7cbf0a9c7071249180168b676bf266a5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=F0=9D=97=94=F0=9D=98=86=F0=9D=98=82=F0=9D=98=80?= =?UTF-8?q?=F0=9D=97=B5=20=F0=9D=97=9E?= <100coldice@gmail.com> Date: Tue, 20 Oct 2026 01:18:41 +0530 Subject: [PATCH] fix(search): auto-focus search field and open keyboard on enter --- .../com/lastwave/app/ui/search/SearchScreen.kt | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/lastwave/app/ui/search/SearchScreen.kt b/app/src/main/java/com/lastwave/app/ui/search/SearchScreen.kt index 0179d881b..fce25eb5f 100644 --- a/app/src/main/java/com/lastwave/app/ui/search/SearchScreen.kt +++ b/app/src/main/java/com/lastwave/app/ui/search/SearchScreen.kt @@ -59,6 +59,7 @@ import androidx.compose.material3.Surface import androidx.compose.material3.Text import androidx.compose.material3.TextButton import androidx.compose.runtime.Composable +import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember @@ -66,10 +67,13 @@ import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip +import androidx.compose.ui.focus.FocusRequester +import androidx.compose.ui.focus.focusRequester import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.graphicsLayer import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.LocalFocusManager +import androidx.compose.ui.platform.LocalSoftwareKeyboardController import androidx.compose.ui.res.stringResource import com.lastwave.app.R import androidx.compose.ui.text.AnnotatedString @@ -138,6 +142,13 @@ fun SearchScreen( // the overflow button keeps the full sheet. var miniTrayItem by remember { mutableStateOf(null) } val focusManager = LocalFocusManager.current + val focusRequester = remember { FocusRequester() } + val keyboardController = LocalSoftwareKeyboardController.current + + LaunchedEffect(Unit) { + focusRequester.requestFocus() + keyboardController?.show() + } Box( modifier = Modifier.fillMaxSize(), @@ -199,7 +210,8 @@ fun SearchScreen( ), modifier = Modifier .weight(1f) - .height(46.dp), + .height(46.dp) + .focusRequester(focusRequester), decorationBox = { innerTextField -> Row( modifier = Modifier