From 5fbed5ef34674059729b8f5f578fde4bae07daa5 Mon Sep 17 00:00:00 2001 From: M66B Date: Sat, 18 Sep 2021 22:34:25 +0200 Subject: [PATCH] Flag junk/no junk --- app/src/main/java/eu/faircode/email/Core.java | 17 ++++++++++++++--- .../java/eu/faircode/email/MessageHelper.java | 3 ++- 2 files changed, 16 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 c9902e1079..b0989f0e73 100644 --- a/app/src/main/java/eu/faircode/email/Core.java +++ b/app/src/main/java/eu/faircode/email/Core.java @@ -1330,10 +1330,21 @@ class Core { imessage.setFlag(Flags.Flag.FLAGGED, false); // Mark not spam - if (EntityFolder.JUNK.equals(folder.type) && - ifolder.getPermanentFlags().contains(Flags.Flag.USER)) { + if (!copy && ifolder.getPermanentFlags().contains(Flags.Flag.USER)) { + Flags junk = new Flags(MessageHelper.FLAG_JUNK); Flags notJunk = new Flags(MessageHelper.FLAG_NOT_JUNK); - imessage.setFlags(notJunk, true); + List userFlags = Arrays.asList(imessage.getFlags().getUserFlags()); + if (EntityFolder.JUNK.equals(target.type)) { + // To junk + if (userFlags.contains(MessageHelper.FLAG_NOT_JUNK)) + imessage.setFlags(notJunk, false); + imessage.setFlags(junk, true); + } else if (EntityFolder.JUNK.equals(folder.type)) { + // From junk + if (userFlags.contains(MessageHelper.FLAG_JUNK)) + imessage.setFlags(junk, false); + imessage.setFlags(notJunk, true); + } } } diff --git a/app/src/main/java/eu/faircode/email/MessageHelper.java b/app/src/main/java/eu/faircode/email/MessageHelper.java index d31b35c81f..4184822e09 100644 --- a/app/src/main/java/eu/faircode/email/MessageHelper.java +++ b/app/src/main/java/eu/faircode/email/MessageHelper.java @@ -145,6 +145,7 @@ public class MessageHelper { )); static final String FLAG_FORWARDED = "$Forwarded"; + static final String FLAG_JUNK = "$Junk"; static final String FLAG_NOT_JUNK = "$NotJunk"; static final String FLAG_CLASSIFIED = "$Classified"; static final String FLAG_FILTERED = "$Filtered"; @@ -153,13 +154,13 @@ public class MessageHelper { // Not black listed: Gmail $Phishing private static final List FLAG_BLACKLIST = Collections.unmodifiableList(Arrays.asList( MessageHelper.FLAG_FORWARDED, + MessageHelper.FLAG_JUNK, MessageHelper.FLAG_NOT_JUNK, MessageHelper.FLAG_CLASSIFIED, // FairEmail MessageHelper.FLAG_FILTERED, // FairEmail "$MDNSent", // https://tools.ietf.org/html/rfc3503 "$SubmitPending", "$Submitted", - "$Junk", "Junk", "NonJunk", "$recent",