diff --git a/app/src/main/java/eu/faircode/email/FragmentDialogTheme.java b/app/src/main/java/eu/faircode/email/FragmentDialogTheme.java index 391679a882..b565661ede 100644 --- a/app/src/main/java/eu/faircode/email/FragmentDialogTheme.java +++ b/app/src/main/java/eu/faircode/email/FragmentDialogTheme.java @@ -335,16 +335,16 @@ public class FragmentDialogTheme extends FragmentDialogBase { .create(); } - static int getTheme(ActivityBase activity) { - SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(activity); + static int getTheme(Context context) { + SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); String theme = prefs.getString("theme", "blue_orange_system"); boolean composer_light = prefs.getBoolean("composer_light", false); - boolean night = Helper.isNight(activity); - boolean light = (composer_light && activity instanceof ActivityCompose); + boolean night = Helper.isNight(context); + boolean light = (composer_light && context instanceof ActivityCompose); if (light) night = false; - EntityLog.log(activity, "Activity theme=" + theme + + EntityLog.log(context, "Activity theme=" + theme + "light = " + light + " night=" + night); switch (theme) { diff --git a/app/src/main/java/eu/faircode/email/SimpleTask.java b/app/src/main/java/eu/faircode/email/SimpleTask.java index 55130e617e..bb3558d257 100644 --- a/app/src/main/java/eu/faircode/email/SimpleTask.java +++ b/app/src/main/java/eu/faircode/email/SimpleTask.java @@ -23,6 +23,7 @@ import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.os.PowerManager; +import android.view.ContextThemeWrapper; import androidx.annotation.NonNull; import androidx.appcompat.app.AppCompatActivity; @@ -154,6 +155,10 @@ public abstract class SimpleTask implements LifecycleObserver { } }; + Context themedContext = new ContextThemeWrapper( + context.getApplicationContext(), + FragmentDialogTheme.getTheme(context)); + future = getExecutor(context).submit(new Runnable() { private Object data; private long elapsed; @@ -168,7 +173,7 @@ public abstract class SimpleTask implements LifecycleObserver { if (log) Log.i("Executing task=" + name); long start = new Date().getTime(); - data = onExecute(context.getApplicationContext(), args); + data = onExecute(themedContext, args); elapsed = new Date().getTime() - start; if (log) Log.i("Executed task=" + name + " elapsed=" + elapsed + " ms");