diff --git a/app/src/main/java/eu/faircode/email/ActivityBase.java b/app/src/main/java/eu/faircode/email/ActivityBase.java
index 02e77b87b5..a9ceacde9e 100644
--- a/app/src/main/java/eu/faircode/email/ActivityBase.java
+++ b/app/src/main/java/eu/faircode/email/ActivityBase.java
@@ -83,27 +83,53 @@ abstract class ActivityBase extends AppCompatActivity implements SharedPreferenc
if (!this.getClass().equals(ActivityMain.class)) {
String theme = prefs.getString("theme", "light");
+ int uiMode = getResources().getConfiguration().uiMode;
+ Log.i("UI mode=" + uiMode);
- if ("dark".equals(theme))
- setTheme(R.style.AppThemeBlueOrangeDark);
- else if ("black".equals(theme))
- setTheme(R.style.AppThemeBlack);
- else if ("grey_light".equals(theme))
- setTheme(R.style.AppThemeGreySteelBlueLight);
- else if ("grey_dark".equals(theme))
- setTheme(R.style.AppThemeGreySteelBlueDark);
- else if ("system".equals(theme)) {
- int uiMode = getResources().getConfiguration().uiMode;
- Log.i("UI mode=" + uiMode);
- if ((uiMode & Configuration.UI_MODE_NIGHT_YES) != 0)
- setTheme(R.style.AppThemeBlack);
- } else if ("grey_system".equals(theme)) {
- int uiMode = getResources().getConfiguration().uiMode;
- Log.i("UI mode=" + uiMode);
- if ((uiMode & Configuration.UI_MODE_NIGHT_YES) != 0)
- setTheme(R.style.AppThemeGreySteelBlueDark);
- else
+ switch (theme) {
+ case "light":
+ case "blue_orange_light":
+ setTheme(R.style.AppThemeBlueOrangeLight);
+ break;
+ case "yellow_purple_light":
+ setTheme(R.style.AppThemeYellowPurpleLight);
+ break;
+ case "green_red_light":
+ setTheme(R.style.AppThemeGreenRedLight);
+ break;
+ case "grey_light":
setTheme(R.style.AppThemeGreySteelBlueLight);
+ break;
+
+ case "dark":
+ case "blue_orange_dark":
+ setTheme(R.style.AppThemeBlueOrangeDark);
+ break;
+ case "yellow_purple_dark":
+ setTheme(R.style.AppThemeYellowPurpleDark);
+ break;
+ case "green_red_dark":
+ setTheme(R.style.AppThemeGreenRedDark);
+ break;
+ case "grey_dark":
+ setTheme(R.style.AppThemeGreySteelBlueDark);
+ break;
+
+ case "black":
+ setTheme(R.style.AppThemeBlack);
+ break;
+ case "system":
+ if ((uiMode & Configuration.UI_MODE_NIGHT_YES) != 0)
+ setTheme(R.style.AppThemeBlueOrangeDark);
+ else
+ setTheme(R.style.AppThemeBlueOrangeLight);
+ break;
+ case "grey_system":
+ if ((uiMode & Configuration.UI_MODE_NIGHT_YES) != 0)
+ setTheme(R.style.AppThemeGreySteelBlueDark);
+ else
+ setTheme(R.style.AppThemeGreySteelBlueLight);
+ break;
}
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
diff --git a/app/src/main/java/eu/faircode/email/FragmentOptionsDisplay.java b/app/src/main/java/eu/faircode/email/FragmentOptionsDisplay.java
index e82eaaff48..928c089a95 100644
--- a/app/src/main/java/eu/faircode/email/FragmentOptionsDisplay.java
+++ b/app/src/main/java/eu/faircode/email/FragmentOptionsDisplay.java
@@ -667,26 +667,43 @@ public class FragmentOptionsDisplay extends FragmentBase implements SharedPrefer
String theme = prefs.getString("theme", "light");
switch (theme) {
- case "dark":
- rgTheme.check(R.id.rbThemeDark);
+ case "light":
+ case "blue_orange_light":
+ rgTheme.check(R.id.rbThemeBlueOrangeLight);
break;
- case "black":
- rgTheme.check(R.id.rbThemeBlack);
+ case "yellow_purple_light":
+ rgTheme.check(R.id.rbThemeYellowPurpleLight);
+ break;
+ case "green_red_light":
+ rgTheme.check(R.id.rbThemeGreenRedLight);
break;
case "grey_light":
rgTheme.check(R.id.rbThemeGreyLight);
break;
+
+ case "dark":
+ case "blue_orange_dark":
+ rgTheme.check(R.id.rbThemeBlueOrangeDark);
+ break;
+ case "yellow_purple_dark":
+ rgTheme.check(R.id.rbThemeYellowPurpleDark);
+ break;
+ case "green_red_dark":
+ rgTheme.check(R.id.rbThemeGreenRedDark);
+ break;
case "grey_dark":
rgTheme.check(R.id.rbThemeGreyDark);
break;
+
+ case "black":
+ rgTheme.check(R.id.rbThemeBlack);
+ break;
case "system":
rgTheme.check(R.id.rbThemeSystem);
break;
case "grey_system":
rgTheme.check(R.id.rbThemeGreySystem);
break;
- default:
- rgTheme.check(R.id.rbThemeLight);
}
rgTheme.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@@ -697,21 +714,35 @@ public class FragmentOptionsDisplay extends FragmentBase implements SharedPrefer
ContactInfo.clearCache();
switch (checkedId) {
- case R.id.rbThemeLight:
- prefs.edit().putString("theme", "light").apply();
+ case R.id.rbThemeBlueOrangeLight:
+ prefs.edit().putString("theme", "blue_orange_light").apply();
break;
- case R.id.rbThemeDark:
- prefs.edit().putString("theme", "dark").apply();
+ case R.id.rbThemeYellowPurpleLight:
+ prefs.edit().putString("theme", "yellow_purple_light").apply();
break;
- case R.id.rbThemeBlack:
- prefs.edit().putString("theme", "black").apply();
+ case R.id.rbThemeGreenRedLight:
+ prefs.edit().putString("theme", "green_red_light").apply();
break;
case R.id.rbThemeGreyLight:
prefs.edit().putString("theme", "grey_light").apply();
break;
+
+ case R.id.rbThemeBlueOrangeDark:
+ prefs.edit().putString("theme", "blue_orange_dark").apply();
+ break;
+ case R.id.rbThemeYellowPurpleDark:
+ prefs.edit().putString("theme", "yellow_purple_dark").apply();
+ break;
+ case R.id.rbThemeGreenRedDark:
+ prefs.edit().putString("theme", "green_red_dark").apply();
+ break;
case R.id.rbThemeGreyDark:
prefs.edit().putString("theme", "grey_dark").apply();
break;
+
+ case R.id.rbThemeBlack:
+ prefs.edit().putString("theme", "black").apply();
+ break;
case R.id.rbThemeSystem:
prefs.edit().putString("theme", "system").apply();
break;
diff --git a/app/src/main/res/layout/dialog_theme.xml b/app/src/main/res/layout/dialog_theme.xml
index e1c61e9e78..7868cdd65e 100644
--- a/app/src/main/res/layout/dialog_theme.xml
+++ b/app/src/main/res/layout/dialog_theme.xml
@@ -29,27 +29,27 @@
app:layout_constraintTop_toBottomOf="@id/tvCaption">
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml
index 2d472de2fc..e8e77936a2 100644
--- a/app/src/main/res/values/colors.xml
+++ b/app/src/main/res/values/colors.xml
@@ -8,6 +8,10 @@
#ffb300
#c68400
+
+ #01579b
+ #002f6c
+
#b3000000
#ff000000
@@ -51,7 +55,7 @@
#444
#444
- #ffffb300
+ #ffffb74d
#997f7f7f
#fff
@@ -63,6 +67,26 @@
#666
#444
+
+ #fdd835
+ #c6a700
+ #8e24aa
+
+
+ #f57f17
+ #bc5100
+ #ba68c8
+
+
+ #43a047
+ #00701a
+ #e53935
+
+
+ #1b5e20
+ #003300
+ #e57373
+
#222
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 0e49929649..5105b953d7 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -198,15 +198,25 @@
Enable
Disable
Unlock
+
Select theme
- Light theme
- Dark theme
- Black theme
+
+ Blue/orange light theme
+ Yellow/purple light theme
+ Green/red light theme
Grey light theme
+
+ Blue/orange dark theme
+ Yellow/purple dark theme
+ Green/red dark theme
Grey dark theme
+
+ Black theme
System theme
Grey system theme
+
The system themes will automatically switch to light/dark on day/night, if supported by Android
+
Advanced
Options
diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml
index fc830a6fd7..f44713d9c0 100644
--- a/app/src/main/res/values/styles.xml
+++ b/app/src/main/res/values/styles.xml
@@ -104,6 +104,8 @@
- @color/colorAccentDark
+ - @color/colorAccent
+
- @color/colorAccent
- @color/white
@@ -112,9 +114,39 @@
- @color/colorAccentDark
+
+
+
+
+
+
+
+