fix(reader): Fix build

This commit is contained in:
Ahmad Ansori Palembani 2024-12-24 12:43:30 +07:00
parent 031e30e227
commit f9bb2b96cb
Signed by: null2264
GPG key ID: BA64F8B60AF3EFB6
4 changed files with 21 additions and 40 deletions

View file

@ -2,7 +2,6 @@ package eu.kanade.tachiyomi.ui.reader.viewer
import android.content.Context import android.content.Context
import android.util.AttributeSet import android.util.AttributeSet
import android.view.LayoutInflater
import androidx.compose.material3.LocalContentColor import androidx.compose.material3.LocalContentColor
import androidx.compose.material3.LocalTextStyle import androidx.compose.material3.LocalTextStyle
import androidx.compose.material3.MaterialTheme import androidx.compose.material3.MaterialTheme
@ -13,12 +12,10 @@ import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.setValue import androidx.compose.runtime.setValue
import androidx.compose.ui.platform.AbstractComposeView import androidx.compose.ui.platform.AbstractComposeView
import eu.kanade.tachiyomi.data.download.DownloadManager import eu.kanade.tachiyomi.data.download.DownloadManager
import eu.kanade.tachiyomi.data.preference.PreferencesHelper
import eu.kanade.tachiyomi.databinding.ReaderTransitionViewBinding
import eu.kanade.tachiyomi.domain.manga.models.Manga import eu.kanade.tachiyomi.domain.manga.models.Manga
import eu.kanade.tachiyomi.ui.reader.model.ChapterTransition import eu.kanade.tachiyomi.ui.reader.model.ChapterTransition
import eu.kanade.tachiyomi.util.isLocal import eu.kanade.tachiyomi.util.isLocal
import uy.kohesive.injekt.injectLazy import eu.kanade.tachiyomi.util.system.ThemeUtil
import yokai.presentation.reader.ChapterTransition import yokai.presentation.reader.ChapterTransition
import yokai.presentation.theme.YokaiTheme import yokai.presentation.theme.YokaiTheme
@ -27,17 +24,14 @@ class ReaderTransitionView @JvmOverloads constructor(context: Context, attrs: At
private var data: Data? by mutableStateOf(null) private var data: Data? by mutableStateOf(null)
private val binding: ReaderTransitionViewBinding =
ReaderTransitionViewBinding.inflate(LayoutInflater.from(context), this, true)
private val preferences: PreferencesHelper by injectLazy()
init { init {
layoutParams = LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT) layoutParams = LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)
} }
fun bind(transition: ChapterTransition, downloadManager: DownloadManager, manga: Manga?) { fun bind(theme: Int, transition: ChapterTransition, downloadManager: DownloadManager, manga: Manga?) {
data = if (manga != null) { data = if (manga != null) {
Data( Data(
theme = theme,
manga = manga, manga = manga,
transition = transition, transition = transition,
currChapterDownloaded = transition.from.pageLoader?.isLocal == true, currChapterDownloaded = transition.from.pageLoader?.isLocal == true,
@ -58,10 +52,11 @@ class ReaderTransitionView @JvmOverloads constructor(context: Context, attrs: At
@Composable @Composable
override fun Content() { override fun Content() {
data?.let { data?.let {
val contentColor = ThemeUtil.readerContentColor(it.theme, MaterialTheme.colorScheme.onBackground)
YokaiTheme { YokaiTheme {
CompositionLocalProvider ( CompositionLocalProvider (
LocalTextStyle provides MaterialTheme.typography.bodySmall, LocalTextStyle provides MaterialTheme.typography.bodySmall,
LocalContentColor provides MaterialTheme.colorScheme.onBackground, LocalContentColor provides contentColor,
) { ) {
ChapterTransition( ChapterTransition(
manga = it.manga, manga = it.manga,
@ -75,6 +70,7 @@ class ReaderTransitionView @JvmOverloads constructor(context: Context, attrs: At
} }
private data class Data( private data class Data(
val theme: Int,
val manga: Manga, val manga: Manga,
val transition: ChapterTransition, val transition: ChapterTransition,
val currChapterDownloaded: Boolean, val currChapterDownloaded: Boolean,

View file

@ -14,14 +14,11 @@ import androidx.compose.material3.CircularProgressIndicator
import androidx.compose.ui.platform.ComposeView import androidx.compose.ui.platform.ComposeView
import androidx.compose.ui.platform.ViewCompositionStrategy import androidx.compose.ui.platform.ViewCompositionStrategy
import androidx.core.view.updatePaddingRelative import androidx.core.view.updatePaddingRelative
import eu.kanade.tachiyomi.R
import eu.kanade.tachiyomi.ui.reader.model.ChapterTransition import eu.kanade.tachiyomi.ui.reader.model.ChapterTransition
import eu.kanade.tachiyomi.ui.reader.model.ReaderChapter import eu.kanade.tachiyomi.ui.reader.model.ReaderChapter
import eu.kanade.tachiyomi.ui.reader.viewer.ReaderButton import eu.kanade.tachiyomi.ui.reader.viewer.ReaderButton
import eu.kanade.tachiyomi.ui.reader.viewer.ReaderTransitionView import eu.kanade.tachiyomi.ui.reader.viewer.ReaderTransitionView
import eu.kanade.tachiyomi.util.system.ThemeUtil
import eu.kanade.tachiyomi.util.system.dpToPx import eu.kanade.tachiyomi.util.system.dpToPx
import eu.kanade.tachiyomi.util.system.getResourceColor
import eu.kanade.tachiyomi.util.view.setText import eu.kanade.tachiyomi.util.view.setText
import eu.kanade.tachiyomi.widget.ViewPagerAdapter import eu.kanade.tachiyomi.widget.ViewPagerAdapter
import kotlinx.coroutines.Job import kotlinx.coroutines.Job
@ -67,17 +64,11 @@ class PagerTransitionHolder(
setPadding(sidePadding, 0, sidePadding, 0) setPadding(sidePadding, 0, sidePadding, 0)
val transitionView = ReaderTransitionView(context) val transitionView = ReaderTransitionView(context)
transitionView.setTextColors(
ThemeUtil.readerContentColor(
viewer.config.readerTheme,
context.getResourceColor(R.attr.colorOnBackground),
)
)
addView(transitionView) addView(transitionView)
addView(pagesContainer) addView(pagesContainer)
transitionView.bind(transition, viewer.downloadManager, viewer.activity.viewModel.manga) transitionView.bind(viewer.config.readerTheme, transition, viewer.downloadManager, viewer.activity.viewModel.manga)
transition.to?.let { observeStatus(it) } transition.to?.let { observeStatus(it) }

View file

@ -12,13 +12,10 @@ import androidx.compose.ui.platform.ComposeView
import androidx.compose.ui.platform.ViewCompositionStrategy import androidx.compose.ui.platform.ViewCompositionStrategy
import androidx.core.view.isNotEmpty import androidx.core.view.isNotEmpty
import androidx.core.view.isVisible import androidx.core.view.isVisible
import eu.kanade.tachiyomi.R
import eu.kanade.tachiyomi.ui.reader.model.ChapterTransition import eu.kanade.tachiyomi.ui.reader.model.ChapterTransition
import eu.kanade.tachiyomi.ui.reader.model.ReaderChapter import eu.kanade.tachiyomi.ui.reader.model.ReaderChapter
import eu.kanade.tachiyomi.ui.reader.viewer.ReaderTransitionView import eu.kanade.tachiyomi.ui.reader.viewer.ReaderTransitionView
import eu.kanade.tachiyomi.util.system.ThemeUtil
import eu.kanade.tachiyomi.util.system.dpToPx import eu.kanade.tachiyomi.util.system.dpToPx
import eu.kanade.tachiyomi.util.system.getResourceColor
import eu.kanade.tachiyomi.util.view.setText import eu.kanade.tachiyomi.util.view.setText
import kotlinx.coroutines.Job import kotlinx.coroutines.Job
import kotlinx.coroutines.MainScope import kotlinx.coroutines.MainScope
@ -72,13 +69,7 @@ class WebtoonTransitionHolder(
* Binds the given [transition] with this view holder, subscribing to its state. * Binds the given [transition] with this view holder, subscribing to its state.
*/ */
fun bind(transition: ChapterTransition) { fun bind(transition: ChapterTransition) {
transitionView.setTextColors( transitionView.bind(viewer.config.readerTheme, transition, viewer.downloadManager, viewer.activity.viewModel.manga)
ThemeUtil.readerContentColor(
viewer.config.readerTheme,
context.getResourceColor(R.attr.colorOnBackground),
)
)
transitionView.bind(transition, viewer.downloadManager, viewer.activity.viewModel.manga)
transition.to?.let { observeStatus(it, transition) } transition.to?.let { observeStatus(it, transition) }
} }

View file

@ -2,9 +2,10 @@ package eu.kanade.tachiyomi.util.system
import android.content.Context import android.content.Context
import android.content.res.Resources import android.content.res.Resources
import android.graphics.Color
import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.app.AppCompatActivity
import androidx.appcompat.app.AppCompatDelegate import androidx.appcompat.app.AppCompatDelegate
import androidx.compose.runtime.Composable
import androidx.compose.ui.graphics.Color
import androidx.core.content.edit import androidx.core.content.edit
import androidx.core.view.WindowInsetsControllerCompat import androidx.core.view.WindowInsetsControllerCompat
import androidx.preference.PreferenceManager import androidx.preference.PreferenceManager
@ -13,6 +14,7 @@ import eu.kanade.tachiyomi.data.preference.PreferenceKeys
import eu.kanade.tachiyomi.data.preference.PreferencesHelper import eu.kanade.tachiyomi.data.preference.PreferencesHelper
import eu.kanade.tachiyomi.ui.reader.settings.ReaderBackgroundColor import eu.kanade.tachiyomi.ui.reader.settings.ReaderBackgroundColor
import uy.kohesive.injekt.injectLazy import uy.kohesive.injekt.injectLazy
import android.graphics.Color as AColor
object ThemeUtil { object ThemeUtil {
@ -47,20 +49,21 @@ object ThemeUtil {
return context.isInNightMode() && preferences.themeDarkAmoled().get() return context.isInNightMode() && preferences.themeDarkAmoled().get()
} }
fun readerBackgroundColor(theme: Int, default: Int = Color.WHITE): Int { fun readerBackgroundColor(theme: Int, default: Int = AColor.WHITE): Int {
return when (ReaderBackgroundColor.fromPreference(theme)) { return when (ReaderBackgroundColor.fromPreference(theme)) {
ReaderBackgroundColor.GRAY -> Color.rgb(32, 33, 37) ReaderBackgroundColor.GRAY -> AColor.rgb(32, 33, 37)
ReaderBackgroundColor.BLACK -> Color.BLACK ReaderBackgroundColor.BLACK -> AColor.BLACK
ReaderBackgroundColor.WHITE -> Color.WHITE ReaderBackgroundColor.WHITE -> AColor.WHITE
else -> default else -> default
} }
} }
fun readerContentColor(theme: Int, default: Int = Color.BLACK): Int { @Composable
fun readerContentColor(theme: Int, default: Color = Color.Black): Color {
return when (ReaderBackgroundColor.fromPreference(theme)) { return when (ReaderBackgroundColor.fromPreference(theme)) {
ReaderBackgroundColor.GRAY -> Color.WHITE ReaderBackgroundColor.GRAY -> Color.White
ReaderBackgroundColor.BLACK -> Color.WHITE ReaderBackgroundColor.BLACK -> Color.White
ReaderBackgroundColor.WHITE -> Color.BLACK ReaderBackgroundColor.WHITE -> Color.Black
else -> default else -> default
} }
} }
@ -78,7 +81,7 @@ fun AppCompatActivity.getThemeWithExtras(theme: Resources.Theme, preferences: Pr
if (oldTheme != null && useAmoled) { if (oldTheme != null && useAmoled) {
val array = oldTheme.obtainStyledAttributes(intArrayOf(R.attr.background)) val array = oldTheme.obtainStyledAttributes(intArrayOf(R.attr.background))
val bg = array.getColor(0, 0) val bg = array.getColor(0, 0)
if (bg == Color.BLACK) { if (bg == AColor.BLACK) {
return oldTheme return oldTheme
} }
} }