From de0f57e86f7aa65505329e12b99db01cb927be91 Mon Sep 17 00:00:00 2001 From: Jays2Kings Date: Thu, 19 Oct 2023 23:21:13 -0700 Subject: [PATCH] More improvements on the pop controller animation also a slight faster push animation too --- .../kanade/tachiyomi/ui/main/MainActivity.kt | 11 +++++-- .../tachiyomi/ui/source/BrowseController.kt | 16 ++-------- .../util/view/ControllerExtensions.kt | 32 ++++++++++++------- 3 files changed, 31 insertions(+), 28 deletions(-) diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/main/MainActivity.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/main/MainActivity.kt index 23c781790f..246699902c 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/main/MainActivity.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/main/MainActivity.kt @@ -533,13 +533,19 @@ open class MainActivity : BaseActivity() { from?.view?.let { view -> bA.addUpdateListener { binding.backShadow.x = view.x - binding.backShadow.width + if (router.backstackSize == 1) { + to?.view?.let { toView -> + nav.x = toView.x + } + } } } bA.doOnEnd { binding.backShadow.alpha = 0.25f binding.backShadow.isVisible = false + nav.x = 0f } - bA.duration = 150 + bA.duration = 175 bA.start() } if (!isPush || router.backstackSize == 1) { @@ -1339,8 +1345,7 @@ open class MainActivity : BaseActivity() { ?: View.GONE } } - alphaAnimation.duration = 200 - alphaAnimation.startDelay = 50 + alphaAnimation.duration = 150 animationSet?.playTogether(alphaAnimation) animationSet?.start() } diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/source/BrowseController.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/source/BrowseController.kt index fe4b5c4603..2ba51e2e7f 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/source/BrowseController.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/source/BrowseController.kt @@ -21,8 +21,6 @@ import androidx.core.view.updatePaddingRelative import androidx.recyclerview.widget.RecyclerView import com.bluelinelabs.conductor.ControllerChangeHandler import com.bluelinelabs.conductor.ControllerChangeType -import com.bluelinelabs.conductor.RouterTransaction -import com.bluelinelabs.conductor.changehandler.FadeChangeHandler import com.google.android.material.bottomsheet.BottomSheetBehavior import com.google.android.material.snackbar.Snackbar import eu.davidea.flexibleadapter.FlexibleAdapter @@ -355,12 +353,7 @@ class BrowseController : when (item.itemId) { // Initialize option to open catalogue settings. R.id.action_filter -> { - val controller = ExtensionFilterController() - router.pushController( - RouterTransaction.with(controller) - .popChangeHandler(FadeChangeHandler()) - .pushChangeHandler(FadeChangeHandler()), - ) + router.pushController(ExtensionFilterController().withFadeTransaction()) } R.id.action_migration_guide -> { activity?.openInBrowser(HELP_URL) @@ -697,12 +690,7 @@ class BrowseController : when (item.itemId) { // Initialize option to open catalogue settings. R.id.action_filter -> { - val controller = SettingsSourcesController() - router.pushController( - RouterTransaction.with(controller) - .popChangeHandler(FadeChangeHandler()) - .pushChangeHandler(FadeChangeHandler()), - ) + router.pushController(SettingsSourcesController().withFadeTransaction()) } R.id.action_migration_guide -> { activity?.openInBrowser(HELP_URL) diff --git a/app/src/main/java/eu/kanade/tachiyomi/util/view/ControllerExtensions.kt b/app/src/main/java/eu/kanade/tachiyomi/util/view/ControllerExtensions.kt index d66b75653f..2e98454f06 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/util/view/ControllerExtensions.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/util/view/ControllerExtensions.kt @@ -373,6 +373,26 @@ fun Controller.scrollViewWith( } addLifecycleListener( object : Controller.LifecycleListener() { + override fun onChangeEnd( + controller: Controller, + changeHandler: ControllerChangeHandler, + changeType: ControllerChangeType, + ) { + super.onChangeEnd(controller, changeHandler, changeType) + if (changeType.isEnter) { + if (fakeToolbarView?.parent != null) { + val parent = fakeToolbarView?.parent as? ViewGroup ?: return + parent.removeView(fakeToolbarView) + fakeToolbarView = null + } + if (fakeBottomNavView?.parent != null) { + val parent = fakeBottomNavView?.parent as? ViewGroup ?: return + parent.removeView(fakeBottomNavView) + fakeBottomNavView = null + } + } + } + override fun onChangeStart( controller: Controller, changeHandler: ControllerChangeHandler, @@ -388,16 +408,6 @@ fun Controller.scrollViewWith( activityBinding?.appBar?.setToolbarModeBy(this@scrollViewWith) activityBinding?.appBar?.useTabsInPreLayout = includeTabView colorToolbar(isToolbarColor) - if (fakeToolbarView?.parent != null) { - val parent = fakeToolbarView?.parent as? ViewGroup ?: return - parent.removeView(fakeToolbarView) - fakeToolbarView = null - } - if (fakeBottomNavView?.parent != null) { - val parent = fakeBottomNavView?.parent as? ViewGroup ?: return - parent.removeView(fakeBottomNavView) - fakeBottomNavView = null - } lastY = 0f activityBinding?.appBar?.updateAppBarAfterY(recycler) activityBinding?.toolbar?.tag = randomTag @@ -802,7 +812,7 @@ fun Controller.withFadeTransaction(): RouterTransaction { if (Build.VERSION.SDK_INT < Build.VERSION_CODES.Q) { FadeChangeHandler() } else { - CrossFadeChangeHandler(duration = 250, removesFromViewOnPush = isLowRam) + CrossFadeChangeHandler(duration = 200, removesFromViewOnPush = isLowRam) }, ) .popChangeHandler(