From f9ad1f724beaed1f3eaa2e4978eff3d3fa614c8e Mon Sep 17 00:00:00 2001 From: FooIbar <118464521+FooIbar@users.noreply.github.com> Date: Sun, 10 Sep 2023 18:29:16 +0800 Subject: [PATCH] Don't show search fab when search view is expanded --- .../hippo/ehviewer/ui/scene/DownloadsScene.kt | 6 --- .../hippo/ehviewer/ui/scene/FavoritesScene.kt | 4 +- .../ehviewer/ui/scene/GalleryListScene.kt | 12 ++++- .../hippo/ehviewer/ui/scene/SearchBarScene.kt | 46 ++++++++++--------- 4 files changed, 37 insertions(+), 31 deletions(-) diff --git a/app/src/main/java/com/hippo/ehviewer/ui/scene/DownloadsScene.kt b/app/src/main/java/com/hippo/ehviewer/ui/scene/DownloadsScene.kt index cc6c3cf46..249067181 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/scene/DownloadsScene.kt +++ b/app/src/main/java/com/hippo/ehviewer/ui/scene/DownloadsScene.kt @@ -366,12 +366,6 @@ class DownloadsScene : override fun onSearchViewExpanded() { super.onSearchViewExpanded() if (tracker.isInCustomChoice) tracker.clearSelection() - showSearchFab(true) - } - - override fun onSearchViewHidden() { - super.onSearchViewHidden() - hideSearchFab(true) } override fun onDestroyView() { diff --git a/app/src/main/java/com/hippo/ehviewer/ui/scene/FavoritesScene.kt b/app/src/main/java/com/hippo/ehviewer/ui/scene/FavoritesScene.kt index bdda08917..3e8120a2c 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/scene/FavoritesScene.kt +++ b/app/src/main/java/com/hippo/ehviewer/ui/scene/FavoritesScene.kt @@ -479,12 +479,12 @@ class FavoritesScene : SearchBarScene() { override fun onSearchViewExpanded() { super.onSearchViewExpanded() - selectSearchFab(true) + hideActionFab(true) } override fun onSearchViewHidden() { super.onSearchViewHidden() - selectActionFab(true) + showActionFab(true) } private fun showGoToDialog() { diff --git a/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryListScene.kt b/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryListScene.kt index 0573f3c38..9a546cc76 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryListScene.kt +++ b/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryListScene.kt @@ -688,12 +688,20 @@ class GalleryListScene : SearchBarScene() { override fun onSearchViewExpanded() { super.onSearchViewExpanded() - if (mState == State.NORMAL) selectSearchFab(true) + if (mState == State.NORMAL) { + hideActionFab(true) + } else { + hideSearchFab(true) + } } override fun onSearchViewHidden() { super.onSearchViewHidden() - if (mState == State.NORMAL) selectActionFab(true) + if (mState == State.NORMAL) { + showActionFab(true) + } else { + showSearchFab(true) + } } private fun showActionFab() { diff --git a/app/src/main/java/com/hippo/ehviewer/ui/scene/SearchBarScene.kt b/app/src/main/java/com/hippo/ehviewer/ui/scene/SearchBarScene.kt index d1113dada..a9e2d55e7 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/scene/SearchBarScene.kt +++ b/app/src/main/java/com/hippo/ehviewer/ui/scene/SearchBarScene.kt @@ -167,8 +167,7 @@ abstract class SearchBarScene : BaseScene(), ToolBarScene { fun showSearchFab(animation: Boolean, delay: Long = 0) { if (animation) { mSearchFab.visibility = View.VISIBLE - mSearchFab.rotation = -45.0f - mSearchFab.animate().scaleX(1.0f).scaleY(1.0f).rotation(0.0f).setListener(null) + mSearchFab.animate().scaleX(1.0f).scaleY(1.0f).setListener(null) .setDuration(ANIMATE_TIME).setStartDelay(delay) .setInterpolator(AnimationUtils.FAST_SLOW_INTERPOLATOR).start() } else { @@ -196,10 +195,26 @@ abstract class SearchBarScene : BaseScene(), ToolBarScene { } } - fun selectSearchFab(animation: Boolean) { - _binding ?: return + fun showActionFab(animation: Boolean, delay: Long = ANIMATE_TIME) { + mShowActionFab = true + if (animation) { + val fab = fabLayout.primaryFab!! + fab.visibility = View.VISIBLE + fab.animate().scaleX(1.0f).scaleY(1.0f).setListener(null) + .setDuration(ANIMATE_TIME).setStartDelay(delay) + .setInterpolator(AnimationUtils.FAST_SLOW_INTERPOLATOR).start() + } else { + fabLayout.setExpanded(expanded = false, animation = false) + val fab = fabLayout.primaryFab!! + fab.visibility = View.VISIBLE + fab.scaleX = 1.0f + fab.scaleY = 1.0f + } + } + + fun hideActionFab(animation: Boolean): Long { mShowActionFab = false - val delay = if (animation) { + return if (animation) { val fab = fabLayout.primaryFab!! if (View.INVISIBLE == fab.visibility) { 0L @@ -218,27 +233,16 @@ abstract class SearchBarScene : BaseScene(), ToolBarScene { fab.scaleY = 0.0f 0L } + } + + fun selectSearchFab(animation: Boolean) { + val delay = hideActionFab(animation) showSearchFab(animation, delay) } fun selectActionFab(animation: Boolean) { - _binding ?: return - mShowActionFab = true val delay = hideSearchFab(animation) - if (animation) { - val fab = fabLayout.primaryFab!! - fab.visibility = View.VISIBLE - fab.rotation = -45.0f - fab.animate().scaleX(1.0f).scaleY(1.0f).rotation(0.0f).setListener(null) - .setDuration(ANIMATE_TIME).setStartDelay(delay) - .setInterpolator(AnimationUtils.FAST_SLOW_INTERPOLATOR).start() - } else { - fabLayout.setExpanded(expanded = false, animation = false) - val fab = fabLayout.primaryFab!! - fab.visibility = View.VISIBLE - fab.scaleX = 1.0f - fab.scaleY = 1.0f - } + showActionFab(animation, delay) } fun setSearchBarHint(hint: String?) {