Android: App redesign with multi-theme system

This commit is contained in:
Charles Lombardo committed 2022-08-31 18:01:15 -04:00
1 parent 9195e1a9b8
commit 940a38f172
91 files changed
+1707 -1004

No files matched your search

@@ -479,6 +479,34 @@
<item>-1</item>
</integer-array>
<!-- Monet must always have a value exclusive to >= API 31 -->
<string-array name="themeEntries">
<item>Default</item>
<item>Material Default</item>
<item>Green</item>
<item>Pink</item>
</string-array>
<integer-array name="themeValues">
<item>0</item>
<item>2</item>
<item>3</item>
<item>4</item>
</integer-array>
<string-array name="themeEntriesA12">
<item>Default</item>
<item>Material You</item>
<item>Material Default</item>
<item>Green</item>
<item>Pink</item>
</string-array>
<integer-array name="themeValuesA12">
<item>0</item>
<item>1</item>
<item>2</item>
<item>3</item>
<item>4</item>
</integer-array>
<string-array name="synchronizeGpuThreadEntries">
<item>Never</item>
<item>On Idle Skipping</item>
@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<bool name="lightStatusBar">true</bool>
</resources>
@@ -1,12 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="dolphin_blue">#2196f3</color>
<color name="dolphin_blue_secondary">#21b0f3</color>
<color name="dolphin_white">#ffffff</color>
<color name="dolphin_surface">#FDFCFF</color>
<color name="tv_card_unselected">#444444</color>
<color name="invalid_setting_overlay">#36ff0000</color>
</resources>
@@ -0,0 +1,42 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- Generated by https://material-foundation.github.io/material-theme-builder/ -->
<color name="dolphin_primary">#2196f3</color>
<color name="dolphin_onPrimary">#FFFFFF</color>
<color name="dolphin_primaryContainer">#D1E4FF</color>
<color name="dolphin_onPrimaryContainer">#001D36</color>
<color name="dolphin_secondary">#535F70</color>
<color name="dolphin_onSecondary">#FFFFFF</color>
<color name="dolphin_secondaryContainer">#D7E3F7</color>
<color name="dolphin_onSecondaryContainer">#101C2B</color>
<color name="dolphin_tertiary">#6B5778</color>
<color name="dolphin_onTertiary">#FFFFFF</color>
<color name="dolphin_tertiaryContainer">#F2DAFF</color>
<color name="dolphin_onTertiaryContainer">#251431</color>
<color name="dolphin_error">#BA1A1A</color>
<color name="dolphin_errorContainer">#FFDAD6</color>
<color name="dolphin_onError">#FFFFFF</color>
<color name="dolphin_onErrorContainer">#410002</color>
<color name="dolphin_background">#FDFCFF</color>
<color name="dolphin_onBackground">#1A1C1E</color>
<color name="dolphin_surface">#FDFCFF</color>
<color name="dolphin_onSurface">#1A1C1E</color>
<color name="dolphin_surfaceVariant">#DFE2EB</color>
<color name="dolphin_onSurfaceVariant">#43474E</color>
<color name="dolphin_outline">#73777F</color>
<color name="dolphin_inverseOnSurface">#F1F0F4</color>
<color name="dolphin_inverseSurface">#2F3033</color>
<color name="dolphin_inversePrimary">#9ECAFF</color>
<color name="dolphin_shadow">#000000</color>
<color name="dolphin_blue">#2196f3</color>
<color name="dolphin_filepicker">#2196f3</color>
<color name="dolphin_accent_wii">#9e9e9e</color>
<color name="dolphin_accent_wiiware">#2979ff</color>
<color name="tv_card_unselected">#444444</color>
<color name="invalid_setting_overlay">#36ff0000</color>
</resources>
@@ -0,0 +1,29 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- Generated by https://material-foundation.github.io/material-theme-builder/ -->
<color name="green_primary">#006C49</color>
<color name="green_onPrimary">#FFFFFF</color>
<color name="green_primaryContainer">#8CF7C3</color>
<color name="green_onPrimaryContainer">#002113</color>
<color name="green_secondary">#4D6356</color>
<color name="green_onSecondary">#FFFFFF</color>
<color name="green_secondaryContainer">#D0E8D8</color>
<color name="green_onSecondaryContainer">#0A1F15</color>
<color name="green_tertiary">#3D6472</color>
<color name="green_onTertiary">#FFFFFF</color>
<color name="green_tertiaryContainer">#C0E9FA</color>
<color name="green_onTertiaryContainer">#001F28</color>
<color name="green_errorContainer">#FFDAD6</color>
<color name="green_onError">#FFFFFF</color>
<color name="green_onErrorContainer">#410002</color>
<color name="green_background">#FBFDF8</color>
<color name="green_onBackground">#191C1A</color>
<color name="green_surface">#FBFDF8</color>
<color name="green_onSurface">#191C1A</color>
<color name="green_surfaceVariant">#DCE5DD</color>
<color name="green_onSurfaceVariant">#404943</color>
<color name="green_outline">#707973</color>
<color name="green_inverseOnSurface">#EFF1ED</color>
<color name="green_inverseSurface">#2E312F</color>
<color name="green_inversePrimary">#70DBA8</color>
</resources>
@@ -0,0 +1,29 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- Generated by https://material-foundation.github.io/material-theme-builder/ -->
<color name="pink_primary">#B5195B</color>
<color name="pink_onPrimary">#FFFFFF</color>
<color name="pink_primaryContainer">#FFD9E1</color>
<color name="pink_onPrimaryContainer">#3F001A</color>
<color name="pink_secondary">#75565D</color>
<color name="pink_onSecondary">#FFFFFF</color>
<color name="pink_secondaryContainer">#FFD9E1</color>
<color name="pink_onSecondaryContainer">#2B151B</color>
<color name="pink_tertiary">#7B5733</color>
<color name="pink_onTertiary">#FFFFFF</color>
<color name="pink_tertiaryContainer">#FFDCBF</color>
<color name="pink_onTertiaryContainer">#2D1600</color>
<color name="pink_errorContainer">#FFDAD6</color>
<color name="pink_onError">#FFFFFF</color>
<color name="pink_onErrorContainer">#410002</color>
<color name="pink_background">#FFFBFF</color>
<color name="pink_onBackground">#201A1B</color>
<color name="pink_surface">#FFFBFF</color>
<color name="pink_onSurface">#201A1B</color>
<color name="pink_surfaceVariant">#F3DDE1</color>
<color name="pink_onSurfaceVariant">#514346</color>
<color name="pink_outline">#847376</color>
<color name="pink_inverseOnSurface">#FAEEEF</color>
<color name="pink_inverseSurface">#352F30</color>
<color name="pink_inversePrimary">#FFB1C4</color>
</resources>
@@ -195,6 +195,7 @@
<string name="download_game_covers">Download Game Covers from GameTDB.com</string>
<string name="show_titles_in_game_list">Show Titles in Game List</string>
<string name="show_titles_in_game_list_description">Show the title and creator below each game cover.</string>
<string name="change_theme">Change App Theme</string>
<!-- Online Update Region Select Fragment -->
<string name="region_select_title">Please select a region</string>
@@ -563,8 +564,8 @@ It can efficiently compress both junk data and encrypted Wii data.
<string name="emulation_done">Done</string>
<string name="emulation_toggle_controls">Toggle Controls</string>
<string name="emulation_toggle_all">Toggle All</string>
<string name="emulation_control_scale">Adjust Scale</string>
<string name="emulation_control_opacity">Adjust Opacity</string>
<string name="emulation_control_scale">Scale</string>
<string name="emulation_control_opacity">Opacity</string>
<string name="emulation_control_adjustments">Adjust Controls</string>
<string name="emulation_control_joystick_rel_center">Relative Stick Center</string>
<string name="emulation_control_rumble">Rumble</string>
@@ -1,12 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="DolphinDialogBase" parent="Theme.Material3.DayNight.Dialog.Alert">
<item name="colorSurface">@color/dolphin_blue</item>
<item name="colorPrimary">@color/dolphin_blue</item>
<item name="colorPrimaryDark">@color/dolphin_blue</item>
<item name="colorAccent">@color/dolphin_blue_secondary</item>
</style>
<!-- Hax to make Tablayout render icons -->
<style name="MyCustomTextAppearance" parent="TextAppearance.Design.Tab">
<item name="textAllCaps">false</item>
@@ -14,9 +7,9 @@
<!-- Custom button styles -->
<style name="InGameMenuOption" parent="Widget.Material3.Button.TextButton">
<item name="android:textColor">?attr/colorOnSurface</item>
<item name="android:textSize">16sp</item>
<item name="android:fontFamily">sans-serif-condensed</item>
<item name="android:textColor">@android:color/white</item>
<item name="android:textAllCaps">false</item>
<item name="android:layout_width">match_parent</item>
<item name="android:layout_height">48dp</item>
@@ -24,13 +17,39 @@
<item name="android:paddingLeft">32dp</item>
<item name="android:paddingRight">32dp</item>
<item name="android:layout_margin">0dp</item>
<item name="rippleColor">@color/dolphin_blue_secondary</item>
</style>
<style name="OverlayInGameMenuOption" parent="InGameMenuOption">
<item name="android:textColor">@color/button_text_color</item>
<item name="android:padding">8dp</item>
<item name="android:gravity">center</item>
<item name="android:layout_gravity">center</item>
</style>
<style name="DolphinMaterialDialog" parent="ThemeOverlay.Material3.MaterialAlertDialog">
<item name="colorPrimary">@color/dolphin_surface</item>
<item name="colorSurface">@color/dolphin_surface</item>
<item name="colorSecondary">@color/dolphin_primary</item>
<item name="buttonBarPositiveButtonStyle">@style/DolphinButton</item>
<item name="buttonBarNegativeButtonStyle">@style/DolphinButton</item>
<item name="buttonBarNeutralButtonStyle">@style/DolphinButton</item>
</style>
<style name="DolphinTVDialog" parent="Theme.Material3.DayNight.Dialog.Alert">
<item name="colorSurface">@color/dolphin_inverseOnSurface</item>
<item name="colorPrimary">@color/dolphin_primary</item>
</style>
<style name="DolphinButton" parent="Widget.Material3.Button.TextButton.Dialog">
<item name="android:textColor">@color/dolphin_primary</item>
<item name="rippleColor">@color/dolphin_secondary</item>
</style>
<style name="DolphinPopup" parent="ThemeOverlay.Material3">
<item name="colorPrimary">@color/dolphin_surface</item>
</style>
<style name="DolphinSlider" parent="Widget.Material3.Slider">
<item name="tickVisible">false</item>
<item name="labelBehavior">gone</item>
</style>
</resources>
+114 -31
View File
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<resources xmlns:tools="http://schemas.android.com/tools">
<style name="Theme.Dolphin.Splash.Main" parent="Theme.SplashScreen">
<item name="windowSplashScreenBackground">@color/dolphin_surface</item>
<item name="windowSplashScreenAnimatedIcon">@drawable/ic_dolphin</item>
@@ -14,55 +14,138 @@
<!-- Base theme -->
<style name="Theme.Dolphin.Main" parent="Theme.Material3.DayNight.NoActionBar">
<item name="colorSurface">@color/dolphin_blue</item>
<item name="colorPrimary">@color/dolphin_blue</item>
<item name="colorPrimaryDark">@color/dolphin_blue</item>
<item name="colorAccent">@color/dolphin_blue_secondary</item>
<item name="colorPrimary">@color/dolphin_primary</item>
<item name="colorOnPrimary">@color/dolphin_onPrimary</item>
<item name="colorPrimaryContainer">@color/dolphin_primary</item>
<item name="colorOnPrimaryContainer">@color/dolphin_onPrimary</item>
<item name="colorSecondary">@color/dolphin_secondary</item>
<item name="colorOnSecondary">@color/dolphin_onSecondary</item>
<item name="colorSecondaryContainer">@color/dolphin_secondaryContainer</item>
<item name="colorOnSecondaryContainer">@color/dolphin_onSecondaryContainer</item>
<item name="colorTertiary">@color/dolphin_tertiary</item>
<item name="colorOnTertiary">@color/dolphin_onTertiary</item>
<item name="colorTertiaryContainer">@color/dolphin_tertiaryContainer</item>
<item name="colorOnTertiaryContainer">@color/dolphin_onTertiaryContainer</item>
<item name="colorError">@color/dolphin_error</item>
<item name="colorErrorContainer">@color/dolphin_errorContainer</item>
<item name="colorOnError">@color/dolphin_onError</item>
<item name="colorOnErrorContainer">@color/dolphin_onErrorContainer</item>
<item name="android:colorBackground">@color/dolphin_background</item>
<item name="colorOnBackground">@color/dolphin_onBackground</item>
<item name="colorSurface">@color/dolphin_surface</item>
<item name="colorOnSurface">@color/dolphin_onSurface</item>
<item name="colorSurfaceVariant">@color/dolphin_surfaceVariant</item>
<item name="colorOnSurfaceVariant">@color/dolphin_onSurfaceVariant</item>
<item name="colorOutline">@color/dolphin_outline</item>
<item name="colorOnSurfaceInverse">@color/dolphin_inverseOnSurface</item>
<item name="colorSurfaceInverse">@color/dolphin_inverseSurface</item>
<item name="colorPrimaryInverse">@color/dolphin_inversePrimary</item>
<item name="android:shadowColor">@color/dolphin_shadow</item>
<item name="android:colorControlHighlight">?attr/colorAccent</item>
<item name="android:colorEdgeEffect">@color/dolphin_blue_secondary</item>
<item name="android:colorControlHighlight">@color/dolphin_secondary</item>
<item name="android:colorEdgeEffect">@color/dolphin_onSurfaceVariant</item>
<!-- Enable window content transitions -->
<item name="android:windowContentTransitions">true</item>
<item name="android:windowAllowEnterTransitionOverlap">true</item>
<item name="android:windowAllowReturnTransitionOverlap">true</item>
<!-- Global alert dialog style -->
<item name="alertDialogTheme">@style/DolphinDialogBase</item>
</style>
<style name="Theme.Dolphin.Settings" parent="Theme.Material3.DayNight">
<item name="colorSurface">@color/dolphin_blue</item>
<item name="colorPrimary">@color/dolphin_blue</item>
<item name="colorPrimaryDark">@color/dolphin_blue</item>
<item name="colorAccent">@color/dolphin_blue_secondary</item>
<item name="titleTextColor">@android:color/white</item>
<item name="homeAsUpIndicator">@drawable/ic_back</item>
<!-- Global alert dialog style -->
<item name="alertDialogTheme">@style/DolphinDialogBase</item>
<item name="android:windowLightStatusBar" tools:targetApi="m">@bool/lightStatusBar</item>
<item name="materialAlertDialogTheme">@style/DolphinMaterialDialog</item>
<item name="popupTheme">@style/DolphinPopup</item>
<item name="sliderStyle">@style/DolphinSlider</item>
</style>
<style name="Theme.Dolphin.Main.Emulation" parent="Theme.Dolphin.Main">
<item name="android:windowBackground">@android:color/black</item>
<style name="Theme.Dolphin.Main.Material" parent="Theme.Dolphin.Main">
<item name="colorPrimaryContainer">@color/dolphin_primaryContainer</item>
<item name="colorOnPrimaryContainer">@color/dolphin_onPrimaryContainer</item>
<item name="materialAlertDialogTheme">@style/ThemeOverlay.Material3.MaterialAlertDialog</item>
<item name="popupTheme">@style/ThemeOverlay.Material3</item>
</style>
<style name="Theme.Dolphin.Main.Green" parent="Theme.Dolphin.Main">
<item name="colorPrimary">@color/green_primary</item>
<item name="colorOnPrimary">@color/green_onPrimary</item>
<item name="colorPrimaryContainer">@color/green_primaryContainer</item>
<item name="colorOnPrimaryContainer">@color/green_onPrimaryContainer</item>
<item name="colorSecondary">@color/green_secondary</item>
<item name="colorOnSecondary">@color/green_onSecondary</item>
<item name="colorSecondaryContainer">@color/green_secondaryContainer</item>
<item name="colorOnSecondaryContainer">@color/green_onSecondaryContainer</item>
<item name="colorTertiary">@color/green_tertiary</item>
<item name="colorOnTertiary">@color/green_onTertiary</item>
<item name="colorTertiaryContainer">@color/green_tertiaryContainer</item>
<item name="colorOnTertiaryContainer">@color/green_onTertiaryContainer</item>
<item name="colorErrorContainer">@color/green_errorContainer</item>
<item name="colorOnError">@color/green_onError</item>
<item name="colorOnErrorContainer">@color/green_onErrorContainer</item>
<item name="android:colorBackground">@color/green_background</item>
<item name="colorOnBackground">@color/green_onBackground</item>
<item name="colorSurface">@color/green_surface</item>
<item name="colorOnSurface">@color/green_onSurface</item>
<item name="colorSurfaceVariant">@color/green_surfaceVariant</item>
<item name="colorOnSurfaceVariant">@color/green_onSurfaceVariant</item>
<item name="colorOutline">@color/green_outline</item>
<item name="colorOnSurfaceInverse">@color/green_inverseOnSurface</item>
<item name="colorSurfaceInverse">@color/green_inverseSurface</item>
<item name="colorPrimaryInverse">@color/green_inversePrimary</item>
<item name="android:colorControlHighlight">@color/green_onSurfaceVariant</item>
<item name="android:colorEdgeEffect">@color/green_secondary</item>
<item name="materialAlertDialogTheme">@style/ThemeOverlay.Material3.MaterialAlertDialog</item>
<item name="popupTheme">@style/ThemeOverlay.Material3</item>
</style>
<style name="Theme.Dolphin.Main.Pink" parent="Theme.Dolphin.Main">
<item name="colorPrimary">@color/pink_primary</item>
<item name="colorOnPrimary">@color/pink_onPrimary</item>
<item name="colorPrimaryContainer">@color/pink_primaryContainer</item>
<item name="colorOnPrimaryContainer">@color/pink_onPrimaryContainer</item>
<item name="colorSecondary">@color/pink_secondary</item>
<item name="colorOnSecondary">@color/pink_onSecondary</item>
<item name="colorSecondaryContainer">@color/pink_secondaryContainer</item>
<item name="colorOnSecondaryContainer">@color/pink_onSecondaryContainer</item>
<item name="colorTertiary">@color/pink_tertiary</item>
<item name="colorOnTertiary">@color/pink_onTertiary</item>
<item name="colorTertiaryContainer">@color/pink_tertiaryContainer</item>
<item name="colorOnTertiaryContainer">@color/pink_onTertiaryContainer</item>
<item name="colorErrorContainer">@color/pink_errorContainer</item>
<item name="colorOnError">@color/pink_onError</item>
<item name="colorOnErrorContainer">@color/pink_onErrorContainer</item>
<item name="android:colorBackground">@color/pink_background</item>
<item name="colorOnBackground">@color/pink_onBackground</item>
<item name="colorSurface">@color/pink_surface</item>
<item name="colorOnSurface">@color/pink_onSurface</item>
<item name="colorSurfaceVariant">@color/pink_surfaceVariant</item>
<item name="colorOnSurfaceVariant">@color/pink_onSurfaceVariant</item>
<item name="colorOutline">@color/pink_outline</item>
<item name="colorOnSurfaceInverse">@color/pink_inverseOnSurface</item>
<item name="colorSurfaceInverse">@color/pink_inverseSurface</item>
<item name="colorPrimaryInverse">@color/pink_inversePrimary</item>
<item name="android:colorControlHighlight">@color/pink_onSurfaceVariant</item>
<item name="android:colorEdgeEffect">@color/pink_secondary</item>
<item name="materialAlertDialogTheme">@style/ThemeOverlay.Material3.MaterialAlertDialog</item>
<item name="popupTheme">@style/ThemeOverlay.Material3</item>
</style>
<!-- Inherit from a base file picker theme that handles day/night -->
<style name="Theme.Dolphin.FilePicker" parent="FilePickerBaseTheme">
<item name="colorPrimary">@color/dolphin_blue</item>
<item name="colorPrimaryDark">@color/dolphin_blue</item>
<item name="colorAccent">@color/dolphin_blue_secondary</item>
<item name="colorPrimary">@color/dolphin_filepicker</item>
<item name="colorPrimaryDark">@color/dolphin_filepicker</item>
<item name="colorAccent">@color/dolphin_filepicker</item>
<!-- Setting a divider is entirely optional -->
<item name="nnf_list_item_divider">?android:attr/listDivider</item>
<!-- If you want to set a specific toolbar theme, do it here -->
<item name="nnf_toolbarTheme">@style/ThemeOverlay.Material3.Dark.ActionBar</item>
<!-- Global alert dialog style -->
<item name="alertDialogTheme">@style/DolphinDialogBase</item>
</style>
<style name="Theme.Dolphin.TV" parent="Theme.Leanback.Browse">
@@ -74,7 +157,7 @@
<!-- Use CustomTitleView as the leanback title view. -->
<item name="browseTitleViewLayout">@layout/titleview</item>
<!-- Global alert dialog style -->
<item name="alertDialogTheme">@style/DolphinDialogBase</item>
<!-- Global AlertDialog Theme -->
<item name="alertDialogTheme">@style/DolphinTVDialog</item>
</style>
</resources>