Support follow system theme[Android 10] (#2603)
* Support follow system theme * Show [follow system theme] only on Oreo and newer * Update preference values of theme * Refine theme preference
This commit is contained in:
@@ -1,27 +1,44 @@
|
||||
package eu.kanade.tachiyomi.ui.base.activity
|
||||
|
||||
import android.app.UiModeManager
|
||||
import android.content.Context
|
||||
import android.os.Bundle
|
||||
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.util.system.LocaleHelper
|
||||
import uy.kohesive.injekt.injectLazy
|
||||
import eu.kanade.tachiyomi.data.preference.PreferenceValues as Values
|
||||
|
||||
abstract class BaseActivity : AppCompatActivity() {
|
||||
|
||||
val preferences: PreferencesHelper by injectLazy()
|
||||
|
||||
private val darkTheme: Int
|
||||
get() = 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")
|
||||
LocaleHelper.updateConfiguration(this)
|
||||
}
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
setTheme(when (preferences.theme()) {
|
||||
2 -> R.style.Theme_Tachiyomi_Dark
|
||||
3 -> R.style.Theme_Tachiyomi_Amoled
|
||||
4 -> R.style.Theme_Tachiyomi_DarkBlue
|
||||
else -> R.style.Theme_Tachiyomi
|
||||
setTheme(when (preferences.themeMode()) {
|
||||
Values.THEME_MODE_LIGHT -> R.style.Theme_Tachiyomi
|
||||
Values.THEME_MODE_DARK -> darkTheme
|
||||
else -> {
|
||||
val mode = getSystemService(Context.UI_MODE_SERVICE) as UiModeManager
|
||||
if (mode.nightMode == AppCompatDelegate.MODE_NIGHT_YES) {
|
||||
darkTheme
|
||||
} else {
|
||||
R.style.Theme_Tachiyomi
|
||||
}
|
||||
}
|
||||
})
|
||||
super.onCreate(savedInstanceState)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user