Pull down scaffold: fix search bar raising level

This commit is contained in:
MM20 2023-01-14 21:46:06 +01:00
parent 9b7263f01e
commit 51636a064c
No known key found for this signature in database
GPG Key ID: 0B61A8F2DEAFA389

View File

@ -96,7 +96,7 @@ fun PullDownScaffold(
val widgetsScrollState = rememberScrollState() val widgetsScrollState = rememberScrollState()
val searchState = rememberLazyListState() val searchState = rememberLazyListState()
val isSearchAtStart by remember { val isSearchAtTop by remember {
derivedStateOf { derivedStateOf {
if (reverseSearchResults) { if (reverseSearchResults) {
val lastItem = val lastItem =
@ -108,7 +108,7 @@ fun PullDownScaffold(
} }
} }
val isSearchAtEnd by remember { val isSearchAtBottom by remember {
derivedStateOf { derivedStateOf {
if (reverseSearchResults) { if (reverseSearchResults) {
searchState.firstVisibleItemIndex == 0 && searchState.firstVisibleItemScrollOffset == 0 searchState.firstVisibleItemIndex == 0 && searchState.firstVisibleItemScrollOffset == 0
@ -139,7 +139,7 @@ fun PullDownScaffold(
val showStatusBarScrim by remember { val showStatusBarScrim by remember {
derivedStateOf { derivedStateOf {
if (isSearchOpen) { if (isSearchOpen) {
!isSearchAtStart !isSearchAtTop
} else { } else {
widgetsScrollState.value > 0 widgetsScrollState.value > 0
} }
@ -148,7 +148,7 @@ fun PullDownScaffold(
val showNavBarScrim by remember { val showNavBarScrim by remember {
derivedStateOf { derivedStateOf {
if (isSearchOpen) { if (isSearchOpen) {
!isSearchAtEnd !isSearchAtBottom
} else { } else {
(widgetsScrollState.value > 0 || !fillClockHeight) && widgetsScrollState.value < widgetsScrollState.maxValue (widgetsScrollState.value > 0 || !fillClockHeight) && widgetsScrollState.value < widgetsScrollState.maxValue
} }
@ -250,11 +250,11 @@ fun PullDownScaffold(
keyboardController?.hide() keyboardController?.hide()
} }
val canPullDown = if (isSearchOpen) { val canPullDown = if (isSearchOpen) {
isSearchAtStart isSearchAtTop
} else { } else {
isWidgetsAtStart isWidgetsAtStart
} }
val canPullUp = isSearchOpen && isSearchAtEnd val canPullUp = isSearchOpen && isSearchAtBottom
val consumed = when { val consumed = when {
canPullUp && available.y < 0 || offsetY.value < 0 -> { canPullUp && available.y < 0 || offsetY.value < 0 -> {
@ -434,10 +434,10 @@ fun PullDownScaffold(
derivedStateOf { derivedStateOf {
when { when {
offsetY.value != 0f -> SearchBarLevel.Raised offsetY.value != 0f -> SearchBarLevel.Raised
isSearchOpen && isSearchAtStart -> SearchBarLevel.Active !isSearchOpen && isWidgetsAtStart && fillClockHeight -> SearchBarLevel.Resting
isSearchOpen && !isSearchAtStart -> SearchBarLevel.Raised isSearchOpen && isSearchAtTop && !bottomSearchBar -> SearchBarLevel.Active
!isWidgetsAtStart -> SearchBarLevel.Raised isSearchOpen && isSearchAtBottom && bottomSearchBar -> SearchBarLevel.Active
else -> SearchBarLevel.Resting else -> SearchBarLevel.Raised
} }
} }
} }