From 3ad79fe6a2ffc9987b713db5f54824a85bc73d1c Mon Sep 17 00:00:00 2001 From: M66B Date: Tue, 13 Jul 2021 08:21:43 +0200 Subject: [PATCH] Explicitly recreate on ui mode changes --- app/src/main/AndroidManifest.xml | 10 ++++++++++ app/src/main/java/eu/faircode/email/ActivityBase.java | 8 +++++++- 2 files changed, 17 insertions(+), 1 deletion(-) 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