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.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,

View file

@ -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) }

View file

@ -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) }
}

View file

@ -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
}
}