diff --git a/app/src/main/java/eu/faircode/email/ActivityBase.java b/app/src/main/java/eu/faircode/email/ActivityBase.java
index 28eae01595..dd6cac9ea1 100644
--- a/app/src/main/java/eu/faircode/email/ActivityBase.java
+++ b/app/src/main/java/eu/faircode/email/ActivityBase.java
@@ -178,6 +178,11 @@ abstract class ActivityBase extends AppCompatActivity implements SharedPreferenc
setTheme(R.style.AppThemeGreySteelBlueDark);
break;
+ // Solarized
+ case "solarized":
+ setTheme(R.style.AppThemeSolarized);
+ break;
+
// Black
case "black":
setTheme(R.style.AppThemeBlack);
diff --git a/app/src/main/java/eu/faircode/email/FragmentCompose.java b/app/src/main/java/eu/faircode/email/FragmentCompose.java
index 9cbaceb944..e1f8a96823 100644
--- a/app/src/main/java/eu/faircode/email/FragmentCompose.java
+++ b/app/src/main/java/eu/faircode/email/FragmentCompose.java
@@ -969,7 +969,9 @@ public class FragmentCompose extends FragmentBase {
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getContext());
boolean cards = prefs.getBoolean("cards", true);
- if (cards && !Helper.isDarkTheme(getContext()))
+ String theme = prefs.getString("theme", null);
+ if (cards &&
+ (!Helper.isDarkTheme(getContext())) || "solarized".equals(theme))
view.setBackgroundColor(Helper.resolveColor(getContext(), R.attr.colorCardBackground));
//boolean beige = prefs.getBoolean("beige", true);
diff --git a/app/src/main/java/eu/faircode/email/FragmentDialogTheme.java b/app/src/main/java/eu/faircode/email/FragmentDialogTheme.java
index 74daf03fd8..7b79ead292 100644
--- a/app/src/main/java/eu/faircode/email/FragmentDialogTheme.java
+++ b/app/src/main/java/eu/faircode/email/FragmentDialogTheme.java
@@ -146,12 +146,17 @@ public class FragmentDialogTheme extends FragmentDialogBase {
case "purple_yellow_black":
rgTheme.check(R.id.rbThemeYellowPurple);
break;
+
case "grey_system":
case "grey_light":
case "grey_dark":
rgTheme.check(R.id.rbThemeGrey);
break;
+ case "solarized":
+ rgTheme.check(R.id.rbThemeSolarized);
+ break;
+
case "black":
rgTheme.check(R.id.rbThemeBlack);
break;
@@ -221,6 +226,8 @@ public class FragmentDialogTheme extends FragmentDialogBase {
else
editor.putString("theme",
"grey" + (dark ? "_dark" : "_light")).apply();
+ } else if (checkedRadioButtonId == R.id.rbThemeSolarized) {
+ editor.putString("theme", "solarized").apply();
} else if (checkedRadioButtonId == R.id.rbThemeBlack) {
editor.putString("theme", "black").apply();
} else if (checkedRadioButtonId == R.id.rbThemeBlackAndWhite) {
diff --git a/app/src/main/res/layout/dialog_theme.xml b/app/src/main/res/layout/dialog_theme.xml
index d7d524cff2..47cc819f03 100644
--- a/app/src/main/res/layout/dialog_theme.xml
+++ b/app/src/main/res/layout/dialog_theme.xml
@@ -62,6 +62,14 @@
android:text="@string/title_setup_theme_grey"
android:textAppearance="@style/TextAppearance.AppCompat.Medium" />
+
+
#62757f
#c1d5e0
+
+ #073642
+ #002b36
+ #268bd2
+
#222
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 1fa59763c4..9666ac6803 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -258,6 +258,7 @@
Grey
Black
Black and white
+ Solarized
Swap colors
Light
diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml
index 438951bb4d..4fd5021b6b 100644
--- a/app/src/main/res/values/styles.xml
+++ b/app/src/main/res/values/styles.xml
@@ -397,6 +397,26 @@
- @color/black
+
+