diff --git a/mastodon/src/main/java/org/joinmastodon/android/GlobalUserPreferences.java b/mastodon/src/main/java/org/joinmastodon/android/GlobalUserPreferences.java index 80c8bb6ad..9bdf9dcdb 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/GlobalUserPreferences.java +++ b/mastodon/src/main/java/org/joinmastodon/android/GlobalUserPreferences.java @@ -62,7 +62,8 @@ public class GlobalUserPreferences{ GREEN, BLUE, ORANGE, - YELLOW + YELLOW, + MATERIAL3 } public enum ThemePreference{ diff --git a/mastodon/src/main/java/org/joinmastodon/android/fragments/SettingsFragment.java b/mastodon/src/main/java/org/joinmastodon/android/fragments/SettingsFragment.java index 8a46f785e..543e3207e 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/fragments/SettingsFragment.java +++ b/mastodon/src/main/java/org/joinmastodon/android/fragments/SettingsFragment.java @@ -237,6 +237,7 @@ public class SettingsFragment extends MastodonToolbarFragment{ } private void onColorPreferenceClick(GlobalUserPreferences.ColorPreference color){ + GlobalUserPreferences.color=color; GlobalUserPreferences.save(); restartActivityToApplyNewTheme(); @@ -704,6 +705,15 @@ public class SettingsFragment extends MastodonToolbarFragment{ pref = GlobalUserPreferences.ColorPreference.YELLOW; onColorPreferenceClick(pref); } + else if(id==R.id.m3_color) { + if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) { + pref = GlobalUserPreferences.ColorPreference.MATERIAL3; + onColorPreferenceClick(pref); + }else{ + Toast.makeText(getActivity(), R.string.sk_not_supported, + Toast.LENGTH_LONG).show(); + } + } else return false; return true; @@ -723,6 +733,7 @@ public class SettingsFragment extends MastodonToolbarFragment{ case BLUE -> R.string.sk_color_theme_blue; case ORANGE -> R.string.sk_color_theme_brown; case YELLOW -> R.string.sk_color_theme_yellow; + case MATERIAL3 -> R.string.sk_color_theme_material_you; }); } } diff --git a/mastodon/src/main/java/org/joinmastodon/android/ui/utils/UiUtils.java b/mastodon/src/main/java/org/joinmastodon/android/ui/utils/UiUtils.java index eed8283c4..bf8819d92 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/ui/utils/UiUtils.java +++ b/mastodon/src/main/java/org/joinmastodon/android/ui/utils/UiUtils.java @@ -718,6 +718,16 @@ public class UiUtils{ GlobalUserPreferences.trueBlackTheme ? R.style.Theme_Mastodon_Dark_TrueBlack_Yellow : R.style.Theme_Mastodon_Dark_Yellow; }); break; + case MATERIAL3: + context.setTheme(switch(GlobalUserPreferences.theme){ + case AUTO -> + GlobalUserPreferences.trueBlackTheme ? R.style.Theme_Mastodon_AutoLightDark_TrueBlack_Material3 : R.style.Theme_Mastodon_AutoLightDark_Material3; + case LIGHT -> + R.style.Theme_Mastodon_Light_Material3; + case DARK -> + GlobalUserPreferences.trueBlackTheme ? R.style.Theme_Mastodon_Dark_TrueBlack_Material3 : R.style.Theme_Mastodon_Dark_Material3; + }); + break; } } diff --git a/mastodon/src/main/res/menu/color_picker.xml b/mastodon/src/main/res/menu/color_picker.xml index 8c949f7f1..43de899d5 100644 --- a/mastodon/src/main/res/menu/color_picker.xml +++ b/mastodon/src/main/res/menu/color_picker.xml @@ -6,4 +6,5 @@ + \ No newline at end of file diff --git a/mastodon/src/main/res/values-night/styles.xml b/mastodon/src/main/res/values-night/styles.xml index 8a1ec55aa..ab61f882a 100644 --- a/mastodon/src/main/res/values-night/styles.xml +++ b/mastodon/src/main/res/values-night/styles.xml @@ -17,4 +17,7 @@ + + + + + + + + + + + + + + +