mirror of
https://github.com/tachiyomiorg/tachiyomi.git
synced 2024-11-10 18:07:49 +01:00
Add Dynamic theme for Android 12 (#5569)
* Add Dynamic theme for Android 12 * Also theme text colors
This commit is contained in:
parent
8bfc5f0450
commit
b2d58e04d2
13 changed files with 79 additions and 3 deletions
|
@ -23,6 +23,7 @@ object PreferenceValues {
|
||||||
|
|
||||||
enum class AppTheme(val titleResId: Int?) {
|
enum class AppTheme(val titleResId: Int?) {
|
||||||
DEFAULT(R.string.theme_default),
|
DEFAULT(R.string.theme_default),
|
||||||
|
MONET(R.string.theme_monet),
|
||||||
BLUE(R.string.theme_blue),
|
BLUE(R.string.theme_blue),
|
||||||
GREEN_APPLE(R.string.theme_greenapple),
|
GREEN_APPLE(R.string.theme_greenapple),
|
||||||
MIDNIGHT_DUSK(R.string.theme_midnightdusk),
|
MIDNIGHT_DUSK(R.string.theme_midnightdusk),
|
||||||
|
|
|
@ -40,6 +40,9 @@ abstract class BaseThemedActivity : AppCompatActivity() {
|
||||||
fun AppCompatActivity.applyThemePreferences(preferences: PreferencesHelper) {
|
fun AppCompatActivity.applyThemePreferences(preferences: PreferencesHelper) {
|
||||||
val resIds = mutableListOf<Int>()
|
val resIds = mutableListOf<Int>()
|
||||||
when (preferences.appTheme().get()) {
|
when (preferences.appTheme().get()) {
|
||||||
|
PreferenceValues.AppTheme.MONET -> {
|
||||||
|
resIds += R.style.Theme_Tachiyomi_Monet
|
||||||
|
}
|
||||||
PreferenceValues.AppTheme.BLUE -> {
|
PreferenceValues.AppTheme.BLUE -> {
|
||||||
resIds += R.style.Theme_Tachiyomi_Blue
|
resIds += R.style.Theme_Tachiyomi_Blue
|
||||||
resIds += R.style.ThemeOverlay_Tachiyomi_ColoredBars
|
resIds += R.style.ThemeOverlay_Tachiyomi_ColoredBars
|
||||||
|
|
|
@ -122,7 +122,14 @@ class SettingsGeneralController : SettingsController() {
|
||||||
key = Keys.appTheme
|
key = Keys.appTheme
|
||||||
titleRes = R.string.pref_app_theme
|
titleRes = R.string.pref_app_theme
|
||||||
|
|
||||||
val appThemes = Values.AppTheme.values().filter { it.titleResId != null }
|
val appThemes = Values.AppTheme.values().filter {
|
||||||
|
val monetFilter = if (it == Values.AppTheme.MONET) {
|
||||||
|
Build.VERSION.SDK_INT >= Build.VERSION_CODES.S
|
||||||
|
} else {
|
||||||
|
true
|
||||||
|
}
|
||||||
|
it.titleResId != null && monetFilter
|
||||||
|
}
|
||||||
entriesRes = appThemes.map { it.titleResId!! }.toTypedArray()
|
entriesRes = appThemes.map { it.titleResId!! }.toTypedArray()
|
||||||
entryValues = appThemes.map { it.name }.toTypedArray()
|
entryValues = appThemes.map { it.name }.toTypedArray()
|
||||||
defaultValue = appThemes[0].name
|
defaultValue = appThemes[0].name
|
||||||
|
|
5
app/src/main/res/color-night-v31/text_primary_monet.xml
Normal file
5
app/src/main/res/color-night-v31/text_primary_monet.xml
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
<item android:color="@android:color/system_neutral1_500" android:state_enabled="false" />
|
||||||
|
<item android:color="@android:color/system_neutral1_50" />
|
||||||
|
</selector>
|
|
@ -0,0 +1,5 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
<item android:alpha="?android:attr/disabledAlpha" android:color="@android:color/system_neutral2_200" android:state_enabled="false" />
|
||||||
|
<item android:color="@android:color/system_neutral2_200" />
|
||||||
|
</selector>
|
4
app/src/main/res/color-v31/ripple_colored_monet.xml
Normal file
4
app/src/main/res/color-v31/ripple_colored_monet.xml
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
<item android:color="@color/accent_monet" android:alpha="0.12" />
|
||||||
|
</selector>
|
5
app/src/main/res/color-v31/text_primary_monet.xml
Normal file
5
app/src/main/res/color-v31/text_primary_monet.xml
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
<item android:color="@android:color/system_neutral1_400" android:state_enabled="false" />
|
||||||
|
<item android:color="@android:color/system_neutral1_900" />
|
||||||
|
</selector>
|
5
app/src/main/res/color-v31/text_secondary_monet.xml
Normal file
5
app/src/main/res/color-v31/text_secondary_monet.xml
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
<item android:alpha="?android:attr/disabledAlpha" android:color="@android:color/system_neutral2_700" android:state_enabled="false" />
|
||||||
|
<item android:color="@android:color/system_neutral2_700" />
|
||||||
|
</selector>
|
|
@ -1,5 +1,5 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<resources>
|
<resources xmlns:tools="http://schemas.android.com/tools">
|
||||||
<color name="splash">@color/background_default</color>
|
<color name="splash">@color/background_default</color>
|
||||||
|
|
||||||
<!-- Default Theme -->
|
<!-- Default Theme -->
|
||||||
|
@ -9,6 +9,15 @@
|
||||||
<color name="background_default">#202125</color>
|
<color name="background_default">#202125</color>
|
||||||
<color name="ripple_colored_default">#1F3399FF</color>
|
<color name="ripple_colored_default">#1F3399FF</color>
|
||||||
|
|
||||||
|
<!-- Monet Theme -->
|
||||||
|
<color name="accent_monet" tools:targetApi="31">@android:color/system_accent1_100</color>
|
||||||
|
<color name="on_accent_monet" tools:targetApi="31">@android:color/system_accent1_900</color>
|
||||||
|
<color name="divider_monet" tools:targetApi="31">@android:color/system_neutral1_700</color>
|
||||||
|
<color name="tertiary_monet" tools:targetApi="31">@android:color/system_accent3_100</color>
|
||||||
|
<color name="on_tertiary_monet" tools:targetApi="31">@android:color/system_accent3_900</color>
|
||||||
|
<color name="surface_monet" tools:targetApi="31">@android:color/system_neutral1_900</color>
|
||||||
|
<color name="on_surface_monet" tools:targetApi="31">@android:color/system_neutral1_50</color>
|
||||||
|
|
||||||
<!-- Green Apple Theme -->
|
<!-- Green Apple Theme -->
|
||||||
<color name="accent_greenapple">#48E484</color>
|
<color name="accent_greenapple">#48E484</color>
|
||||||
<color name="color_on_primary_greenapple">@color/md_black_1000</color>
|
<color name="color_on_primary_greenapple">@color/md_black_1000</color>
|
||||||
|
|
17
app/src/main/res/values-v31/themes.xml
Normal file
17
app/src/main/res/values-v31/themes.xml
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<resources>
|
||||||
|
<style name="Theme.Tachiyomi.Monet">
|
||||||
|
<item name="colorPrimary">@color/accent_monet</item>
|
||||||
|
<item name="colorOnPrimary">@color/on_accent_monet</item>
|
||||||
|
<item name="colorTertiary">@color/tertiary_monet</item>
|
||||||
|
<item name="colorOnTertiary">@color/on_tertiary_monet</item>
|
||||||
|
<item name="colorSurface">@color/surface_monet</item>
|
||||||
|
<item name="colorOnSurface">@color/on_surface_monet</item>
|
||||||
|
<item name="android:colorBackground">@color/background_monet</item>
|
||||||
|
<item name="colorOnBackground">@color/on_background_monet</item>
|
||||||
|
<item name="colorControlHighlight">@color/ripple_colored_monet</item>
|
||||||
|
<item name="android:divider">@color/divider_monet</item>
|
||||||
|
<item name="android:textColorPrimary">@color/text_primary_monet</item>
|
||||||
|
<item name="android:textColorSecondary">@color/text_secondary_monet</item>
|
||||||
|
</style>
|
||||||
|
</resources>
|
|
@ -1,5 +1,5 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<resources>
|
<resources xmlns:tools="http://schemas.android.com/tools">
|
||||||
<color name="splash">@color/accent_blue</color>
|
<color name="splash">@color/accent_blue</color>
|
||||||
|
|
||||||
<!-- Default Theme -->
|
<!-- Default Theme -->
|
||||||
|
@ -9,6 +9,17 @@
|
||||||
<color name="background_default">@color/md_grey_50</color>
|
<color name="background_default">@color/md_grey_50</color>
|
||||||
<color name="ripple_colored_default">@color/md_blue_A400_12</color>
|
<color name="ripple_colored_default">@color/md_blue_A400_12</color>
|
||||||
|
|
||||||
|
<!-- Monet Theme -->
|
||||||
|
<color name="accent_monet" tools:targetApi="31">@android:color/system_accent1_600</color>
|
||||||
|
<color name="on_accent_monet" tools:targetApi="31">@android:color/system_accent1_10</color>
|
||||||
|
<color name="divider_monet" tools:targetApi="31">@android:color/system_neutral1_200</color>
|
||||||
|
<color name="tertiary_monet" tools:targetApi="31">@android:color/system_accent3_600</color>
|
||||||
|
<color name="on_tertiary_monet" tools:targetApi="31">@android:color/system_accent3_10</color>
|
||||||
|
<color name="surface_monet" tools:targetApi="31">@android:color/system_neutral1_50</color>
|
||||||
|
<color name="on_surface_monet" tools:targetApi="31">@android:color/system_neutral1_900</color>
|
||||||
|
<color name="background_monet" tools:targetApi="31">@color/surface_monet</color>
|
||||||
|
<color name="on_background_monet" tools:targetApi="31">@color/on_surface_monet</color>
|
||||||
|
|
||||||
<!-- Blue Theme -->
|
<!-- Blue Theme -->
|
||||||
<color name="accent_blue">#54759E</color>
|
<color name="accent_blue">#54759E</color>
|
||||||
<color name="ripple_colored_blue">#1F54759E</color>
|
<color name="ripple_colored_blue">#1F54759E</color>
|
||||||
|
|
|
@ -148,6 +148,7 @@
|
||||||
<string name="theme_dark">On</string>
|
<string name="theme_dark">On</string>
|
||||||
<string name="pref_app_theme">App theme</string>
|
<string name="pref_app_theme">App theme</string>
|
||||||
<string name="theme_default">Default</string>
|
<string name="theme_default">Default</string>
|
||||||
|
<string name="theme_monet">Dynamic</string>
|
||||||
<string name="theme_blue">Blue</string>
|
<string name="theme_blue">Blue</string>
|
||||||
<string name="theme_greenapple">Green Apple</string>
|
<string name="theme_greenapple">Green Apple</string>
|
||||||
<string name="theme_midnightdusk">Midnight Dusk</string>
|
<string name="theme_midnightdusk">Midnight Dusk</string>
|
||||||
|
|
|
@ -74,6 +74,9 @@
|
||||||
<!--== Default Theme ==-->
|
<!--== Default Theme ==-->
|
||||||
<style name="Theme.Tachiyomi" parent="Base.Theme.Tachiyomi" />
|
<style name="Theme.Tachiyomi" parent="Base.Theme.Tachiyomi" />
|
||||||
|
|
||||||
|
<!-- Monet theme only support S+ -->
|
||||||
|
<style name="Theme.Tachiyomi.Monet" />
|
||||||
|
|
||||||
<!--== Blue Theme ==-->
|
<!--== Blue Theme ==-->
|
||||||
<style name="Theme.Tachiyomi.Blue">
|
<style name="Theme.Tachiyomi.Blue">
|
||||||
<!-- Theme Colors -->
|
<!-- Theme Colors -->
|
||||||
|
|
Loading…
Reference in a new issue