From 51636a064cf38a5be566b0acca349de970280736 Mon Sep 17 00:00:00 2001 From: MM20 <15646950+MM2-0@users.noreply.github.com> Date: Sat, 14 Jan 2023 21:46:06 +0100 Subject: [PATCH] Pull down scaffold: fix search bar raising level --- .../launcher2/ui/launcher/PullDownScaffold.kt | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/PullDownScaffold.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/PullDownScaffold.kt index 6526003a..3ec56b3a 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/PullDownScaffold.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/PullDownScaffold.kt @@ -96,7 +96,7 @@ fun PullDownScaffold( val widgetsScrollState = rememberScrollState() val searchState = rememberLazyListState() - val isSearchAtStart by remember { + val isSearchAtTop by remember { derivedStateOf { if (reverseSearchResults) { val lastItem = @@ -108,7 +108,7 @@ fun PullDownScaffold( } } - val isSearchAtEnd by remember { + val isSearchAtBottom by remember { derivedStateOf { if (reverseSearchResults) { searchState.firstVisibleItemIndex == 0 && searchState.firstVisibleItemScrollOffset == 0 @@ -139,7 +139,7 @@ fun PullDownScaffold( val showStatusBarScrim by remember { derivedStateOf { if (isSearchOpen) { - !isSearchAtStart + !isSearchAtTop } else { widgetsScrollState.value > 0 } @@ -148,7 +148,7 @@ fun PullDownScaffold( val showNavBarScrim by remember { derivedStateOf { if (isSearchOpen) { - !isSearchAtEnd + !isSearchAtBottom } else { (widgetsScrollState.value > 0 || !fillClockHeight) && widgetsScrollState.value < widgetsScrollState.maxValue } @@ -250,11 +250,11 @@ fun PullDownScaffold( keyboardController?.hide() } val canPullDown = if (isSearchOpen) { - isSearchAtStart + isSearchAtTop } else { isWidgetsAtStart } - val canPullUp = isSearchOpen && isSearchAtEnd + val canPullUp = isSearchOpen && isSearchAtBottom val consumed = when { canPullUp && available.y < 0 || offsetY.value < 0 -> { @@ -434,10 +434,10 @@ fun PullDownScaffold( derivedStateOf { when { offsetY.value != 0f -> SearchBarLevel.Raised - isSearchOpen && isSearchAtStart -> SearchBarLevel.Active - isSearchOpen && !isSearchAtStart -> SearchBarLevel.Raised - !isWidgetsAtStart -> SearchBarLevel.Raised - else -> SearchBarLevel.Resting + !isSearchOpen && isWidgetsAtStart && fillClockHeight -> SearchBarLevel.Resting + isSearchOpen && isSearchAtTop && !bottomSearchBar -> SearchBarLevel.Active + isSearchOpen && isSearchAtBottom && bottomSearchBar -> SearchBarLevel.Active + else -> SearchBarLevel.Raised } } }