Android: Modernize theming system
themes.xml now contains a collection of colors, attributes, and styles. No visuals have changed, but this will allow for a more flexible theming system in the future for custom day/night/etc themes. This also removes a bunch of redundant code that can now be written as global styles and inherited themes.
This commit is contained in:
1 parent
c42392c565
commit
9b7c5a4458
23 files changed
+120
-145
No files matched your search
@@ -1,51 +1,10 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
|
||||
<!-- Inherit from the material theme -->
|
||||
<style name="DolphinBase" parent="Theme.Material3.DayNight.NoActionBar">
|
||||
<!-- Main theme colors -->
|
||||
<!-- Branding color for the app bar -->
|
||||
<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>
|
||||
|
||||
<!-- Enable window content transitions -->
|
||||
<item name="android:windowContentTransitions">true</item>
|
||||
<item name="android:windowAllowEnterTransitionOverlap">true</item>
|
||||
<item name="android:windowAllowReturnTransitionOverlap">true</item>
|
||||
|
||||
<item name="android:colorControlHighlight">?attr/colorAccent</item>
|
||||
</style>
|
||||
|
||||
<!-- Same as above, but use default action bar, and mandate margins. -->
|
||||
<style name="DolphinSettingsBase" 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>
|
||||
</style>
|
||||
|
||||
<!-- Themes for Dialogs -->
|
||||
<style name="DolphinDialogBase" parent="Theme.Material3.DayNight.Dialog.Alert">
|
||||
<item name="colorPrimary">@color/dolphin_blue</item>
|
||||
<item name="colorAccent">@color/dolphin_blue_secondary</item>
|
||||
</style>
|
||||
|
||||
<style name="DolphinEmulationBase" 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="android:windowTranslucentNavigation">true</item>
|
||||
|
||||
<item name="android:windowBackground">@android:color/black</item>
|
||||
|
||||
<!-- Enable window content transitions -->
|
||||
<item name="android:windowContentTransitions">true</item>
|
||||
<item name="android:windowAllowEnterTransitionOverlap">true</item>
|
||||
<item name="android:windowAllowReturnTransitionOverlap">true</item>
|
||||
</style>
|
||||
|
||||
<!-- Hax to make Tablayout render icons -->
|
||||
@@ -53,26 +12,7 @@
|
||||
<item name="textAllCaps">false</item>
|
||||
</style>
|
||||
|
||||
<!-- Android TV Themes -->
|
||||
<style name="DolphinTvBase" parent="Theme.Leanback.Browse">
|
||||
<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>
|
||||
|
||||
<!-- Enable window content transitions -->
|
||||
<item name="android:windowContentTransitions">true</item>
|
||||
<item name="android:windowAllowEnterTransitionOverlap">true</item>
|
||||
<item name="android:windowAllowReturnTransitionOverlap">true</item>
|
||||
|
||||
<!-- Use CustomTitleView as the leanback title view. -->
|
||||
<item name="browseTitleViewLayout">@layout/titleview</item>
|
||||
</style>
|
||||
|
||||
<style name="InGameScrollView">
|
||||
<item name="android:colorEdgeEffect">@color/dolphin_blue_secondary</item>
|
||||
</style>
|
||||
|
||||
<!-- Custom button styles -->
|
||||
<style name="InGameMenuOption" parent="Widget.Material3.Button.TextButton">
|
||||
<item name="android:textSize">16sp</item>
|
||||
<item name="android:fontFamily">sans-serif-condensed</item>
|
||||
@@ -93,29 +33,4 @@
|
||||
<item name="android:gravity">center</item>
|
||||
<item name="android:layout_gravity">center</item>
|
||||
</style>
|
||||
|
||||
<!-- Inherit from a base file picker theme that handles day/night -->
|
||||
<style name="FilePickerTheme" parent="FilePickerBaseTheme">
|
||||
<item name="colorPrimary">@color/dolphin_blue</item>
|
||||
<item name="colorPrimaryDark">@color/dolphin_blue</item>
|
||||
<item name="colorAccent">@color/dolphin_blue_secondary</item>
|
||||
|
||||
<!--<!– Setting a divider is entirely optional –>-->
|
||||
<item name="nnf_list_item_divider">?android:attr/listDivider</item>
|
||||
|
||||
<!-- Need to set this also to style create folder dialog -->
|
||||
<item name="alertDialogTheme">@style/FilePickerAlertDialogTheme</item>
|
||||
|
||||
<!-- If you want to set a specific toolbar theme, do it here -->
|
||||
|
||||
<item name="nnf_toolbarTheme">@style/ThemeOverlay.Material3.Dark.ActionBar</item>
|
||||
</style>
|
||||
|
||||
<style name="FilePickerAlertDialogTheme" 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>
|
||||
|
||||
</resources>
|
||||
@@ -0,0 +1,68 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<!-- 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="android:colorControlHighlight">?attr/colorAccent</item>
|
||||
|
||||
<item name="android:colorEdgeEffect">@color/dolphin_blue_secondary</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>
|
||||
</style>
|
||||
|
||||
<style name="Theme.Dolphin.Main.Emulation" parent="Theme.Dolphin.Main">
|
||||
<item name="android:windowBackground">@android:color/black</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>
|
||||
|
||||
<!-- 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">
|
||||
<!-- Enable window content transitions -->
|
||||
<item name="android:windowContentTransitions">true</item>
|
||||
<item name="android:windowAllowEnterTransitionOverlap">true</item>
|
||||
<item name="android:windowAllowReturnTransitionOverlap">true</item>
|
||||
|
||||
<!-- Use CustomTitleView as the leanback title view. -->
|
||||
<item name="browseTitleViewLayout">@layout/titleview</item>
|
||||
|
||||
<!-- Global alert dialog style -->
|
||||
<item name="alertDialogTheme">@style/DolphinDialogBase</item>
|
||||
</style>
|
||||
</resources>
|
||||
Reference in new issue
Block a user