From c488c2398976a00bacfba0cb81bd062eb9d7c039 Mon Sep 17 00:00:00 2001 From: M66B Date: Fri, 10 Oct 2025 20:08:50 +0200 Subject: [PATCH] Sync draft loader on save instance state --- app/src/main/java/eu/faircode/email/FragmentCompose.java | 3 +++ app/src/main/java/eu/faircode/email/SimpleTask.java | 9 +++++++++ 2 files changed, 12 insertions(+) diff --git a/app/src/main/java/eu/faircode/email/FragmentCompose.java b/app/src/main/java/eu/faircode/email/FragmentCompose.java index e3b670699c..0423bc1120 100644 --- a/app/src/main/java/eu/faircode/email/FragmentCompose.java +++ b/app/src/main/java/eu/faircode/email/FragmentCompose.java @@ -1875,6 +1875,8 @@ public class FragmentCompose extends FragmentBase { @Override public void onSaveInstanceState(Bundle outState) { + draftLoader.sync(); + outState.putLong("fair:working", working); outState.putBoolean("fair:show_images", show_images); outState.putParcelable("fair:photo", photoURI); @@ -6623,6 +6625,7 @@ public class FragmentCompose extends FragmentBase { ServiceSynchronize.eval(context, "compose/draft"); + working = data.draft.id; return data; } diff --git a/app/src/main/java/eu/faircode/email/SimpleTask.java b/app/src/main/java/eu/faircode/email/SimpleTask.java index b4f3fc1cd1..f3af21ffdd 100644 --- a/app/src/main/java/eu/faircode/email/SimpleTask.java +++ b/app/src/main/java/eu/faircode/email/SimpleTask.java @@ -366,6 +366,15 @@ public abstract class SimpleTask implements LifecycleObserver { return !this.destroyed; } + void sync() { + try { + if (future != null) + future.get(); + } catch (Throwable ex) { + Log.e(ex); + } + } + void cancel(Context context) { try { ExecutorService executor = getExecutor(context);