Prevent deletion of Gmail drafts

master
M66B 4 months ago
parent 2874178055
commit 29fe930597

@ -1866,6 +1866,7 @@ class Core {
try {
if (perform_expunge && account.isGmail() && gmail_delete_all) {
EntityFolder trash = db.folder().getFolderByType(account.id, EntityFolder.TRASH);
EntityFolder drafts = db.folder().getFolderByType(account.id, EntityFolder.DRAFTS);
if (trash != null) {
Map<String, Long> folders = new HashMap<>();
EntityFolder archive = db.folder().getFolderByType(account.id, EntityFolder.ARCHIVE);
@ -1873,9 +1874,12 @@ class Core {
folders.put(archive.name, archive.id);
List<Long> uids = new ArrayList<>();
for (EntityMessage message : messages)
if (message.uid != null)
for (EntityMessage message : new ArrayList<EntityMessage>(messages))
if (message.uid != null &&
(drafts == null || !Objects.equals(message.folder, drafts.id))) {
uids.add(message.uid);
messages.remove(message);
}
IMAPFolder itrash = (IMAPFolder) istore.getFolder(trash.name);
Message[] imessages = ifolder.getMessagesByUID(Helper.toLongArray(uids));
@ -1920,7 +1924,8 @@ class Core {
for (long fid : folders.values())
EntityOperation.sync(context, fid, false);
return;
if (messages.isEmpty())
return;
}
}

Loading…
Cancel
Save