From a17b11232067bef52549ebc36657940811147ce7 Mon Sep 17 00:00:00 2001 From: M66B Date: Sat, 2 Feb 2019 19:28:44 +0000 Subject: [PATCH] Added workaround for drafts flag --- .../java/eu/faircode/email/ServiceSynchronize.java | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/app/src/main/java/eu/faircode/email/ServiceSynchronize.java b/app/src/main/java/eu/faircode/email/ServiceSynchronize.java index df3f2a8667..4e96caaead 100644 --- a/app/src/main/java/eu/faircode/email/ServiceSynchronize.java +++ b/app/src/main/java/eu/faircode/email/ServiceSynchronize.java @@ -1827,6 +1827,7 @@ public class ServiceSynchronize extends LifecycleService { Log.i(folder.name + " appended id=" + message.id + " uid=" + uid); db.message().setMessageUid(message.id, uid); + // Some providers, like Gmail, don't honor the appended seen flag if (itarget.getPermanentFlags().contains(Flags.Flag.SEEN)) { boolean seen = (autoread || message.ui_seen); icopy = itarget.getMessageByUID(uid); @@ -1836,6 +1837,16 @@ public class ServiceSynchronize extends LifecycleService { } } + // This is not based on an actual case, so this is just a safeguard + if (itarget.getPermanentFlags().contains(Flags.Flag.DRAFT)) { + boolean draft = EntityFolder.DRAFTS.equals(target.type); + icopy = itarget.getMessageByUID(uid); + if (draft != icopy.isSet(Flags.Flag.DRAFT)) { + Log.i(folder.name + " Fixing id=" + message.id + " draft=" + draft); + icopy.setFlag(Flags.Flag.DRAFT, draft); + } + } + // Delete source imessage.setFlag(Flags.Flag.DELETED, true); ifolder.expunge();