Pure white light theme

This commit is contained in:
arkon
2020-03-14 13:18:34 -04:00
parent 738f776d36
commit e41edc1fb7
17 changed files with 133 additions and 39 deletions

View File

@ -7,6 +7,8 @@ object PreferenceKeys {
const val themeMode = "pref_theme_mode_key"
const val themeLight = "pref_theme_light_key"
const val themeDark = "pref_theme_dark_key"
const val rotation = "pref_rotation_type_key"

View File

@ -9,6 +9,9 @@ object PreferenceValues {
const val THEME_MODE_DARK = "dark"
const val THEME_MODE_SYSTEM = "system"
const val THEME_LIGHT_DEFAULT = "default"
const val THEME_LIGHT_BLUE = "blue"
const val THEME_DARK_DEFAULT = "default"
const val THEME_DARK_BLUE = "blue"
const val THEME_DARK_AMOLED = "amoled"

View File

@ -65,7 +65,9 @@ class PreferencesHelper(val context: Context) {
fun themeMode() = rxPrefs.getString(Keys.themeMode, Values.THEME_MODE_SYSTEM)
fun themeDark() = prefs.getString(Keys.themeDark, Values.THEME_DARK_DEFAULT)
fun themeLight() = prefs.getString(Keys.themeLight, Values.THEME_DARK_DEFAULT)
fun themeDark() = prefs.getString(Keys.themeDark, Values.THEME_LIGHT_DEFAULT)
fun rotation() = rxPrefs.getInteger(Keys.rotation, 1)

View File

@ -1,6 +1,7 @@
package eu.kanade.tachiyomi.ui.base.activity
import android.content.res.Configuration
import android.os.Build
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import eu.kanade.tachiyomi.R
@ -18,11 +19,33 @@ abstract class BaseActivity : AppCompatActivity() {
@Suppress("LeakingThis")
private val secureActivityDelegate = SecureActivityDelegate(this)
private val lightTheme: Int by lazy {
when (preferences.themeLight()) {
Values.THEME_LIGHT_BLUE -> R.style.Theme_Tachiyomi_LightBlue
else -> {
when {
// Light status + navigation bar
Build.VERSION.SDK_INT >= Build.VERSION_CODES.O_MR1 -> {
R.style.Theme_Tachiyomi_Light_Api27
}
// Light status bar + fallback gray navigation bar
Build.VERSION.SDK_INT >= Build.VERSION_CODES.M -> {
R.style.Theme_Tachiyomi_Light_Api23
}
// Fallback gray status + navigation bar
else -> {
R.style.Theme_Tachiyomi_Light
}
}
}
}
}
private val darkTheme: Int by lazy {
when (preferences.themeDark()) {
Values.THEME_DARK_DEFAULT -> R.style.Theme_Tachiyomi_Dark
Values.THEME_DARK_BLUE -> R.style.Theme_Tachiyomi_DarkBlue
Values.THEME_DARK_AMOLED -> R.style.Theme_Tachiyomi_Amoled
else -> R.style.Theme_Tachiyomi_DarkBlue
else -> R.style.Theme_Tachiyomi_Dark
}
}
@ -33,15 +56,15 @@ abstract class BaseActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
setTheme(when (preferences.themeMode().getOrDefault()) {
Values.THEME_MODE_DARK -> darkTheme
Values.THEME_MODE_SYSTEM -> {
if (resources.configuration.uiMode and Configuration.UI_MODE_NIGHT_MASK == Configuration.UI_MODE_NIGHT_YES) {
darkTheme
} else {
R.style.Theme_Tachiyomi
lightTheme
}
}
else -> R.style.Theme_Tachiyomi
Values.THEME_MODE_DARK -> darkTheme
else -> lightTheme
})
super.onCreate(savedInstanceState)

View File

@ -118,6 +118,28 @@ class SettingsGeneralController : SettingsController() {
true
}
}
listPreference {
key = Keys.themeLight
titleRes = R.string.pref_theme_light
entriesRes = arrayOf(
R.string.theme_light_default,
R.string.theme_light_blue)
entryValues = arrayOf(
Values.THEME_LIGHT_DEFAULT,
Values.THEME_LIGHT_BLUE)
defaultValue = Values.THEME_LIGHT_DEFAULT
summary = "%s"
preferences.themeMode().asObservable()
.subscribeUntilDestroy { isVisible = it != Values.THEME_MODE_DARK }
onChange {
if (preferences.themeMode().getOrDefault() == Values.THEME_MODE_LIGHT) {
activity?.recreate()
}
true
}
}
listPreference {
key = Keys.themeDark
titleRes = R.string.pref_theme_dark