Use elevated overlay on reader menu (#6347)

(cherry picked from commit 6b52fc1e2d0c23ec1224e654ee36de032661f6e2)

# Conflicts:
#	app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderActivity.kt
This commit is contained in:
Ivan Iskandar 2021-12-17 10:57:31 +07:00 committed by Jobobby04
parent 8d813e3d62
commit 22a6c8d772
6 changed files with 41 additions and 51 deletions

View File

@ -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<ReaderActivityBinding, ReaderPresenter>()
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

View File

@ -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 <reified T : Drawable> T.copy(context: Context): T? {
return (constantState?.newDrawable()?.mutate() as? T).apply {
if (this is MaterialShapeDrawable) {
initializeElevationOverlay(context)
}
}
}

View File

@ -1,6 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners android:radius="?attr/actionBarSize" />
<solid android:color="?attr/colorToolbar" />
</shape>

View File

@ -1,7 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/reader_seekbar_ripple" android:state_pressed="true" />
<item android:drawable="@drawable/reader_seekbar_ripple" android:state_focused="true" />
<item android:drawable="@drawable/reader_seekbar_ripple" android:state_selected="true" />
<item android:drawable="@drawable/reader_seekbar_background" />
</selector>

View File

@ -1,14 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
android:color="?attr/colorControlHighlight">
<item android:id="@android:id/mask">
<shape android:shape="rectangle">
<solid android:color="?attr/colorControlActivated" />
<corners android:radius="?attr/actionBarSize" />
</shape>
</item>
<item android:drawable="@drawable/reader_seekbar_background" />
</ripple>

View File

@ -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">
<androidx.constraintlayout.widget.ConstraintLayout
@ -278,7 +276,6 @@
android:layout_gravity="center"
android:layout_marginTop="8dp"
android:layout_marginBottom="80dp"
android:background="@drawable/reader_seekbar_button"
android:contentDescription="@string/action_next_chapter"
android:padding="@dimen/screen_edge_margin"
android:rotation="90"
@ -322,7 +319,6 @@
android:layout_width="48dp"
android:layout_height="48dp"
android:layout_marginEnd="8dp"
android:background="@drawable/reader_seekbar_button"
android:contentDescription="@string/action_previous_chapter"
android:padding="@dimen/screen_edge_margin"
app:srcCompat="@drawable/ic_skip_previous_24dp"
@ -333,7 +329,6 @@
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="@drawable/reader_seekbar_background"
android:clickable="true"
android:paddingStart="8dp"
android:paddingEnd="8dp"
@ -376,7 +371,6 @@
android:layout_width="48dp"
android:layout_height="48dp"
android:layout_marginStart="8dp"
android:background="@drawable/reader_seekbar_button"
android:contentDescription="@string/action_next_chapter"
android:padding="@dimen/screen_edge_margin"
app:srcCompat="@drawable/ic_skip_next_24dp"
@ -389,7 +383,6 @@
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:layout_gravity="bottom"
android:background="?attr/colorToolbar"
android:clickable="true"
tools:ignore="KeyboardInaccessibleWidget">