mirror of
https://github.com/mihonapp/mihon.git
synced 2025-11-16 14:07:28 +01:00
Minor system theme tweaks
This commit is contained in:
@@ -7,6 +7,7 @@ import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.appcompat.app.AppCompatDelegate
|
||||
import eu.kanade.tachiyomi.R
|
||||
import eu.kanade.tachiyomi.data.preference.PreferencesHelper
|
||||
import eu.kanade.tachiyomi.data.preference.getOrDefault
|
||||
import eu.kanade.tachiyomi.util.system.LocaleHelper
|
||||
import uy.kohesive.injekt.injectLazy
|
||||
import eu.kanade.tachiyomi.data.preference.PreferenceValues as Values
|
||||
@@ -15,12 +16,13 @@ abstract class BaseActivity : AppCompatActivity() {
|
||||
|
||||
val preferences: PreferencesHelper by injectLazy()
|
||||
|
||||
private val darkTheme: Int
|
||||
get() = when (preferences.themeDark()) {
|
||||
private val darkTheme: Int by lazy {
|
||||
when (preferences.themeDark()) {
|
||||
Values.THEME_DARK_DEFAULT -> R.style.Theme_Tachiyomi_Dark
|
||||
Values.THEME_DARK_AMOLED -> R.style.Theme_Tachiyomi_Amoled
|
||||
else -> R.style.Theme_Tachiyomi_DarkBlue
|
||||
}
|
||||
}
|
||||
|
||||
init {
|
||||
@Suppress("LeakingThis")
|
||||
@@ -28,10 +30,9 @@ abstract class BaseActivity : AppCompatActivity() {
|
||||
}
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
setTheme(when (preferences.themeMode()) {
|
||||
Values.THEME_MODE_LIGHT -> R.style.Theme_Tachiyomi
|
||||
setTheme(when (preferences.themeMode().getOrDefault()) {
|
||||
Values.THEME_MODE_DARK -> darkTheme
|
||||
else -> {
|
||||
Values.THEME_MODE_SYSTEM -> {
|
||||
val mode = getSystemService(Context.UI_MODE_SERVICE) as UiModeManager
|
||||
if (mode.nightMode == AppCompatDelegate.MODE_NIGHT_YES) {
|
||||
darkTheme
|
||||
@@ -39,7 +40,9 @@ abstract class BaseActivity : AppCompatActivity() {
|
||||
R.style.Theme_Tachiyomi
|
||||
}
|
||||
}
|
||||
else -> R.style.Theme_Tachiyomi
|
||||
})
|
||||
|
||||
super.onCreate(savedInstanceState)
|
||||
}
|
||||
|
||||
|
||||
@@ -3,6 +3,7 @@ package eu.kanade.tachiyomi.ui.setting
|
||||
import android.os.Build
|
||||
import androidx.preference.PreferenceScreen
|
||||
import eu.kanade.tachiyomi.R
|
||||
import eu.kanade.tachiyomi.data.preference.getOrDefault
|
||||
import eu.kanade.tachiyomi.util.preference.*
|
||||
import eu.kanade.tachiyomi.util.system.LocaleHelper
|
||||
import eu.kanade.tachiyomi.data.preference.PreferenceKeys as Keys
|
||||
@@ -83,17 +84,20 @@ class SettingsGeneralController : SettingsController() {
|
||||
titleRes = R.string.pref_theme_dark
|
||||
entriesRes = arrayOf(
|
||||
R.string.theme_dark_default,
|
||||
R.string.theme_dark_amoled,
|
||||
R.string.theme_dark_blue)
|
||||
R.string.theme_dark_blue,
|
||||
R.string.theme_dark_amoled)
|
||||
entryValues = arrayOf(
|
||||
Values.THEME_DARK_DEFAULT,
|
||||
Values.THEME_DARK_AMOLED,
|
||||
Values.THEME_DARK_BLUE)
|
||||
Values.THEME_DARK_BLUE,
|
||||
Values.THEME_DARK_AMOLED)
|
||||
defaultValue = Values.THEME_DARK_DEFAULT
|
||||
summary = "%s"
|
||||
|
||||
preferences.themeMode().asObservable()
|
||||
.subscribeUntilDestroy { isVisible = it != Values.THEME_MODE_LIGHT }
|
||||
|
||||
onChange {
|
||||
if (preferences.themeMode() != Values.THEME_MODE_LIGHT) {
|
||||
if (preferences.themeMode().getOrDefault() != Values.THEME_MODE_LIGHT) {
|
||||
activity?.recreate()
|
||||
}
|
||||
true
|
||||
|
||||
Reference in New Issue
Block a user