Gmail label delete: processed messages

This commit is contained in:
M66B
2025-11-28 18:56:00 +01:00
parent 2a3060beaf
commit 00db1362f2

View File

@@ -1875,11 +1875,13 @@ class Core {
folders.put(archive.name, archive.id); folders.put(archive.name, archive.id);
List<Long> uids = new ArrayList<>(); List<Long> uids = new ArrayList<>();
for (EntityMessage message : new ArrayList<EntityMessage>(messages)) List<EntityMessage> process = new ArrayList<>();
for (EntityMessage message : new ArrayList<>(messages))
if (message.uid != null && if (message.uid != null &&
(drafts == null || !Objects.equals(message.folder, drafts.id))) { (drafts == null || !Objects.equals(message.folder, drafts.id))) {
uids.add(message.uid); uids.add(message.uid);
messages.remove(message); messages.remove(message);
process.add(message);
} }
IMAPFolder itrash = (IMAPFolder) istore.getFolder(trash.name); IMAPFolder itrash = (IMAPFolder) istore.getFolder(trash.name);
@@ -1907,7 +1909,7 @@ class Core {
itrash.open(READ_WRITE); itrash.open(READ_WRITE);
try { try {
List<Message> trashed = new ArrayList<>(); List<Message> trashed = new ArrayList<>();
for (EntityMessage message : messages) for (EntityMessage message : process)
if (!TextUtils.isEmpty(message.msgid)) { if (!TextUtils.isEmpty(message.msgid)) {
Message[] itrashed = itrash.search(new MessageIDTerm(message.msgid)); Message[] itrashed = itrash.search(new MessageIDTerm(message.msgid));
if (itrashed != null && itrashed.length == 1) if (itrashed != null && itrashed.length == 1)