From 22a6c8d7729a0373a6abf073760c804f961145a6 Mon Sep 17 00:00:00 2001 From: Ivan Iskandar <12537387+ivaniskandar@users.noreply.github.com> Date: Fri, 17 Dec 2021 10:57:31 +0700 Subject: [PATCH] Use elevated overlay on reader menu (#6347) (cherry picked from commit 6b52fc1e2d0c23ec1224e654ee36de032661f6e2) # Conflicts: # app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderActivity.kt --- .../tachiyomi/ui/reader/ReaderActivity.kt | 44 ++++++++++++------- .../tachiyomi/util/view/ViewExtensions.kt | 14 ++++++ .../drawable/reader_seekbar_background.xml | 6 --- .../res/drawable/reader_seekbar_button.xml | 7 --- .../res/drawable/reader_seekbar_ripple.xml | 14 ------ app/src/main/res/layout/reader_activity.xml | 7 --- 6 files changed, 41 insertions(+), 51 deletions(-) delete mode 100644 app/src/main/res/drawable/reader_seekbar_background.xml delete mode 100644 app/src/main/res/drawable/reader_seekbar_button.xml delete mode 100644 app/src/main/res/drawable/reader_seekbar_ripple.xml diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderActivity.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderActivity.kt index a9c28b490..063f2b1e8 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderActivity.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderActivity.kt @@ -14,7 +14,7 @@ import android.graphics.Color import android.graphics.ColorMatrix import android.graphics.ColorMatrixColorFilter import android.graphics.Paint -import android.graphics.PorterDuff +import android.graphics.drawable.RippleDrawable import android.os.Build import android.os.Bundle import android.view.Gravity @@ -91,6 +91,7 @@ import eu.kanade.tachiyomi.util.system.isLTR import eu.kanade.tachiyomi.util.system.isNightMode import eu.kanade.tachiyomi.util.system.logcat import eu.kanade.tachiyomi.util.system.toast +import eu.kanade.tachiyomi.util.view.copy import eu.kanade.tachiyomi.util.view.popupMenu import eu.kanade.tachiyomi.util.view.setTooltip import eu.kanade.tachiyomi.widget.listener.SimpleAnimationListener @@ -509,25 +510,34 @@ class ReaderActivity : BaseRxActivity() updateBottomButtons() initDropdownMenu() - // <-- EH - val alpha = if (isNightMode()) 230 else 242 // 90% dark 95% light - val toolbarColor = ColorUtils.setAlphaComponent(getThemeColor(R.attr.colorToolbar), alpha) - listOf( - binding.toolbarBottom, - binding.leftChapter, - binding.readerSeekbar, - binding.rightChapter, - // SY --> - binding.readerSeekbarVert, - binding.aboveChapter, - binding.belowChapter - // SY <-- - ).forEach { - it.backgroundTintMode = PorterDuff.Mode.DST_IN - it.backgroundTintList = ColorStateList.valueOf(toolbarColor) + val toolbarBackground = (binding.toolbar.background as MaterialShapeDrawable).apply { + elevation = resources.getDimension(R.dimen.m3_sys_elevation_level2) + alpha = if (isNightMode()) 230 else 242 // 90% dark 95% light + } + binding.toolbarBottom.background = toolbarBackground.copy(this@ReaderActivity) + + binding.readerSeekbar.background = toolbarBackground.copy(this@ReaderActivity)?.apply { + setCornerSize(999F) + } + // SY --> + binding.readerSeekbarVert.background = toolbarBackground.copy(this@ReaderActivity)?.apply { + setCornerSize(999F) + } + // SY <-- + listOf(binding.leftChapter, binding.rightChapter /* SY --> */, binding.belowChapter, binding.aboveChapter /* SY <-- */).forEach { + it.background = binding.readerSeekbar.background.copy(this) + it.foreground = RippleDrawable( + ColorStateList.valueOf(getThemeColor(android.R.attr.colorControlHighlight)), + null, + it.background + ) } + val toolbarColor = ColorUtils.setAlphaComponent( + toolbarBackground.resolvedTintColor, + toolbarBackground.alpha + ) window.statusBarColor = toolbarColor if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O_MR1) { window.navigationBarColor = toolbarColor diff --git a/app/src/main/java/eu/kanade/tachiyomi/util/view/ViewExtensions.kt b/app/src/main/java/eu/kanade/tachiyomi/util/view/ViewExtensions.kt index 07d056d64..cc0f1b972 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/util/view/ViewExtensions.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/util/view/ViewExtensions.kt @@ -3,7 +3,9 @@ package eu.kanade.tachiyomi.util.view import android.annotation.SuppressLint +import android.content.Context import android.graphics.Point +import android.graphics.drawable.Drawable import android.text.TextUtils import android.view.Gravity import android.view.Menu @@ -25,6 +27,7 @@ import androidx.viewpager.widget.ViewPager import com.google.android.material.chip.Chip import com.google.android.material.chip.ChipGroup import com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton +import com.google.android.material.shape.MaterialShapeDrawable import com.google.android.material.snackbar.Snackbar import eu.kanade.tachiyomi.R import eu.kanade.tachiyomi.util.system.getResourceColor @@ -242,3 +245,14 @@ fun ViewPager.getActivePageView(): View? { false } } + +/** + * Returns a deep copy of the provided [Drawable] + */ +inline fun T.copy(context: Context): T? { + return (constantState?.newDrawable()?.mutate() as? T).apply { + if (this is MaterialShapeDrawable) { + initializeElevationOverlay(context) + } + } +} diff --git a/app/src/main/res/drawable/reader_seekbar_background.xml b/app/src/main/res/drawable/reader_seekbar_background.xml deleted file mode 100644 index ecb8171f0..000000000 --- a/app/src/main/res/drawable/reader_seekbar_background.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - diff --git a/app/src/main/res/drawable/reader_seekbar_button.xml b/app/src/main/res/drawable/reader_seekbar_button.xml deleted file mode 100644 index cbe9ef163..000000000 --- a/app/src/main/res/drawable/reader_seekbar_button.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/app/src/main/res/drawable/reader_seekbar_ripple.xml b/app/src/main/res/drawable/reader_seekbar_ripple.xml deleted file mode 100644 index 982f2361e..000000000 --- a/app/src/main/res/drawable/reader_seekbar_ripple.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - diff --git a/app/src/main/res/layout/reader_activity.xml b/app/src/main/res/layout/reader_activity.xml index 4f8db4633..0bd6e6320 100755 --- a/app/src/main/res/layout/reader_activity.xml +++ b/app/src/main/res/layout/reader_activity.xml @@ -203,7 +203,6 @@ android:layout_gravity="center" android:layout_marginTop="80dp" android:layout_marginBottom="8dp" - android:background="@drawable/reader_seekbar_button" android:contentDescription="@string/action_previous_chapter" android:padding="@dimen/screen_edge_margin" android:rotation="90" @@ -214,7 +213,6 @@ android:id="@+id/reader_seekbar_vert" android:layout_width="match_parent" android:layout_height="match_parent" - android:background="@drawable/reader_seekbar_background" android:orientation="vertical">