From b3ad1afd9aef791f1eb1034f91cc81ec26db2aaf Mon Sep 17 00:00:00 2001 From: Jays2Kings Date: Tue, 14 Dec 2021 16:25:53 -0500 Subject: [PATCH] Change animation for bottom nav switching to fade in, but not fade out --- .../tachiyomi/ui/base/controller/OneWayFadeChangeHandler.kt | 3 ++- .../main/java/eu/kanade/tachiyomi/ui/main/MainActivity.kt | 3 ++- .../eu/kanade/tachiyomi/util/view/ControllerExtensions.kt | 6 ++++++ 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/base/controller/OneWayFadeChangeHandler.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/base/controller/OneWayFadeChangeHandler.kt index a0d547ffe3..27a3398c90 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/base/controller/OneWayFadeChangeHandler.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/base/controller/OneWayFadeChangeHandler.kt @@ -21,6 +21,7 @@ class OneWayFadeChangeHandler : FadeChangeHandler { removesFromViewOnPush ) + var fadeOut = true override fun getAnimator( container: ViewGroup, from: View?, @@ -36,7 +37,7 @@ class OneWayFadeChangeHandler : FadeChangeHandler { val hasSideNav = container.context.resources.configuration?.orientation == Configuration.ORIENTATION_LANDSCAPE if (from != null && (!isPush || removesFromViewOnPush())) { - if (!hasSideNav) { + if (!hasSideNav && fadeOut) { animator.play(ObjectAnimator.ofFloat(from, View.ALPHA, 0f)) } else { container.removeView(from) 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 1390cf0e4f..766987b561 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 @@ -88,6 +88,7 @@ import eu.kanade.tachiyomi.util.view.doOnApplyWindowInsetsCompat import eu.kanade.tachiyomi.util.view.getItemView import eu.kanade.tachiyomi.util.view.snack import eu.kanade.tachiyomi.util.view.withFadeTransaction +import eu.kanade.tachiyomi.util.view.withFadeInTransaction import eu.kanade.tachiyomi.widget.EndAnimatorListener import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.delay @@ -755,7 +756,7 @@ open class MainActivity : BaseActivity(), DownloadServiceLi } private fun setRoot(controller: Controller, id: Int) { - router.setRoot(controller.withFadeTransaction().tag(id.toString())) + router.setRoot(controller.withFadeInTransaction().tag(id.toString())) } override fun onPrepareOptionsMenu(menu: Menu?): Boolean { 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 5be668c70b..0a1ecdee15 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 @@ -570,6 +570,12 @@ fun Controller.withFadeTransaction(): RouterTransaction { .popChangeHandler(OneWayFadeChangeHandler()) } +fun Controller.withFadeInTransaction(): RouterTransaction { + return RouterTransaction.with(this) + .pushChangeHandler(OneWayFadeChangeHandler().apply { fadeOut = false }) + .popChangeHandler(OneWayFadeChangeHandler()) +} + fun Controller.openInBrowser(url: String) { try { val intent = Intent(Intent.ACTION_VIEW, url.toUri())