From ab73e9807521b722d48d94e57d982f39e37fff03 Mon Sep 17 00:00:00 2001 From: Ivan Iskandar <12537387+ivaniskandar@users.noreply.github.com> Date: Thu, 17 Jun 2021 19:53:38 +0700 Subject: [PATCH] Fix incorrect toolbar text color after theme change (#5388) --- .../tachiyomi/ui/manga/MangaController.kt | 35 ++++++++----------- 1 file changed, 14 insertions(+), 21 deletions(-) diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaController.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaController.kt index 7d17283b4d..94ce0b9614 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaController.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaController.kt @@ -4,19 +4,18 @@ import android.animation.Animator import android.animation.AnimatorListenerAdapter import android.app.Activity import android.content.Intent -import android.graphics.Color import android.os.Bundle import android.view.LayoutInflater import android.view.Menu import android.view.MenuInflater import android.view.MenuItem import android.view.View +import android.widget.TextView +import androidx.annotation.FloatRange import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.view.ActionMode -import androidx.core.graphics.blue -import androidx.core.graphics.green -import androidx.core.graphics.red import androidx.core.os.bundleOf +import androidx.core.view.children import androidx.core.view.isVisible import androidx.recyclerview.widget.ConcatAdapter import androidx.recyclerview.widget.LinearLayoutManager @@ -77,7 +76,6 @@ import eu.kanade.tachiyomi.util.hasCustomCover import eu.kanade.tachiyomi.util.lang.launchIO import eu.kanade.tachiyomi.util.lang.launchUI import eu.kanade.tachiyomi.util.storage.getUriCompat -import eu.kanade.tachiyomi.util.system.getResourceColor import eu.kanade.tachiyomi.util.system.toShareIntent import eu.kanade.tachiyomi.util.system.toast import eu.kanade.tachiyomi.util.view.getCoordinates @@ -137,7 +135,7 @@ class MangaController : private val preferences: PreferencesHelper by injectLazy() private val coverCache: CoverCache by injectLazy() - private val toolbarTextColor by lazy { view!!.context.getResourceColor(R.attr.colorOnPrimary) } + private var toolbarTextView: TextView? = null private var mangaInfoAdapter: MangaInfoHeaderAdapter? = null private var chaptersHeaderAdapter: MangaChaptersHeaderAdapter? = null @@ -294,28 +292,22 @@ class MangaController : updateFilterIconState() } - private fun updateToolbarTitleAlpha(alpha: Int? = null) { + private fun updateToolbarTitleAlpha(@FloatRange(from = 0.0, to = 1.0) alpha: Float? = null) { val scrolledList = binding.fullRecycler ?: binding.infoRecycler!! - - val calculatedAlpha = when { + if (toolbarTextView == null) { + toolbarTextView = (activity as? MainActivity)?.binding?.toolbar?.children + ?.find { it is TextView } as TextView + } + toolbarTextView?.alpha = when { // Specific alpha provided alpha != null -> alpha // First item isn't in view, full opacity - ((scrolledList.layoutManager as LinearLayoutManager).findFirstVisibleItemPosition() > 0) -> 255 + ((scrolledList.layoutManager as LinearLayoutManager).findFirstVisibleItemPosition() > 0) -> 1F // Based on scroll amount when first item is in view - else -> min(scrolledList.computeVerticalScrollOffset(), 255) + else -> min(scrolledList.computeVerticalScrollOffset(), 255) / 255F } - - (activity as? MainActivity)?.binding?.toolbar?.setTitleTextColor( - Color.argb( - calculatedAlpha, - toolbarTextColor.red, - toolbarTextColor.green, - toolbarTextColor.blue - ) - ) } private fun updateFilterIconState() { @@ -362,7 +354,8 @@ class MangaController : chaptersAdapter = null settingsSheet = null addSnackbar?.dismiss() - updateToolbarTitleAlpha(255) + updateToolbarTitleAlpha(1F) + toolbarTextView = null super.onDestroyView(view) }