From 0c8206ddc9b35b1f0b61b59288a28d3c6d87b39b Mon Sep 17 00:00:00 2001 From: M66B Date: Fri, 14 Jan 2022 20:49:25 +0100 Subject: [PATCH] Auto reload on body/attachment --- .../java/eu/faircode/email/AdapterAttachment.java | 14 +++++++++++++- .../main/java/eu/faircode/email/AdapterImage.java | 14 +++++++++++++- .../java/eu/faircode/email/FragmentMessages.java | 10 +++++++++- 3 files changed, 35 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/AdapterAttachment.java b/app/src/main/java/eu/faircode/email/AdapterAttachment.java index 02de962e7e..2acf81fb0e 100644 --- a/app/src/main/java/eu/faircode/email/AdapterAttachment.java +++ b/app/src/main/java/eu/faircode/email/AdapterAttachment.java @@ -291,6 +291,8 @@ public class AdapterAttachment extends RecyclerView.Adapter long id = args.getLong("id"); long mid = args.getLong("message"); + Long reload = null; + DB db = DB.getInstance(context); try { db.beginTransaction(); @@ -140,6 +142,13 @@ public class AdapterImage extends RecyclerView.Adapter if (message == null || message.uid == null) return null; + EntityAccount account = db.account().getAccount(message.id); + if (account == null) + return null; + + if (!"connected".equals(account.state)) + reload = account.id; + EntityAttachment attachment = db.attachment().getAttachment(id); if (attachment == null || attachment.progress != null || attachment.available) return null; @@ -151,7 +160,10 @@ public class AdapterImage extends RecyclerView.Adapter db.endTransaction(); } - ServiceSynchronize.eval(context, "attachment"); + if (reload == null) + ServiceSynchronize.eval(context, "image"); + else + ServiceSynchronize.reload(context, reload, true, "image"); return null; } diff --git a/app/src/main/java/eu/faircode/email/FragmentMessages.java b/app/src/main/java/eu/faircode/email/FragmentMessages.java index 7697fbd38a..a5563cc6ab 100644 --- a/app/src/main/java/eu/faircode/email/FragmentMessages.java +++ b/app/src/main/java/eu/faircode/email/FragmentMessages.java @@ -5992,6 +5992,8 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences. protected Void onExecute(Context context, Bundle args) { long id = args.getLong("id"); + Long reload = null; + DB db = DB.getInstance(context); try { db.beginTransaction(); @@ -6008,6 +6010,9 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences. if (account == null) return null; + if (!"connected".equals(account.state)) + reload = account.id; + if (message.ui_unsnoozed) db.message().setMessageUnsnoozed(message.id, false); @@ -6034,7 +6039,10 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences. db.endTransaction(); } - ServiceSynchronize.eval(context, "expand"); + if (reload == null) + ServiceSynchronize.eval(context, "expand"); + else + ServiceSynchronize.reload(context, reload, true, "expand"); return null; }