From f9bb2b96cb43aa6da17fa31d225be10440433e36 Mon Sep 17 00:00:00 2001 From: Ahmad Ansori Palembani Date: Tue, 24 Dec 2024 12:43:30 +0700 Subject: [PATCH] fix(reader): Fix build --- .../ui/reader/viewer/ReaderTransitionView.kt | 16 +++++-------- .../viewer/pager/PagerTransitionHolder.kt | 11 +-------- .../viewer/webtoon/WebtoonTransitionHolder.kt | 11 +-------- .../kanade/tachiyomi/util/system/ThemeUtil.kt | 23 +++++++++++-------- 4 files changed, 21 insertions(+), 40 deletions(-) diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/ReaderTransitionView.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/ReaderTransitionView.kt index 0e7b2602b8..75eab36d98 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/ReaderTransitionView.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/ReaderTransitionView.kt @@ -2,7 +2,6 @@ package eu.kanade.tachiyomi.ui.reader.viewer import android.content.Context import android.util.AttributeSet -import android.view.LayoutInflater import androidx.compose.material3.LocalContentColor import androidx.compose.material3.LocalTextStyle import androidx.compose.material3.MaterialTheme @@ -13,12 +12,10 @@ import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.setValue import androidx.compose.ui.platform.AbstractComposeView 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.ui.reader.model.ChapterTransition 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.theme.YokaiTheme @@ -27,17 +24,14 @@ class ReaderTransitionView @JvmOverloads constructor(context: Context, attrs: At 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 { 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( + theme = theme, manga = manga, transition = transition, currChapterDownloaded = transition.from.pageLoader?.isLocal == true, @@ -58,10 +52,11 @@ class ReaderTransitionView @JvmOverloads constructor(context: Context, attrs: At @Composable override fun Content() { data?.let { + val contentColor = ThemeUtil.readerContentColor(it.theme, MaterialTheme.colorScheme.onBackground) YokaiTheme { CompositionLocalProvider ( LocalTextStyle provides MaterialTheme.typography.bodySmall, - LocalContentColor provides MaterialTheme.colorScheme.onBackground, + LocalContentColor provides contentColor, ) { ChapterTransition( manga = it.manga, @@ -75,6 +70,7 @@ class ReaderTransitionView @JvmOverloads constructor(context: Context, attrs: At } private data class Data( + val theme: Int, val manga: Manga, val transition: ChapterTransition, val currChapterDownloaded: Boolean, diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/pager/PagerTransitionHolder.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/pager/PagerTransitionHolder.kt index c2854b2c0d..7114bbc499 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/pager/PagerTransitionHolder.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/pager/PagerTransitionHolder.kt @@ -14,14 +14,11 @@ import androidx.compose.material3.CircularProgressIndicator import androidx.compose.ui.platform.ComposeView import androidx.compose.ui.platform.ViewCompositionStrategy 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.ReaderChapter import eu.kanade.tachiyomi.ui.reader.viewer.ReaderButton 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.getResourceColor import eu.kanade.tachiyomi.util.view.setText import eu.kanade.tachiyomi.widget.ViewPagerAdapter import kotlinx.coroutines.Job @@ -67,17 +64,11 @@ class PagerTransitionHolder( setPadding(sidePadding, 0, sidePadding, 0) val transitionView = ReaderTransitionView(context) - transitionView.setTextColors( - ThemeUtil.readerContentColor( - viewer.config.readerTheme, - context.getResourceColor(R.attr.colorOnBackground), - ) - ) addView(transitionView) 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) } diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/webtoon/WebtoonTransitionHolder.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/webtoon/WebtoonTransitionHolder.kt index 1fb8d78df2..cfce248456 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/webtoon/WebtoonTransitionHolder.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/webtoon/WebtoonTransitionHolder.kt @@ -12,13 +12,10 @@ import androidx.compose.ui.platform.ComposeView import androidx.compose.ui.platform.ViewCompositionStrategy import androidx.core.view.isNotEmpty 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.ReaderChapter 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.getResourceColor import eu.kanade.tachiyomi.util.view.setText import kotlinx.coroutines.Job import kotlinx.coroutines.MainScope @@ -72,13 +69,7 @@ class WebtoonTransitionHolder( * Binds the given [transition] with this view holder, subscribing to its state. */ fun bind(transition: ChapterTransition) { - transitionView.setTextColors( - ThemeUtil.readerContentColor( - viewer.config.readerTheme, - context.getResourceColor(R.attr.colorOnBackground), - ) - ) - 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) } } diff --git a/app/src/main/java/eu/kanade/tachiyomi/util/system/ThemeUtil.kt b/app/src/main/java/eu/kanade/tachiyomi/util/system/ThemeUtil.kt index 83ce972fe8..cb5ec8e234 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/util/system/ThemeUtil.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/util/system/ThemeUtil.kt @@ -2,9 +2,10 @@ package eu.kanade.tachiyomi.util.system import android.content.Context import android.content.res.Resources -import android.graphics.Color import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.app.AppCompatDelegate +import androidx.compose.runtime.Composable +import androidx.compose.ui.graphics.Color import androidx.core.content.edit import androidx.core.view.WindowInsetsControllerCompat 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.ui.reader.settings.ReaderBackgroundColor import uy.kohesive.injekt.injectLazy +import android.graphics.Color as AColor object ThemeUtil { @@ -47,20 +49,21 @@ object ThemeUtil { 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)) { - ReaderBackgroundColor.GRAY -> Color.rgb(32, 33, 37) - ReaderBackgroundColor.BLACK -> Color.BLACK - ReaderBackgroundColor.WHITE -> Color.WHITE + ReaderBackgroundColor.GRAY -> AColor.rgb(32, 33, 37) + ReaderBackgroundColor.BLACK -> AColor.BLACK + ReaderBackgroundColor.WHITE -> AColor.WHITE 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)) { - ReaderBackgroundColor.GRAY -> Color.WHITE - ReaderBackgroundColor.BLACK -> Color.WHITE - ReaderBackgroundColor.WHITE -> Color.BLACK + ReaderBackgroundColor.GRAY -> Color.White + ReaderBackgroundColor.BLACK -> Color.White + ReaderBackgroundColor.WHITE -> Color.Black else -> default } } @@ -78,7 +81,7 @@ fun AppCompatActivity.getThemeWithExtras(theme: Resources.Theme, preferences: Pr if (oldTheme != null && useAmoled) { val array = oldTheme.obtainStyledAttributes(intArrayOf(R.attr.background)) val bg = array.getColor(0, 0) - if (bg == Color.BLACK) { + if (bg == AColor.BLACK) { return oldTheme } }