Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 16afc6f4 authored by Josh's avatar Josh
Browse files

Arrow down navigates from search bar in shortcut helper

Fixes: 363257904
Flag: com.android.systemui.keyboard_shortcut_helper_rewrite
Test: Manual - open shortcut helper, press down while focus is on the
search bar, ensure focus moves to the next focusable element down.

Change-Id: I5d4ce4536e5a7f8f2f6b8bcc5f3d21a08b14bece
parent c97ebc3e
Loading
Loading
Loading
Loading
+15 −1
Original line number Diff line number Diff line
@@ -82,6 +82,7 @@ import androidx.compose.runtime.setValue
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.drawWithContent
import androidx.compose.ui.focus.FocusDirection
import androidx.compose.ui.focus.FocusRequester
import androidx.compose.ui.focus.focusRequester
import androidx.compose.ui.geometry.CornerRadius
@@ -92,8 +93,12 @@ import androidx.compose.ui.graphics.RectangleShape
import androidx.compose.ui.graphics.Shape
import androidx.compose.ui.graphics.drawscope.Stroke
import androidx.compose.ui.graphics.graphicsLayer
import androidx.compose.ui.input.key.Key
import androidx.compose.ui.input.key.key
import androidx.compose.ui.input.key.onKeyEvent
import androidx.compose.ui.input.nestedscroll.nestedScroll
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.platform.LocalFocusManager
import androidx.compose.ui.platform.rememberNestedScrollInteropConnection
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.res.stringResource
@@ -824,9 +829,18 @@ private fun ShortcutsSearchBar(onQueryChange: (String) -> Unit) {
    // from the ViewModel.
    var queryInternal by remember { mutableStateOf("") }
    val focusRequester = remember { FocusRequester() }
    val focusManager = LocalFocusManager.current
    LaunchedEffect(Unit) { focusRequester.requestFocus() }
    SearchBar(
        modifier = Modifier.fillMaxWidth().focusRequester(focusRequester),
        modifier =
            Modifier.fillMaxWidth().focusRequester(focusRequester).onKeyEvent {
                if (it.key == Key.DirectionDown) {
                    focusManager.moveFocus(FocusDirection.Down)
                    return@onKeyEvent true
                } else {
                    return@onKeyEvent false
                }
            },
        colors = SearchBarDefaults.colors(containerColor = MaterialTheme.colorScheme.surfaceBright),
        query = queryInternal,
        active = false,