From c280dd309854589fc15b5d9fff739332e60b94e1 Mon Sep 17 00:00:00 2001 From: Jays2Kings Date: Mon, 23 Oct 2023 11:27:01 -0700 Subject: [PATCH] Slight improvements to pop back animation --- .../ui/base/controller/CrossFadeChangeHandler.kt | 4 +--- .../java/eu/kanade/tachiyomi/ui/main/MainActivity.kt | 10 ++++++---- .../eu/kanade/tachiyomi/ui/manga/FullCoverDialog.kt | 1 - 3 files changed, 7 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/base/controller/CrossFadeChangeHandler.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/base/controller/CrossFadeChangeHandler.kt index 84601e164f..996dd4f694 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/base/controller/CrossFadeChangeHandler.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/base/controller/CrossFadeChangeHandler.kt @@ -13,7 +13,6 @@ import androidx.interpolator.view.animation.LinearOutSlowInInterpolator import com.bluelinelabs.conductor.ControllerChangeHandler import com.bluelinelabs.conductor.changehandler.AnimatorChangeHandler import eu.kanade.tachiyomi.ui.main.MainActivity -import kotlin.math.max import kotlin.math.roundToLong class CrossFadeChangeHandler : AnimatorChangeHandler { @@ -98,11 +97,10 @@ class CrossFadeChangeHandler : AnimatorChangeHandler { Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE ) { animatorSet.interpolator = if (MainActivity.backVelocity != 0f) { - DecelerateInterpolator(max(1f, MainActivity.backVelocity)) + DecelerateInterpolator(MainActivity.backVelocity) } else { LinearOutSlowInInterpolator() } - MainActivity.backVelocity = 0f } return animatorSet } 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 ae6817fb48..0222b26bbc 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 @@ -28,6 +28,7 @@ import android.view.View import android.view.ViewGroup import android.view.Window import android.view.WindowManager +import android.view.animation.DecelerateInterpolator import androidx.activity.BackEventCompat import androidx.activity.OnBackPressedCallback import androidx.activity.result.contract.ActivityResultContracts @@ -278,7 +279,7 @@ open class MainActivity : BaseActivity() { velocityTracker.addMovement(motionEvent) motionEvent.recycle() velocityTracker.computeCurrentVelocity(2, 5f) - backVelocity = max(1f, velocityTracker.getAxisVelocity(MotionEvent.AXIS_X)) + backVelocity = max(1f, abs(velocityTracker.getAxisVelocity(MotionEvent.AXIS_X))) } lastX = 0f lastY = 0f @@ -564,8 +565,7 @@ open class MainActivity : BaseActivity() { binding.appBar.isVisible = true binding.appBar.alpha = 1f if (binding.backShadow.isVisible && !isPush) { - val alpha = binding.backShadow.alpha - val bA = ObjectAnimator.ofFloat(binding.backShadow, View.ALPHA, alpha, 0f) + val bA = ObjectAnimator.ofFloat(binding.backShadow, View.ALPHA, 0f) from?.view?.let { view -> bA.addUpdateListener { binding.backShadow.x = view.x - binding.backShadow.width @@ -581,7 +581,8 @@ open class MainActivity : BaseActivity() { binding.backShadow.isVisible = false nav.x = 0f } - bA.duration = 175 + bA.duration = 150 + bA.interpolator = DecelerateInterpolator(backVelocity.takeIf { it != 0f } ?: 1f) bA.start() } if (!isPush || router.backstackSize == 1) { @@ -599,6 +600,7 @@ open class MainActivity : BaseActivity() { ) { to?.view?.x = 0f nav.translationY = 0f + backVelocity = 0f showDLQueueTutorial() if (!(from is DialogController || to is DialogController) && from != null) { from.view?.alpha = 0f diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/FullCoverDialog.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/FullCoverDialog.kt index bc45b28217..05efc90c3d 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/FullCoverDialog.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/FullCoverDialog.kt @@ -29,7 +29,6 @@ import androidx.core.content.ContextCompat import androidx.core.view.WindowInsetsCompat.Type.systemBars import androidx.core.view.WindowInsetsControllerCompat import androidx.core.view.updateLayoutParams -import androidx.interpolator.view.animation.LinearOutSlowInInterpolator import androidx.transition.ChangeBounds import androidx.transition.ChangeImageTransform import androidx.transition.TransitionManager