Update themes inheritance structure

This commit is contained in:
Koitharu
2025-05-08 21:16:06 +03:00
parent 4fcb3a969b
commit f5514728fe
12 changed files with 45 additions and 161 deletions

View File

@@ -52,8 +52,8 @@
android:hasFragileUserData="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:localeConfig="@xml/locales_config"
android:largeHeap="true"
android:localeConfig="@xml/locales_config"
android:networkSecurityConfig="@xml/network_security_config"
android:requestLegacyExternalStorage="true"
android:roundIcon="@mipmap/ic_launcher_round"

View File

@@ -13,14 +13,15 @@ enum class ColorScheme(
@StringRes val titleResId: Int,
) {
DEFAULT(R.style.Theme_Kotatsu, R.string.system_default),
MONET(R.style.Theme_Kotatsu_Monet, R.string.theme_name_dynamic),
MIKU(R.style.Theme_Kotatsu_Miku, R.string.theme_name_miku),
RENA(R.style.Theme_Kotatsu_Asuka, R.string.theme_name_asuka),
FROG(R.style.Theme_Kotatsu_Mion, R.string.theme_name_mion),
BLUEBERRY(R.style.Theme_Kotatsu_Rikka, R.string.theme_name_rikka),
NAME2(R.style.Theme_Kotatsu_Sakura, R.string.theme_name_sakura),
MAMIMI(R.style.Theme_Kotatsu_Mamimi, R.string.theme_name_mamimi),
DEFAULT(R.style.ThemeOverlay_Kotatsu, R.string.system_default),
MONET(R.style.ThemeOverlay_Kotatsu_Monet, R.string.theme_name_dynamic),
EXPRESSIVE(R.style.ThemeOverlay_Kotatsu_Expressive, R.string.theme_name_dynamic_v2),
MIKU(R.style.ThemeOverlay_Kotatsu_Miku, R.string.theme_name_miku),
RENA(R.style.ThemeOverlay_Kotatsu_Asuka, R.string.theme_name_asuka),
FROG(R.style.ThemeOverlay_Kotatsu_Mion, R.string.theme_name_mion),
BLUEBERRY(R.style.ThemeOverlay_Kotatsu_Rikka, R.string.theme_name_rikka),
NAME2(R.style.ThemeOverlay_Kotatsu_Sakura, R.string.theme_name_sakura),
MAMIMI(R.style.ThemeOverlay_Kotatsu_Mamimi, R.string.theme_name_mamimi),
KANADE(R.style.Theme_Kotatsu_Kanade, R.string.theme_name_kanade)
;

View File

@@ -8,7 +8,7 @@
android:background="?selectableItemBackground"
android:orientation="vertical"
android:padding="6dp"
tools:theme="@style/Theme.Kotatsu.Miku">
tools:theme="@style/ThemeOverlay.Kotatsu.Miku">
<com.google.android.material.card.MaterialCardView
android:id="@+id/card"
@@ -88,7 +88,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:elegantTextHeight="false"
android:ellipsize="end"
android:ellipsize="middle"
android:paddingTop="4dp"
android:singleLine="true"
android:textAppearance="?attr/textAppearanceTitleSmall"

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- Colored themes -->
<style name="Theme.Kotatsu.Miku">
<style name="ThemeOverlay.Kotatsu.Miku">
<item name="colorPrimary">#50DBCF</item>
<item name="colorPrimaryContainer">#00504A</item>
<item name="colorOnPrimary">#003733</item>
@@ -38,7 +38,7 @@
<item name="colorOutlineVariant">#3F4947</item>
</style>
<style name="Theme.Kotatsu.Asuka">
<style name="ThemeOverlay.Kotatsu.Asuka">
<item name="colorPrimary">#FFB3AF</item>
<item name="colorPrimaryContainer">#930018</item>
<item name="colorOnPrimary">#68000E</item>
@@ -75,7 +75,7 @@
<item name="colorOutlineVariant">#534342</item>
</style>
<style name="Theme.Kotatsu.Mion">
<style name="ThemeOverlay.Kotatsu.Mion">
<item name="colorPrimary">#70DBA8</item>
<item name="colorPrimaryContainer">#005236</item>
<item name="colorOnPrimary">#003824</item>
@@ -112,7 +112,7 @@
<item name="colorOutlineVariant">#404943</item>
</style>
<style name="Theme.Kotatsu.Rikka">
<style name="ThemeOverlay.Kotatsu.Rikka">
<item name="colorPrimary">#FFB3B6</item>
<item name="colorPrimaryContainer">#7D2933</item>
<item name="colorOnPrimary">#5F121E</item>
@@ -149,7 +149,7 @@
<item name="colorOutlineVariant">#524343</item>
</style>
<style name="Theme.Kotatsu.Sakura">
<style name="ThemeOverlay.Kotatsu.Sakura">
<item name="colorPrimary">#B2EBFF</item>
<item name="colorPrimaryContainer">#004E5E</item>
<item name="colorOnPrimary">#001F27</item>
@@ -186,7 +186,7 @@
<item name="colorOutlineVariant">#40484B</item>
</style>
<style name="Theme.Kotatsu.Mamimi">
<style name="ThemeOverlay.Kotatsu.Mamimi">
<item name="colorPrimary">#FFB2B7</item>
<item name="colorPrimaryContainer">#7D2935</item>
<item name="colorOnPrimary">#5F1220</item>

View File

@@ -7,70 +7,6 @@
<item name="android:windowSplashScreenBackground">@color/m3_sys_color_dynamic_dark_surface</item>
</style>
<!-- From ThemeOverlay.Material3.DynamicColors.Dark -->
<style name="Theme.Kotatsu.Monet">
<item name="isMaterial3DynamicColorApplied">true</item>
<item name="colorPrimary">@color/m3_sys_color_dynamic_dark_primary</item>
<item name="colorOnPrimary">@color/m3_sys_color_dynamic_dark_on_primary</item>
<item name="colorPrimaryInverse">@color/m3_sys_color_dynamic_dark_inverse_primary</item>
<item name="colorPrimaryContainer">@color/m3_sys_color_dynamic_dark_primary_container</item>
<item name="colorOnPrimaryContainer">@color/m3_sys_color_dynamic_dark_on_primary_container</item>
<item name="colorPrimaryFixed">@color/m3_sys_color_dynamic_primary_fixed</item>
<item name="colorPrimaryFixedDim">@color/m3_sys_color_dynamic_primary_fixed_dim</item>
<item name="colorOnPrimaryFixed">@color/m3_sys_color_dynamic_on_primary_fixed</item>
<item name="colorOnPrimaryFixedVariant">@color/m3_sys_color_dynamic_on_primary_fixed_variant</item>
<item name="colorSecondary">@color/m3_sys_color_dynamic_dark_secondary</item>
<item name="colorOnSecondary">@color/m3_sys_color_dynamic_dark_on_secondary</item>
<item name="colorSecondaryContainer">@color/m3_sys_color_dynamic_dark_secondary_container</item>
<item name="colorOnSecondaryContainer">@color/m3_sys_color_dynamic_dark_on_secondary_container</item>
<item name="colorSecondaryFixed">@color/m3_sys_color_dynamic_secondary_fixed</item>
<item name="colorSecondaryFixedDim">@color/m3_sys_color_dynamic_secondary_fixed_dim</item>
<item name="colorOnSecondaryFixed">@color/m3_sys_color_dynamic_on_secondary_fixed</item>
<item name="colorOnSecondaryFixedVariant">@color/m3_sys_color_dynamic_on_secondary_fixed_variant</item>
<item name="colorTertiary">@color/m3_sys_color_dynamic_dark_tertiary</item>
<item name="colorOnTertiary">@color/m3_sys_color_dynamic_dark_on_tertiary</item>
<item name="colorTertiaryContainer">@color/m3_sys_color_dynamic_dark_tertiary_container</item>
<item name="colorOnTertiaryContainer">@color/m3_sys_color_dynamic_dark_on_tertiary_container</item>
<item name="colorTertiaryFixed">@color/m3_sys_color_dynamic_tertiary_fixed</item>
<item name="colorTertiaryFixedDim">@color/m3_sys_color_dynamic_tertiary_fixed_dim</item>
<item name="colorOnTertiaryFixed">@color/m3_sys_color_dynamic_on_tertiary_fixed</item>
<item name="colorOnTertiaryFixedVariant">@color/m3_sys_color_dynamic_on_tertiary_fixed_variant</item>
<item name="android:colorBackground">@color/m3_sys_color_dynamic_dark_background</item>
<item name="colorOnBackground">@color/m3_sys_color_dynamic_dark_on_background</item>
<item name="colorSurface">@color/m3_sys_color_dynamic_dark_surface</item>
<item name="colorOnSurface">@color/m3_sys_color_dynamic_dark_on_surface</item>
<item name="colorSurfaceVariant">@color/m3_sys_color_dynamic_dark_surface_variant</item>
<item name="colorOnSurfaceVariant">@color/m3_sys_color_dynamic_dark_on_surface_variant</item>
<item name="colorSurfaceInverse">@color/m3_sys_color_dynamic_dark_inverse_surface</item>
<item name="colorOnSurfaceInverse">@color/m3_sys_color_dynamic_dark_inverse_on_surface</item>
<item name="colorSurfaceBright">@color/m3_sys_color_dynamic_dark_surface_bright</item>
<item name="colorSurfaceDim">@color/m3_sys_color_dynamic_dark_surface_dim</item>
<item name="colorSurfaceContainer">@color/m3_sys_color_dynamic_dark_surface_container</item>
<item name="colorSurfaceContainerLow">@color/m3_sys_color_dynamic_dark_surface_container_low</item>
<item name="colorSurfaceContainerHigh">@color/m3_sys_color_dynamic_dark_surface_container_high</item>
<item name="colorSurfaceContainerLowest">@color/m3_sys_color_dynamic_dark_surface_container_lowest</item>
<item name="colorSurfaceContainerHighest">@color/m3_sys_color_dynamic_dark_surface_container_highest</item>
<item name="colorOutline">@color/m3_sys_color_dynamic_dark_outline</item>
<item name="colorOutlineVariant">@color/m3_sys_color_dynamic_dark_outline_variant</item>
<item name="colorError">@color/material_dynamic_color_dark_error</item>
<item name="colorOnError">@color/material_dynamic_color_dark_on_error</item>
<item name="colorErrorContainer">@color/material_dynamic_color_dark_error_container</item>
<item name="colorOnErrorContainer">@color/material_dynamic_color_dark_on_error_container</item>
<item name="android:textColorPrimary">@color/m3_dynamic_dark_default_color_primary_text</item>
<item name="android:textColorPrimaryInverse">@color/m3_dynamic_default_color_primary_text</item>
<item name="android:textColorSecondary">@color/m3_dynamic_dark_default_color_secondary_text</item>
<item name="android:textColorSecondaryInverse">@color/m3_dynamic_default_color_secondary_text</item>
<item name="android:textColorTertiary">@color/m3_dynamic_dark_default_color_secondary_text</item>
<item name="android:textColorTertiaryInverse">@color/m3_dynamic_default_color_secondary_text</item>
<item name="android:textColorPrimaryDisableOnly">@color/m3_dynamic_dark_primary_text_disable_only</item>
<item name="android:textColorPrimaryInverseDisableOnly">@color/m3_dynamic_primary_text_disable_only</item>
<item name="android:textColorHint">@color/m3_dynamic_dark_hint_foreground</item>
<item name="android:textColorHintInverse">@color/m3_dynamic_hint_foreground</item>
<item name="android:textColorHighlight">@color/m3_dynamic_dark_highlighted_text</item>
<item name="android:textColorHighlightInverse">@color/m3_dynamic_highlighted_text</item>
<item name="android:textColorAlertDialogListItem">@color/m3_dynamic_dark_default_color_primary_text</item>
</style>
<style name="Theme.Kotatsu.AppWidgetContainer" parent="@android:style/Theme.DeviceDefault.DayNight">
<item name="android:colorBackground">@color/m3_ref_palette_dynamic_secondary20</item>
<item name="android:panelColorBackground">@color/m3_ref_palette_dynamic_secondary40</item>

View File

@@ -10,4 +10,7 @@
<item name="android:colorBackground">@color/background_amoled</item>
</style>
<!-- Monet theme only support S+ -->
<style name="ThemeOverlay.Kotatsu.Monet" parent="ThemeOverlay.Material3.DynamicColors.Dark" />
</resources>

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- Colored themes -->
<style name="Theme.Kotatsu.Miku">
<style name="ThemeOverlay.Kotatsu.Miku">
<item name="colorPrimary">#006A63</item>
<item name="colorPrimaryContainer">#72F7EB</item>
<item name="colorOnPrimary">#FFFFFF</item>
@@ -38,7 +38,7 @@
<item name="colorOutlineVariant">#BEC9C6</item>
</style>
<style name="Theme.Kotatsu.Asuka">
<style name="ThemeOverlay.Kotatsu.Asuka">
<item name="colorPrimary">#BA1928</item>
<item name="colorPrimaryContainer">#FFDAD7</item>
<item name="colorOnPrimary">#FFFFFF</item>
@@ -75,7 +75,7 @@
<item name="colorOutlineVariant">#D8C1C0</item>
</style>
<style name="Theme.Kotatsu.Mion">
<style name="ThemeOverlay.Kotatsu.Mion">
<item name="colorPrimary">#006C48</item>
<item name="colorPrimaryContainer">#8CF7C2</item>
<item name="colorOnPrimary">#FFFFFF</item>
@@ -112,7 +112,7 @@
<item name="colorOutlineVariant">#C0C9C1</item>
</style>
<style name="Theme.Kotatsu.Rikka">
<style name="ThemeOverlay.Kotatsu.Rikka">
<item name="colorPrimary">#5954A8</item>
<item name="colorPrimaryContainer">#E3DFFF</item>
<item name="colorOnPrimary">#FFFFFF</item>
@@ -149,7 +149,7 @@
<item name="colorOutlineVariant">#C8C5D0</item>
</style>
<style name="Theme.Kotatsu.Sakura">
<style name="ThemeOverlay.Kotatsu.Sakura">
<item name="colorPrimary">#B31A62</item>
<item name="colorPrimaryContainer">#FFD9E2</item>
<item name="colorOnPrimary">#FFFFFF</item>
@@ -186,7 +186,7 @@
<item name="colorOutlineVariant">#D5C2C6</item>
</style>
<style name="Theme.Kotatsu.Mamimi">
<style name="ThemeOverlay.Kotatsu.Mamimi">
<item name="colorPrimary">#9C404B</item>
<item name="colorPrimaryContainer">#FFDADB</item>
<item name="colorOnPrimary">#FFFFFF</item>

View File

@@ -9,70 +9,6 @@
<style name="Theme.Kotatsu" parent="Base.V31.Kotatsu" />
<!-- From ThemeOverlay.Material3.DynamicColors.Light -->
<style name="Theme.Kotatsu.Monet">
<item name="isMaterial3DynamicColorApplied">true</item>
<item name="colorPrimary">@color/m3_sys_color_dynamic_light_primary</item>
<item name="colorOnPrimary">@color/m3_sys_color_dynamic_light_on_primary</item>
<item name="colorPrimaryInverse">@color/m3_sys_color_dynamic_light_inverse_primary</item>
<item name="colorPrimaryContainer">@color/m3_sys_color_dynamic_light_primary_container</item>
<item name="colorOnPrimaryContainer">@color/m3_sys_color_dynamic_light_on_primary_container</item>
<item name="colorPrimaryFixed">@color/m3_sys_color_dynamic_primary_fixed</item>
<item name="colorPrimaryFixedDim">@color/m3_sys_color_dynamic_primary_fixed_dim</item>
<item name="colorOnPrimaryFixed">@color/m3_sys_color_dynamic_on_primary_fixed</item>
<item name="colorOnPrimaryFixedVariant">@color/m3_sys_color_dynamic_on_primary_fixed_variant</item>
<item name="colorSecondary">@color/m3_sys_color_dynamic_light_secondary</item>
<item name="colorOnSecondary">@color/m3_sys_color_dynamic_light_on_secondary</item>
<item name="colorSecondaryContainer">@color/m3_sys_color_dynamic_light_secondary_container</item>
<item name="colorOnSecondaryContainer">@color/m3_sys_color_dynamic_light_on_secondary_container</item>
<item name="colorSecondaryFixed">@color/m3_sys_color_dynamic_secondary_fixed</item>
<item name="colorSecondaryFixedDim">@color/m3_sys_color_dynamic_secondary_fixed_dim</item>
<item name="colorOnSecondaryFixed">@color/m3_sys_color_dynamic_on_secondary_fixed</item>
<item name="colorOnSecondaryFixedVariant">@color/m3_sys_color_dynamic_on_secondary_fixed_variant</item>
<item name="colorTertiary">@color/m3_sys_color_dynamic_light_tertiary</item>
<item name="colorOnTertiary">@color/m3_sys_color_dynamic_light_on_tertiary</item>
<item name="colorTertiaryContainer">@color/m3_sys_color_dynamic_light_tertiary_container</item>
<item name="colorOnTertiaryContainer">@color/m3_sys_color_dynamic_light_on_tertiary_container</item>
<item name="colorTertiaryFixed">@color/m3_sys_color_dynamic_tertiary_fixed</item>
<item name="colorTertiaryFixedDim">@color/m3_sys_color_dynamic_tertiary_fixed_dim</item>
<item name="colorOnTertiaryFixed">@color/m3_sys_color_dynamic_on_tertiary_fixed</item>
<item name="colorOnTertiaryFixedVariant">@color/m3_sys_color_dynamic_on_tertiary_fixed_variant</item>
<item name="android:colorBackground">@color/m3_sys_color_dynamic_light_background</item>
<item name="colorOnBackground">@color/m3_sys_color_dynamic_light_on_background</item>
<item name="colorSurface">@color/m3_sys_color_dynamic_light_surface</item>
<item name="colorOnSurface">@color/m3_sys_color_dynamic_light_on_surface</item>
<item name="colorSurfaceVariant">@color/m3_sys_color_dynamic_light_surface_variant</item>
<item name="colorOnSurfaceVariant">@color/m3_sys_color_dynamic_light_on_surface_variant</item>
<item name="colorSurfaceInverse">@color/m3_sys_color_dynamic_light_inverse_surface</item>
<item name="colorOnSurfaceInverse">@color/m3_sys_color_dynamic_light_inverse_on_surface</item>
<item name="colorSurfaceBright">@color/m3_sys_color_dynamic_light_surface_bright</item>
<item name="colorSurfaceDim">@color/m3_sys_color_dynamic_light_surface_dim</item>
<item name="colorSurfaceContainer">@color/m3_sys_color_dynamic_light_surface_container</item>
<item name="colorSurfaceContainerLow">@color/m3_sys_color_dynamic_light_surface_container_low</item>
<item name="colorSurfaceContainerHigh">@color/m3_sys_color_dynamic_light_surface_container_high</item>
<item name="colorSurfaceContainerLowest">@color/m3_sys_color_dynamic_light_surface_container_lowest</item>
<item name="colorSurfaceContainerHighest">@color/m3_sys_color_dynamic_light_surface_container_highest</item>
<item name="colorOutline">@color/m3_sys_color_dynamic_light_outline</item>
<item name="colorOutlineVariant">@color/m3_sys_color_dynamic_light_outline_variant</item>
<item name="colorError">@color/material_dynamic_color_light_error</item>
<item name="colorOnError">@color/material_dynamic_color_light_on_error</item>
<item name="colorErrorContainer">@color/material_dynamic_color_light_error_container</item>
<item name="colorOnErrorContainer">@color/material_dynamic_color_light_on_error_container</item>
<item name="android:textColorPrimary">@color/m3_dynamic_default_color_primary_text</item>
<item name="android:textColorPrimaryInverse">@color/m3_dynamic_dark_default_color_primary_text</item>
<item name="android:textColorSecondary">@color/m3_dynamic_default_color_secondary_text</item>
<item name="android:textColorSecondaryInverse">@color/m3_dynamic_dark_default_color_secondary_text</item>
<item name="android:textColorTertiary">@color/m3_dynamic_default_color_secondary_text</item>
<item name="android:textColorTertiaryInverse">@color/m3_dynamic_dark_default_color_secondary_text</item>
<item name="android:textColorPrimaryDisableOnly">@color/m3_dynamic_primary_text_disable_only</item>
<item name="android:textColorPrimaryInverseDisableOnly">@color/m3_dynamic_dark_primary_text_disable_only</item>
<item name="android:textColorHint">@color/m3_dynamic_hint_foreground</item>
<item name="android:textColorHintInverse">@color/m3_dynamic_dark_hint_foreground</item>
<item name="android:textColorHighlight">@color/m3_dynamic_highlighted_text</item>
<item name="android:textColorHighlightInverse">@color/m3_dynamic_dark_highlighted_text</item>
<item name="android:textColorAlertDialogListItem">@color/m3_dynamic_default_color_primary_text</item>
</style>
<style name="Theme.Kotatsu.AppWidgetContainer" parent="@android:style/Theme.DeviceDefault.DayNight">
<item name="android:colorBackground">@color/m3_ref_palette_dynamic_secondary95</item>
<item name="android:panelColorBackground">@color/m3_ref_palette_dynamic_secondary90</item>

View File

@@ -1,15 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="Theme.Kotatsu.Miku" />
<style name="ThemeOverlay.Kotatsu.Miku" />
<style name="Theme.Kotatsu.Asuka" />
<style name="ThemeOverlay.Kotatsu.Asuka" />
<style name="Theme.Kotatsu.Mion" />
<style name="ThemeOverlay.Kotatsu.Mion" />
<style name="Theme.Kotatsu.Rikka" />
<style name="ThemeOverlay.Kotatsu.Rikka" />
<style name="Theme.Kotatsu.Sakura" />
<style name="ThemeOverlay.Kotatsu.Sakura" />
<style name="Theme.Kotatsu.Mamimi" />
<style name="ThemeOverlay.Kotatsu.Mamimi" />
</resources>

View File

@@ -353,6 +353,7 @@
<string name="enable_logging_summary">Record some actions for debug purposes. Don\'t turn it on if you\'re not sure what you\'re doing</string>
<string name="show_suspicious_content">Show suspicious content</string>
<string name="theme_name_dynamic">Dynamic</string>
<string name="theme_name_dynamic_v2">Dynamic V2</string>
<string name="color_theme">Color scheme</string>
<string name="show_in_grid_view">Show in grid view</string>
<string name="theme_name_miku">Miku</string>

View File

@@ -100,13 +100,20 @@
<!--== Default Theme ==-->
<style name="Theme.Kotatsu" parent="Base.Theme.Kotatsu" />
<!-- Monet theme only support S+ -->
<style name="Theme.Kotatsu.Monet" />
<!-- Base ThemeOverlay -->
<style name="ThemeOverlay.Kotatsu" parent="ThemeOverlay.Material3.Light" />
<!-- Monet theme only support S+ -->
<style name="ThemeOverlay.Kotatsu.Monet" parent="ThemeOverlay.Material3.DynamicColors.Light" />
<!-- Expressive Monet theme (Light variant) -->
<style name="ThemeOverlay.Kotatsu.Expressive" parent="Theme.Material3Expressive.DynamicColors.DayNight.NoActionBar" />
<!-- Changes only for night -->
<style name="ThemeOverlay.Kotatsu.Amoled" parent="" />
<!-- App Widgets -->
<style name="Theme.Kotatsu.AppWidgetContainer" parent="@style/Theme.MaterialComponents.Light">
<item name="android:colorBackground">@color/kotatsu_background</item>
<item name="android:panelColorBackground">@color/kotatsu_primaryContainer</item>