From ce8f1c677c26e9f8253db96b59938365d1a346c6 Mon Sep 17 00:00:00 2001 From: M66B Date: Sun, 9 Aug 2020 07:35:53 +0200 Subject: [PATCH] Added quick remove --- app/src/main/java/eu/faircode/email/Core.java | 13 ++++++++++--- .../java/eu/faircode/email/ServiceSynchronize.java | 2 +- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/Core.java b/app/src/main/java/eu/faircode/email/Core.java index fffbb849a8..3135c4363c 100644 --- a/app/src/main/java/eu/faircode/email/Core.java +++ b/app/src/main/java/eu/faircode/email/Core.java @@ -1108,16 +1108,19 @@ class Core { private static void onFetch(Context context, JSONArray jargs, EntityFolder folder, IMAPStore istore, IMAPFolder ifolder, State state) throws JSONException, MessagingException, IOException { long uid = jargs.getLong(0); + boolean removed = jargs.optBoolean(1); + if (uid < 0) throw new MessageRemovedException(folder.name + " fetch uid=" + uid); DB db = DB.getInstance(context); EntityAccount account = db.account().getAccount(folder.account); - boolean download = db.folder().getFolderDownload(folder.id); - List rules = db.rule().getEnabledRules(folder.id); try { - SyncStats stats = new SyncStats(); + if (removed) { + db.message().deleteMessage(folder.id, uid); + throw new MessageRemovedException("removed uid=" + uid); + } MimeMessage imessage = (MimeMessage) ifolder.getMessageByUID(uid); if (imessage == null) @@ -1127,6 +1130,10 @@ class Core { if (imessage.isSet(Flags.Flag.DELETED)) throw new MessageRemovedException(folder.name + " fetch deleted uid=" + uid); + SyncStats stats = new SyncStats(); + boolean download = db.folder().getFolderDownload(folder.id); + List rules = db.rule().getEnabledRules(folder.id); + try { FetchProfile fp = new FetchProfile(); fp.add(FetchProfile.Item.ENVELOPE); diff --git a/app/src/main/java/eu/faircode/email/ServiceSynchronize.java b/app/src/main/java/eu/faircode/email/ServiceSynchronize.java index b81ced215c..505b190641 100644 --- a/app/src/main/java/eu/faircode/email/ServiceSynchronize.java +++ b/app/src/main/java/eu/faircode/email/ServiceSynchronize.java @@ -1139,7 +1139,7 @@ public class ServiceSynchronize extends ServiceBase implements SharedPreferences for (Message imessage : e.getMessages()) { long uid = ifolder.getUID(imessage); - EntityOperation.queue(ServiceSynchronize.this, folder, EntityOperation.FETCH, uid); + EntityOperation.queue(ServiceSynchronize.this, folder, EntityOperation.FETCH, uid, true); } db.setTransactionSuccessful();