diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/LauncherScaffoldVM.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/LauncherScaffoldVM.kt index 925944b3..a733f291 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/LauncherScaffoldVM.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/LauncherScaffoldVM.kt @@ -99,6 +99,14 @@ class LauncherScaffoldVM : ViewModel(), KoinComponent { setSearchbarFocus(false) } + var skipNextSearchAnimation = false + fun closeSearchWithoutAnimation() { + if (!isSearchOpen.value) return + skipNextSearchAnimation = true + isSearchOpen.value = false + setSearchbarFocus(false) + } + fun toggleSearch() { if (isSearchOpen.value == true) closeSearch() else openSearch() diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/PagerScaffold.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/PagerScaffold.kt index 6f1f6d77..1ab38430 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/PagerScaffold.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/PagerScaffold.kt @@ -237,7 +237,12 @@ fun PagerScaffold( LaunchedEffect(isSearchOpen) { if (isSearchOpen) pagerState.animateScrollToPage(1) else { - pagerState.animateScrollToPage(0) + if (viewModel.skipNextSearchAnimation) { + pagerState.scrollToPage(0) + viewModel.skipNextSearchAnimation = false + } else { + pagerState.animateScrollToPage(0) + } searchVM.search("") } } 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 491664d9..6e3268f5 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 @@ -237,10 +237,15 @@ fun PullDownScaffold( ) } else { searchVM.search("") - pagerState.animateScrollToPage( - 0, - animationSpec = spring(stiffness = Spring.StiffnessMediumLow) - ) + if (viewModel.skipNextSearchAnimation) { + pagerState.scrollToPage(0) + viewModel.skipNextSearchAnimation = false + } else { + pagerState.animateScrollToPage( + 0, + animationSpec = spring(stiffness = Spring.StiffnessMediumLow) + ) + } } } diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/SharedLauncherActivity.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/SharedLauncherActivity.kt index ef28b7f5..917f8f5b 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/SharedLauncherActivity.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/SharedLauncherActivity.kt @@ -276,7 +276,7 @@ abstract class SharedLauncherActivity( override fun onResume() { super.onResume() if (System.currentTimeMillis() - pauseTime > 60000) { - viewModel.closeSearch() + viewModel.closeSearchWithoutAnimation() searchVM.search("") } }