@@ -19,16 +19,21 @@ import androidx.compose.material3.SearchBarState
1919import androidx.compose.material3.SearchBarValue
2020import androidx.compose.material3.Text
2121import androidx.compose.runtime.Composable
22+ import androidx.compose.runtime.LaunchedEffect
2223import androidx.compose.runtime.derivedStateOf
2324import androidx.compose.runtime.getValue
25+ import androidx.compose.runtime.mutableStateOf
2426import androidx.compose.runtime.remember
2527import androidx.compose.runtime.rememberCoroutineScope
28+ import androidx.compose.runtime.setValue
2629import androidx.compose.ui.Modifier
30+ import androidx.compose.ui.focus.focusProperties
2731import androidx.compose.ui.res.stringResource
2832import de.davis.keygo.feature.list_screen.R
2933import de.davis.keygo.feature.list_screen.presentation.model.FilterBottomSheetState
3034import de.davis.keygo.feature.list_screen.presentation.model.ListItemState
3135import de.davis.keygo.feature.list_screen.presentation.selectedVaultIcon
36+ import kotlinx.coroutines.android.awaitFrame
3237import kotlinx.coroutines.launch
3338
3439@OptIn(ExperimentalMaterial3Api ::class , ExperimentalMaterial3ExpressiveApi ::class )
@@ -43,6 +48,14 @@ internal fun ListSearchTextField(
4348 onVaultSelectorClick : () -> Unit ,
4449 filterBottomSheetState : FilterBottomSheetState ,
4550) {
51+ // TODO: remove this workaround, when https://issuetracker.google.com/issues/433382598 is fixed
52+ // Workaround: https://issuetracker.google.com/issues/433382598#comment6
53+ var allowFocus by remember { mutableStateOf(false ) }
54+ LaunchedEffect (Unit ) {
55+ awaitFrame()
56+ allowFocus = true
57+ }
58+
4659 val scope = rememberCoroutineScope()
4760 SearchBarDefaults .InputField (
4861 textFieldState = searchTextFieldState,
@@ -51,8 +64,11 @@ internal fun ListSearchTextField(
5164 onSubmitQuery()
5265 scope.launch { searchBarState.animateToCollapsed() }
5366 },
54- enabled = false , // TODO: remove when b/464761441 is fixed
55- modifier = Modifier .fillMaxWidth(),
67+ modifier = Modifier
68+ .fillMaxWidth()
69+ .focusProperties {
70+ canFocus = allowFocus
71+ },
5672 leadingIcon = {
5773 AnimatedContent (
5874 targetState = ! uiState.hasSearchQuery && searchBarState.targetValue == SearchBarValue .Collapsed
0 commit comments