Make Automatic Reader Theme pick background/text color based on dark mode preference (#5505)

* Make Automatic Reader Theme pick background/text color based on theme

* Use extension method
This commit is contained in:
Andreas 2021-07-08 00:12:11 +02:00 committed by GitHub
parent 37d30eb887
commit c254aa6fcc
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 25 additions and 1 deletions

View File

@ -854,6 +854,7 @@ class ReaderActivity : BaseRxActivity<ReaderActivityBinding, ReaderPresenter>()
when (preferences.readerTheme().get()) { when (preferences.readerTheme().get()) {
0 -> android.R.color.white 0 -> android.R.color.white
2 -> R.color.reader_background_dark 2 -> R.color.reader_background_dark
3 -> automaticBackgroundColor()
else -> android.R.color.black else -> android.R.color.black
} }
) )
@ -902,6 +903,17 @@ class ReaderActivity : BaseRxActivity<ReaderActivityBinding, ReaderPresenter>()
.launchIn(lifecycleScope) .launchIn(lifecycleScope)
} }
/**
* Picks background color for [ReaderActivity] based on light/dark theme preference
*/
private fun automaticBackgroundColor(): Int {
return if (baseContext.isNightMode()) {
R.color.reader_background_dark
} else {
android.R.color.white
}
}
/** /**
* Sets the visibility of the bottom page indicator according to [visible]. * Sets the visibility of the bottom page indicator according to [visible].
*/ */

View File

@ -11,6 +11,7 @@ import eu.kanade.tachiyomi.R
import eu.kanade.tachiyomi.data.preference.PreferencesHelper import eu.kanade.tachiyomi.data.preference.PreferencesHelper
import eu.kanade.tachiyomi.databinding.ReaderTransitionViewBinding import eu.kanade.tachiyomi.databinding.ReaderTransitionViewBinding
import eu.kanade.tachiyomi.ui.reader.model.ChapterTransition import eu.kanade.tachiyomi.ui.reader.model.ChapterTransition
import eu.kanade.tachiyomi.util.system.isNightMode
import uy.kohesive.injekt.Injekt import uy.kohesive.injekt.Injekt
import uy.kohesive.injekt.api.get import uy.kohesive.injekt.api.get
@ -23,7 +24,6 @@ class ReaderTransitionView @JvmOverloads constructor(context: Context, attrs: At
binding = ReaderTransitionViewBinding.inflate(LayoutInflater.from(context), this, true) binding = ReaderTransitionViewBinding.inflate(LayoutInflater.from(context), this, true)
layoutParams = LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT) layoutParams = LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)
} }
fun bind(transition: ChapterTransition) { fun bind(transition: ChapterTransition) {
when (transition) { when (transition) {
is ChapterTransition.Prev -> bindPrevChapterTransition(transition) is ChapterTransition.Prev -> bindPrevChapterTransition(transition)
@ -34,6 +34,7 @@ class ReaderTransitionView @JvmOverloads constructor(context: Context, attrs: At
val color = when (Injekt.get<PreferencesHelper>().readerTheme().get()) { val color = when (Injekt.get<PreferencesHelper>().readerTheme().get()) {
0 -> context.getColor(android.R.color.black) 0 -> context.getColor(android.R.color.black)
3 -> context.getColor(automaticTextColor())
else -> context.getColor(android.R.color.white) else -> context.getColor(android.R.color.white)
} }
listOf(binding.upperText, binding.warningText, binding.lowerText).forEach { listOf(binding.upperText, binding.warningText, binding.lowerText).forEach {
@ -41,6 +42,17 @@ class ReaderTransitionView @JvmOverloads constructor(context: Context, attrs: At
} }
} }
/**
* Picks text color for [ReaderActivity] based on light/dark theme preference
*/
private fun automaticTextColor(): Int {
return if (context.isNightMode()) {
android.R.color.white
} else {
android.R.color.black
}
}
/** /**
* Binds a previous chapter transition on this view and subscribes to the page load status. * Binds a previous chapter transition on this view and subscribes to the page load status.
*/ */