diff --git a/app/src/main/java/eu/faircode/email/ServiceSynchronize.java b/app/src/main/java/eu/faircode/email/ServiceSynchronize.java index eb442c3134..dcfbefaee9 100644 --- a/app/src/main/java/eu/faircode/email/ServiceSynchronize.java +++ b/app/src/main/java/eu/faircode/email/ServiceSynchronize.java @@ -1421,7 +1421,7 @@ public class ServiceSynchronize extends LifecycleService { private void doSeen(EntityFolder folder, IMAPFolder ifolder, EntityMessage message, JSONArray jargs, DB db) throws MessagingException, JSONException { // Mark message (un)seen boolean seen = jargs.getBoolean(0); - if (message.seen == seen) + if (message.seen.equals(seen)) return; Message imessage = ifolder.getMessageByUID(message.uid); @@ -1429,7 +1429,6 @@ public class ServiceSynchronize extends LifecycleService { throw new MessageRemovedException(); imessage.setFlag(Flags.Flag.SEEN, seen); - ifolder.setFlags(new Message[]{imessage}, new Flags(Flags.Flag.SEEN), seen); db.message().setMessageSeen(message.id, seen); } @@ -1437,7 +1436,7 @@ public class ServiceSynchronize extends LifecycleService { private void doAnswered(EntityFolder folder, IMAPFolder ifolder, EntityMessage message, JSONArray jargs, DB db) throws MessagingException, JSONException { // Mark message (un)answered boolean answered = jargs.getBoolean(0); - if (message.answered != answered) + if (message.answered.equals(answered)) return; Message imessage = ifolder.getMessageByUID(message.uid); @@ -1445,7 +1444,6 @@ public class ServiceSynchronize extends LifecycleService { throw new MessageRemovedException(); imessage.setFlag(Flags.Flag.ANSWERED, answered); - ifolder.setFlags(new Message[]{imessage}, new Flags(Flags.Flag.ANSWERED), answered); db.message().setMessageAnswered(message.id, answered); } @@ -1453,12 +1451,14 @@ public class ServiceSynchronize extends LifecycleService { private void doFlag(EntityFolder folder, IMAPFolder ifolder, EntityMessage message, JSONArray jargs, DB db) throws MessagingException, JSONException { // Star/unstar message boolean flagged = jargs.getBoolean(0); + if (message.flagged.equals(flagged)) + return; + Message imessage = ifolder.getMessageByUID(message.uid); if (imessage == null) throw new MessageRemovedException(); imessage.setFlag(Flags.Flag.FLAGGED, flagged); - ifolder.setFlags(new Message[]{imessage}, new Flags(Flags.Flag.FLAGGED), flagged); db.message().setMessageFlagged(message.id, flagged); } @@ -1475,7 +1475,6 @@ public class ServiceSynchronize extends LifecycleService { if (iprev != null) { Log.i(Helper.TAG, "Deleting existing uid=" + message.uid); iprev.setFlag(Flags.Flag.DELETED, true); - ifolder.setFlags(new Message[]{iprev}, new Flags(Flags.Flag.DELETED), true); ifolder.expunge(); } } @@ -1501,7 +1500,6 @@ public class ServiceSynchronize extends LifecycleService { if (!EntityFolder.ARCHIVE.equals(folder.type)) { imessage.setFlag(Flags.Flag.DELETED, true); - ifolder.setFlags(new Message[]{imessage}, new Flags(Flags.Flag.DELETED), true); ifolder.expunge(); } @@ -1518,7 +1516,6 @@ public class ServiceSynchronize extends LifecycleService { throw new MessageRemovedException(); imessage.setFlag(Flags.Flag.DELETED, true); - ifolder.setFlags(new Message[]{imessage}, new Flags(Flags.Flag.DELETED), true); ifolder.expunge(); db.message().deleteMessage(message.id);