diff --git a/app/src/main/java/eu/faircode/email/FragmentDialogTheme.java b/app/src/main/java/eu/faircode/email/FragmentDialogTheme.java index 226ea9de75..c7e0cadb84 100644 --- a/app/src/main/java/eu/faircode/email/FragmentDialogTheme.java +++ b/app/src/main/java/eu/faircode/email/FragmentDialogTheme.java @@ -48,7 +48,7 @@ public class FragmentDialogTheme extends FragmentDialogBase { checkedId == R.id.rbThemeYellowPurple); int optionId = rgThemeOptions.getCheckedRadioButtonId(); - swReverse.setEnabled(colored && !grey && !solarized && !you); + swReverse.setEnabled(colored && !grey && !solarized); rgThemeOptions.setEnabled(colored); for (int i = 0; i < rgThemeOptions.getChildCount(); i++) @@ -126,7 +126,8 @@ public class FragmentDialogTheme extends FragmentDialogBase { }); boolean reversed = - (theme.startsWith("orange_blue") || + (theme.contains("reversed") || + theme.startsWith("orange_blue") || theme.startsWith("purple_yellow") || theme.startsWith("green_red")); boolean dark = theme.endsWith("dark"); @@ -211,6 +212,11 @@ public class FragmentDialogTheme extends FragmentDialogBase { case "you_black": case "you_system": case "you_system_black": + case "you_reversed_light": + case "you_reversed_dark": + case "you_reversed_black": + case "you_reversed_system": + case "you_reversed_system_black": rgTheme.check(R.id.rbThemeYou); break; } @@ -299,11 +305,13 @@ public class FragmentDialogTheme extends FragmentDialogBase { editor.putString("theme", "black_and_white").apply(); } else if (checkedRadioButtonId == R.id.rbThemeYou) { if (system) - editor.putString("theme", "you_system" + - (black ? "_black" : "")).apply(); + editor.putString("theme", + (reverse ? "you_reversed_system" : "you_system") + + (black ? "_black" : "")).apply(); else - editor.putString("theme", "you" + - (black ? "_black" : dark ? "_dark" : "_light")).apply(); + editor.putString("theme", + (reverse ? "you_reversed" : "you") + + (black ? "_black" : dark ? "_dark" : "_light")).apply(); } editor.putBoolean("default_light", swHtmlLight.isChecked()); @@ -506,6 +514,22 @@ public class FragmentDialogTheme extends FragmentDialogBase { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) return (night ? R.style.AppThemeYouBlack : R.style.AppThemeYouLight); + case "you_reversed_light": + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) + return R.style.AppThemeYouReversedLight; + case "you_reversed_dark": + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) + return (light ? R.style.AppThemeYouReversedLight : R.style.AppThemeYouReversedDark); + case "you_reversed_black": + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) + return (light ? R.style.AppThemeYouReversedLight : R.style.AppThemeYouReversedBlack); + case "you_reversed_system": + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) + return (night ? R.style.AppThemeYouReversedDark : R.style.AppThemeYouReversedLight); + case "you_reversed_system_black": + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) + return (night ? R.style.AppThemeYouReversedBlack : R.style.AppThemeYouReversedLight); + default: Log.e("Unknown theme=" + theme); return R.style.AppThemeBlueOrangeLight; diff --git a/app/src/main/res/values-v31/styles.xml b/app/src/main/res/values-v31/styles.xml index ac640dfb7c..c1df322c7e 100644 --- a/app/src/main/res/values-v31/styles.xml +++ b/app/src/main/res/values-v31/styles.xml @@ -36,4 +36,40 @@ @drawable/background_black @color/black + + + + + +