From 3128bea6bc3edcd6764c30125f4617d19c930d5e Mon Sep 17 00:00:00 2001 From: Jays2Kings Date: Wed, 18 Oct 2023 14:56:14 -0700 Subject: [PATCH] add drop shadow to controller view when going back adds some depth, as shadows do --- .../eu/kanade/tachiyomi/ui/main/MainActivity.kt | 16 ++++++++++++++++ .../tachiyomi/util/view/ControllerExtensions.kt | 17 +++++++++++++++++ .../main/res/layout-w720dp/main_activity.xml | 9 ++++++++- .../res/layout/extension_detail_controller.xml | 1 + app/src/main/res/layout/main_activity.xml | 8 ++++++++ .../layout/source_global_search_controller.xml | 1 + 6 files changed, 51 insertions(+), 1 deletion(-) 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 2e3099c80d..b5708f4f73 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 @@ -2,6 +2,7 @@ package eu.kanade.tachiyomi.ui.main import android.Manifest import android.animation.AnimatorSet +import android.animation.ObjectAnimator import android.animation.ValueAnimator import android.annotation.SuppressLint import android.app.Dialog @@ -526,6 +527,21 @@ open class MainActivity : BaseActivity() { syncActivityViewWithController(to, from, isPush) 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) + from?.view?.let { view -> + bA.addUpdateListener { + binding.backShadow.x = view.x - binding.backShadow.width + } + } + bA.doOnEnd { + binding.backShadow.alpha = 0.25f + binding.backShadow.isVisible = false + } + bA.duration = 150 + bA.start() + } if (!isPush || router.backstackSize == 1) { nav.translationY = 0f } 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 692d05a0fa..cd314fbf9d 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 @@ -887,6 +887,21 @@ interface BackHandlerControllerInterface { view?.let { view -> view.alpha = 1f - progress view.x = progress * view.width * 0.15f + + activityBinding?.let { activityBinding -> + val container = activityBinding.controllerContainer + val backShadow = activityBinding.backShadow + if (container.indexOfChild(backShadow) != container.indexOfChild(view) - 1) { + container.removeView(backShadow) + container.addView(backShadow, container.indexOfChild(view)) + } + if (!backShadow.isVisible) { + backShadow.isVisible = true + } + backShadow.x = view.x - backShadow.width + backShadow.alpha = 0.33f * view.alpha + } + router.backstack[router.backstackSize - 2].controller.view?.let { view2 -> view2.alpha = progress view2.x = view.x - view.width * 0.2f @@ -906,5 +921,7 @@ interface BackHandlerControllerInterface { view.x = 0f } } + activityBinding?.backShadow?.isVisible = false + activityBinding?.backShadow?.alpha = 0.25f } } diff --git a/app/src/main/res/layout-w720dp/main_activity.xml b/app/src/main/res/layout-w720dp/main_activity.xml index e2f07108fd..4ec77ae650 100644 --- a/app/src/main/res/layout-w720dp/main_activity.xml +++ b/app/src/main/res/layout-w720dp/main_activity.xml @@ -17,7 +17,14 @@ app:layout_constraintStart_toEndOf="@id/side_nav" app:layout_constraintTop_toTopOf="parent" app:layout_constraintVertical_bias="1.0"> - + +