diff --git a/app/src/main/java/com/sun/mail/imap/IMAPFolder.java b/app/src/main/java/com/sun/mail/imap/IMAPFolder.java index d069f27921..07244b9f3f 100644 --- a/app/src/main/java/com/sun/mail/imap/IMAPFolder.java +++ b/app/src/main/java/com/sun/mail/imap/IMAPFolder.java @@ -3635,6 +3635,22 @@ public class IMAPFolder extends Folder implements UIDFolder, ResponseHandler { // response // "VANISHED" SP ["(EARLIER)"] SP known-uids + ir.readAtomStringList(); // Skip EARLIER + String uids = ir.readAtom(); + UIDSet[] uidset = UIDSet.parseUIDSets(uids); + List msgs = new ArrayList<>(); + for (long uid : UIDSet.toArray(uidset)) { + Message m = uidTable.get(uid); + if (m != null && m.getMessageNumber() > 0) { + realTotal--; + messageCache.expungeMessage(m.getMessageNumber()); + msgs.add(m); + } + } + if (!msgs.isEmpty() && + doExpungeNotification && hasMessageCountListener) + notifyMessageRemovedListeners(true, msgs.toArray(new Message[0])); +/* String[] s = ir.readAtomStringList(); if (s == null) { // no (EARLIER) String uids = ir.readAtom(); @@ -3651,7 +3667,7 @@ public class IMAPFolder extends Folder implements UIDFolder, ResponseHandler { notifyMessageRemovedListeners(true, msgs); } } // else if (EARLIER), ignore - +*/ } else if (ir.keyEquals("FETCH")) { assert ir instanceof FetchResponse : "!ir instanceof FetchResponse"; Message msg = processFetchResponse((FetchResponse)ir);