diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderActivity.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderActivity.kt index 643ebd201..48ad85836 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderActivity.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderActivity.kt @@ -1120,7 +1120,7 @@ class ReaderActivity : BaseRxActivity<ReaderActivityBinding, ReaderPresenter>() binding.aboveChapter.setTooltip(R.string.action_previous_chapter) binding.belowChapter.setTooltip(R.string.action_next_chapter) - val loadingIndicatorContext = createReaderThemeContext(preferences.readerTheme().get()) + val loadingIndicatorContext = createReaderThemeContext() loadingIndicator = ReaderProgressIndicator(loadingIndicatorContext).apply { updateLayoutParams<FrameLayout.LayoutParams> { gravity = Gravity.CENTER diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/pager/PagerViewerAdapter.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/pager/PagerViewerAdapter.kt index ecb0f24dd..e60e48ac6 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/pager/PagerViewerAdapter.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/pager/PagerViewerAdapter.kt @@ -52,7 +52,7 @@ class PagerViewerAdapter(private val viewer: PagerViewer) : ViewPagerAdapter() { * Context that has been wrapped to use the correct theme values based on the * current app theme and reader background color */ - private var readerThemedContext = viewer.activity.createReaderThemeContext(viewer.config.theme) + private var readerThemedContext = viewer.activity.createReaderThemeContext() /** * Updates this adapter with the given [chapters]. It handles setting a few pages of the @@ -219,7 +219,7 @@ class PagerViewerAdapter(private val viewer: PagerViewer) : ViewPagerAdapter() { } fun refresh() { - readerThemedContext = viewer.activity.createReaderThemeContext(viewer.config.theme) + readerThemedContext = viewer.activity.createReaderThemeContext() } // SY --> diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/webtoon/WebtoonAdapter.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/webtoon/WebtoonAdapter.kt index a48c90060..5f17b4ce1 100755 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/webtoon/WebtoonAdapter.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/webtoon/WebtoonAdapter.kt @@ -29,7 +29,7 @@ class WebtoonAdapter(val viewer: WebtoonViewer) : RecyclerView.Adapter<RecyclerV * Context that has been wrapped to use the correct theme values based on the * current app theme and reader background color */ - private var readerThemedContext = viewer.activity.createReaderThemeContext(viewer.config.theme) + private var readerThemedContext = viewer.activity.createReaderThemeContext() /** * Updates this adapter with the given [chapters]. It handles setting a few pages of the @@ -85,7 +85,7 @@ class WebtoonAdapter(val viewer: WebtoonViewer) : RecyclerView.Adapter<RecyclerV } fun refresh() { - readerThemedContext = viewer.activity.createReaderThemeContext(viewer.config.theme) + readerThemedContext = viewer.activity.createReaderThemeContext() } /** diff --git a/app/src/main/java/eu/kanade/tachiyomi/util/system/ContextExtensions.kt b/app/src/main/java/eu/kanade/tachiyomi/util/system/ContextExtensions.kt index d5922fd2a..6f948a0cf 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/util/system/ContextExtensions.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/util/system/ContextExtensions.kt @@ -32,7 +32,6 @@ import androidx.browser.customtabs.CustomTabsIntent import androidx.core.app.NotificationCompat import androidx.core.content.ContextCompat import androidx.core.content.getSystemService -import androidx.core.content.res.ResourcesCompat import androidx.core.graphics.alpha import androidx.core.graphics.blue import androidx.core.graphics.green @@ -40,8 +39,12 @@ import androidx.core.graphics.red import androidx.core.net.toUri import androidx.localbroadcastmanager.content.LocalBroadcastManager import eu.kanade.tachiyomi.R +import eu.kanade.tachiyomi.data.preference.PreferencesHelper +import eu.kanade.tachiyomi.ui.base.activity.BaseThemedActivity import eu.kanade.tachiyomi.util.lang.truncateCenter import timber.log.Timber +import uy.kohesive.injekt.Injekt +import uy.kohesive.injekt.api.get import java.io.File import kotlin.math.roundToInt @@ -307,8 +310,9 @@ fun Context.isNightMode(): Boolean { * Context wrapping method obtained from AppCompatDelegateImpl * https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:appcompat/appcompat/src/main/java/androidx/appcompat/app/AppCompatDelegateImpl.java;l=348;drc=e28752c96fc3fb4d3354781469a1af3dbded4898 */ -fun Context.createReaderThemeContext(readerThemeSelected: Int): Context { - val isDarkBackground = when (readerThemeSelected) { +fun Context.createReaderThemeContext(): Context { + val prefs = Injekt.get<PreferencesHelper>() + val isDarkBackground = when (prefs.readerTheme().get()) { 1, 2 -> true // Black, Gray 3 -> applicationContext.isNightMode() // Automatic bg uses activity background by default else -> false // White @@ -319,11 +323,10 @@ fun Context.createReaderThemeContext(readerThemeSelected: Int): Context { overrideConf.setTo(resources.configuration) overrideConf.uiMode = (overrideConf.uiMode and Configuration.UI_MODE_NIGHT_MASK.inv()) or expected - val wrappedContext = ContextThemeWrapper(this, R.style.Theme_AppCompat_Empty) + val wrappedContext = ContextThemeWrapper(this, R.style.Theme_Tachiyomi) wrappedContext.applyOverrideConfiguration(overrideConf) - if (theme != null) { - ResourcesCompat.ThemeCompat.rebase(wrappedContext.theme) - } + BaseThemedActivity.getThemeResIds(prefs.appTheme().get(), prefs.themeDarkAmoled().get()) + .forEach { wrappedContext.theme.applyStyle(it, true) } return wrappedContext } return this