From ae9fe06f7dcb8d93072f37fbfeff6e81b61cdb0d Mon Sep 17 00:00:00 2001 From: Ivan Iskandar <12537387+ivaniskandar@users.noreply.github.com> Date: Fri, 17 Dec 2021 21:32:42 +0700 Subject: [PATCH] Workaround cleanup (#6350) * Remove material-components workaround that was fixed upstream * Remove unused toolbar workaround * Fix cover dialog navigation icon (cherry picked from commit 38d131be37c674544b309248271e4e528d51d0f9) # Conflicts: # app/src/main/res/menu/library_selection.xml # app/src/main/res/menu/reader.xml --- .../appbar/HideToolbarOnScrollBehavior.kt | 93 ------------------- .../material/appbar/TachiyomiAppBarLayout.kt | 8 +- .../shape/MaterialShapeDrawableFix.kt | 10 -- .../process/MigrationListController.kt | 2 +- .../tachiyomi/ui/webview/WebViewActivity.kt | 2 +- .../main/res/color/ripple_toolbar_fainter.xml | 2 +- app/src/main/res/color/tabs_selector.xml | 11 --- .../res/layout/extension_detail_header.xml | 2 - app/src/main/res/layout/main_activity.xml | 2 +- .../res/layout/manga_full_cover_dialog.xml | 2 +- app/src/main/res/layout/pref_more_header.xml | 4 +- app/src/main/res/layout/pref_theme_item.xml | 4 +- app/src/main/res/layout/reader_activity.xml | 46 ++++----- app/src/main/res/menu/browse_extensions.xml | 4 +- app/src/main/res/menu/browse_migrate.xml | 4 +- app/src/main/res/menu/browse_sources.xml | 4 +- app/src/main/res/menu/category_selection.xml | 4 +- app/src/main/res/menu/chapter_selection.xml | 14 +-- app/src/main/res/menu/extension_details.xml | 2 +- app/src/main/res/menu/full_cover.xml | 6 +- app/src/main/res/menu/generic_selection.xml | 4 +- app/src/main/res/menu/global_search.xml | 2 +- app/src/main/res/menu/history.xml | 4 +- app/src/main/res/menu/library.xml | 6 +- app/src/main/res/menu/library_selection.xml | 16 ++-- app/src/main/res/menu/manga.xml | 4 +- app/src/main/res/menu/migration_list.xml | 4 +- app/src/main/res/menu/pre_migration.xml | 8 +- app/src/main/res/menu/reader.xml | 4 +- app/src/main/res/menu/settings_main.xml | 2 +- app/src/main/res/menu/settings_sources.xml | 4 +- app/src/main/res/menu/settings_tracking.xml | 2 +- app/src/main/res/menu/sort_tags.xml | 2 +- app/src/main/res/menu/source_browse.xml | 10 +- app/src/main/res/menu/updates.xml | 2 +- .../res/menu/updates_chapter_selection.xml | 12 +-- app/src/main/res/menu/webview.xml | 4 +- app/src/main/res/values/attrs.xml | 13 --- app/src/main/res/values/styles.xml | 13 +-- app/src/main/res/values/themes.xml | 7 -- 40 files changed, 99 insertions(+), 250 deletions(-) delete mode 100644 app/src/main/java/com/google/android/material/appbar/HideToolbarOnScrollBehavior.kt delete mode 100644 app/src/main/java/com/google/android/material/shape/MaterialShapeDrawableFix.kt delete mode 100644 app/src/main/res/color/tabs_selector.xml diff --git a/app/src/main/java/com/google/android/material/appbar/HideToolbarOnScrollBehavior.kt b/app/src/main/java/com/google/android/material/appbar/HideToolbarOnScrollBehavior.kt deleted file mode 100644 index 552b391a4..000000000 --- a/app/src/main/java/com/google/android/material/appbar/HideToolbarOnScrollBehavior.kt +++ /dev/null @@ -1,93 +0,0 @@ -package com.google.android.material.appbar - -import android.animation.ValueAnimator -import android.view.View -import android.view.animation.DecelerateInterpolator -import androidx.appcompat.widget.Toolbar -import androidx.coordinatorlayout.widget.CoordinatorLayout -import androidx.core.view.ViewCompat -import androidx.core.view.marginTop -import eu.kanade.tachiyomi.util.system.animatorDurationScale -import eu.kanade.tachiyomi.util.view.findChild -import kotlin.math.roundToLong - -/** - * Hide toolbar on scroll behavior for [AppBarLayout]. - * - * Inside this package to access some package-private methods. - */ -class HideToolbarOnScrollBehavior : AppBarLayout.Behavior() { - - @ViewCompat.NestedScrollType - private var lastStartedType: Int = 0 - - private var offsetAnimator: ValueAnimator? = null - - private var toolbarHeight: Int = 0 - - override fun onStartNestedScroll( - parent: CoordinatorLayout, - child: AppBarLayout, - directTargetChild: View, - target: View, - nestedScrollAxes: Int, - type: Int - ): Boolean { - lastStartedType = type - offsetAnimator?.cancel() - return super.onStartNestedScroll(parent, child, directTargetChild, target, nestedScrollAxes, type) - } - - override fun onStopNestedScroll( - parent: CoordinatorLayout, - layout: AppBarLayout, - target: View, - type: Int - ) { - super.onStopNestedScroll(parent, layout, target, type) - if (toolbarHeight == 0) { - toolbarHeight = layout.findChild()?.height ?: 0 - } - if (lastStartedType == ViewCompat.TYPE_TOUCH || type == ViewCompat.TYPE_NON_TOUCH) { - animateToolbarVisibility( - parent, - layout, - getTopBottomOffsetForScrollingSibling(layout) > -toolbarHeight / 2 - ) - } - } - - override fun onFlingFinished(parent: CoordinatorLayout, layout: AppBarLayout) { - super.onFlingFinished(parent, layout) - animateToolbarVisibility( - parent, - layout, - getTopBottomOffsetForScrollingSibling(layout) > -toolbarHeight / 2 - ) - } - - private fun getTopBottomOffsetForScrollingSibling(abl: AppBarLayout): Int { - return topBottomOffsetForScrollingSibling - abl.marginTop - } - - private fun animateToolbarVisibility( - coordinatorLayout: CoordinatorLayout, - child: AppBarLayout, - isVisible: Boolean - ) { - val current = getTopBottomOffsetForScrollingSibling(child) - val target = if (isVisible) 0 else -toolbarHeight - if (current == target) return - - offsetAnimator?.cancel() - offsetAnimator = ValueAnimator().apply { - interpolator = DecelerateInterpolator() - duration = (150 * child.context.animatorDurationScale).roundToLong() - addUpdateListener { - setHeaderTopBottomOffset(coordinatorLayout, child, it.animatedValue as Int) - } - setIntValues(current, target) - start() - } - } -} diff --git a/app/src/main/java/com/google/android/material/appbar/TachiyomiAppBarLayout.kt b/app/src/main/java/com/google/android/material/appbar/TachiyomiAppBarLayout.kt index 6cc8239b3..1627c5d19 100755 --- a/app/src/main/java/com/google/android/material/appbar/TachiyomiAppBarLayout.kt +++ b/app/src/main/java/com/google/android/material/appbar/TachiyomiAppBarLayout.kt @@ -7,12 +7,10 @@ import android.content.Context import android.util.AttributeSet import android.widget.TextView import androidx.annotation.FloatRange -import androidx.coordinatorlayout.widget.CoordinatorLayout import androidx.lifecycle.coroutineScope import androidx.lifecycle.findViewTreeLifecycleOwner import com.google.android.material.animation.AnimationUtils import com.google.android.material.shape.MaterialShapeDrawable -import com.google.android.material.shape.getStateAlpha import eu.kanade.tachiyomi.R import eu.kanade.tachiyomi.util.view.findChild import kotlinx.coroutines.flow.launchIn @@ -53,7 +51,7 @@ class TachiyomiAppBarLayout @JvmOverloads constructor( private val offsetListener = OnOffsetChangedListener { appBarLayout, verticalOffset -> // Show status bar foreground when offset val foreground = (appBarLayout?.statusBarForeground as? MaterialShapeDrawable) ?: return@OnOffsetChangedListener - val start = foreground.getStateAlpha() + val start = foreground.alpha val end = if (verticalOffset != 0) 255 else 0 statusBarForegroundAnimator?.cancel() @@ -81,8 +79,6 @@ class TachiyomiAppBarLayout @JvmOverloads constructor( } } - override fun getBehavior(): CoordinatorLayout.Behavior = HideToolbarOnScrollBehavior() - /** * Disabled. Lift on scroll is handled manually with [eu.kanade.tachiyomi.widget.TachiyomiCoordinatorLayout] */ @@ -154,7 +150,7 @@ class TachiyomiAppBarLayout @JvmOverloads constructor( } val transparent = if (lifted) false else isTransparentWhenNotLifted - val fromAlpha = (background as? MaterialShapeDrawable)?.getStateAlpha() ?: background.alpha + val fromAlpha = (background as? MaterialShapeDrawable)?.alpha ?: background.alpha val toAlpha = if (transparent) 0 else 255 if (fromAlpha != toAlpha) { ValueAnimator.ofInt(fromAlpha, toAlpha).apply { diff --git a/app/src/main/java/com/google/android/material/shape/MaterialShapeDrawableFix.kt b/app/src/main/java/com/google/android/material/shape/MaterialShapeDrawableFix.kt deleted file mode 100644 index 5abf2ef18..000000000 --- a/app/src/main/java/com/google/android/material/shape/MaterialShapeDrawableFix.kt +++ /dev/null @@ -1,10 +0,0 @@ -package com.google.android.material.shape - -/** - * Use this instead of [MaterialShapeDrawable.getAlpha]. - * - * https://github.com/material-components/material-components-android/issues/1796 - */ -fun MaterialShapeDrawable.getStateAlpha(): Int { - return (constantState as? MaterialShapeDrawable.MaterialShapeDrawableState)?.alpha ?: alpha -} diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/advanced/process/MigrationListController.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/advanced/process/MigrationListController.kt index fb34aa8b5..1a5fb36f8 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/advanced/process/MigrationListController.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/advanced/process/MigrationListController.kt @@ -463,7 +463,7 @@ class MigrationListController(bundle: Bundle? = null) : ) } - val tintColor = activity?.getResourceColor(R.attr.colorOnToolbar) ?: Color.WHITE + val tintColor = activity?.getResourceColor(R.attr.colorOnSurface) ?: Color.WHITE val color = if (allMangasDone) { tintColor } else { diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/webview/WebViewActivity.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/webview/WebViewActivity.kt index 83f46f8d6..4ebcf86ec 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/webview/WebViewActivity.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/webview/WebViewActivity.kt @@ -157,7 +157,7 @@ class WebViewActivity : BaseViewBindingActivity() { backItem?.isEnabled = binding.webview.canGoBack() forwardItem?.isEnabled = binding.webview.canGoForward() - val iconTintColor = getResourceColor(R.attr.colorOnToolbar) + val iconTintColor = getResourceColor(R.attr.colorOnSurface) val translucentIconTintColor = ColorUtils.setAlphaComponent(iconTintColor, 127) backItem?.icon?.setTint(if (binding.webview.canGoBack()) iconTintColor else translucentIconTintColor) forwardItem?.icon?.setTint(if (binding.webview.canGoForward()) iconTintColor else translucentIconTintColor) diff --git a/app/src/main/res/color/ripple_toolbar_fainter.xml b/app/src/main/res/color/ripple_toolbar_fainter.xml index 67e2f7f24..e7fb4ba66 100644 --- a/app/src/main/res/color/ripple_toolbar_fainter.xml +++ b/app/src/main/res/color/ripple_toolbar_fainter.xml @@ -1,5 +1,5 @@ - + diff --git a/app/src/main/res/color/tabs_selector.xml b/app/src/main/res/color/tabs_selector.xml deleted file mode 100644 index 7b417175d..000000000 --- a/app/src/main/res/color/tabs_selector.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - diff --git a/app/src/main/res/layout/extension_detail_header.xml b/app/src/main/res/layout/extension_detail_header.xml index 51e3ef4ca..5a7eb8e48 100644 --- a/app/src/main/res/layout/extension_detail_header.xml +++ b/app/src/main/res/layout/extension_detail_header.xml @@ -20,8 +20,6 @@ + app:layout_scrollFlags="scroll|enterAlways|snap" /> - @@ -13,7 +13,7 @@ android:layout_height="56dp" android:layout_gravity="center" app:srcCompat="@drawable/ic_tachi" - app:tint="?attr/colorOnToolbar" + app:tint="?attr/colorOnSurface" tools:ignore="ContentDescription" /> diff --git a/app/src/main/res/layout/pref_theme_item.xml b/app/src/main/res/layout/pref_theme_item.xml index f66384e23..4a61de31c 100644 --- a/app/src/main/res/layout/pref_theme_item.xml +++ b/app/src/main/res/layout/pref_theme_item.xml @@ -30,7 +30,6 @@ android:id="@+id/top_nav" android:layout_width="0dp" android:layout_height="32dp" - android:background="?attr/colorToolbar" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> @@ -44,7 +43,7 @@ app:layout_constraintBottom_toBottomOf="@+id/top_nav" app:layout_constraintStart_toStartOf="@+id/top_nav" app:layout_constraintTop_toTopOf="@+id/top_nav" - app:tint="?attr/colorOnToolbar" /> + app:tint="?attr/colorOnSurface" /> diff --git a/app/src/main/res/layout/reader_activity.xml b/app/src/main/res/layout/reader_activity.xml index 0bd6e6320..09ae6eacd 100755 --- a/app/src/main/res/layout/reader_activity.xml +++ b/app/src/main/res/layout/reader_activity.xml @@ -86,7 +86,7 @@ android:layout_height="wrap_content" android:layout_weight="1" android:padding="8dp" - android:textColor="?attr/colorOnToolbar" + android:textColor="?attr/colorOnSurface" android:text="@string/eh_autoscroll" /> @@ -122,7 +122,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="1" - android:textColor="?attr/colorOnToolbar" + android:textColor="?attr/colorOnSurface" android:text="@string/eh_retry_all" />