diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 2c35544959..3b594bafea 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -153,18 +153,21 @@
@@ -174,6 +177,7 @@
@@ -183,6 +187,7 @@
@@ -192,6 +197,7 @@
@@ -215,6 +221,7 @@
@@ -244,6 +251,7 @@
@@ -278,6 +286,7 @@
@@ -298,6 +307,7 @@
diff --git a/app/src/main/java/eu/faircode/email/ActivityBase.java b/app/src/main/java/eu/faircode/email/ActivityBase.java
index c1a9e6dd45..4867a4c992 100644
--- a/app/src/main/java/eu/faircode/email/ActivityBase.java
+++ b/app/src/main/java/eu/faircode/email/ActivityBase.java
@@ -65,6 +65,7 @@ import java.util.Map;
abstract class ActivityBase extends AppCompatActivity implements SharedPreferences.OnSharedPreferenceChangeListener {
private Context originalContext;
+ private int themeId;
private boolean visible;
private boolean contacts;
private List keyPressedListeners = new ArrayList<>();
@@ -98,7 +99,8 @@ abstract class ActivityBase extends AppCompatActivity implements SharedPreferenc
getWindow().addFlags(WindowManager.LayoutParams.FLAG_SECURE);
if (!this.getClass().equals(ActivityMain.class)) {
- setTheme(FragmentDialogTheme.getTheme(this));
+ themeId = FragmentDialogTheme.getTheme(this);
+ setTheme(themeId);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
boolean dark = Helper.isDarkTheme(this);
@@ -192,6 +194,10 @@ abstract class ActivityBase extends AppCompatActivity implements SharedPreferenc
public void onConfigurationChanged(Configuration newConfig) {
Log.d("Config " + this.getClass().getName());
super.onConfigurationChanged(newConfig);
+
+ if (!this.getClass().equals(ActivityMain.class) &&
+ themeId != FragmentDialogTheme.getTheme(this))
+ recreate();
}
@Override