Keep attachments POP3/trash

pull/194/merge
M66B 4 years ago
parent 842e5d14a9
commit a4cd3fb145

@ -1672,33 +1672,25 @@ class Core {
// Delete message // Delete message
DB db = DB.getInstance(context); DB db = DB.getInstance(context);
if (EntityFolder.INBOX.equals(folder.type)) { // Delete from server
if (account.leave_deleted) { if (EntityFolder.INBOX.equals(folder.type) && !account.leave_deleted) {
// Remove message/attachments files on cleanup Message imessage = findMessage(context, folder, message, istore, ifolder);
db.message().resetMessageContent(message.id); if (imessage != null) {
db.attachment().resetAvailable(message.id); Log.i(folder.name + " POP delete=" + message.uidl + "/" + message.msgid);
} else { imessage.setFlag(Flags.Flag.DELETED, true);
Message imessage = findMessage(context, folder, message, istore, ifolder);
if (imessage != null) {
Log.i(folder.name + " POP delete=" + message.uidl + "/" + message.msgid);
imessage.setFlag(Flags.Flag.DELETED, true);
try { try {
Log.i(folder.name + " POP expunge"); Log.i(folder.name + " POP expunge");
ifolder.close(true); ifolder.close(true);
ifolder.open(Folder.READ_WRITE); ifolder.open(Folder.READ_WRITE);
} catch (Throwable ex) { } catch (Throwable ex) {
Log.e(ex); Log.e(ex);
state.error(new FolderClosedException(ifolder, "POP", new Exception(ex))); state.error(new FolderClosedException(ifolder, "POP", new Exception(ex)));
}
} }
} }
}
// Synchronize will delete messages when needed // Move to trash folder
db.message().setMessageUiHide(message.id, true);
} else
db.message().deleteMessage(message.id);
if (!EntityFolder.DRAFTS.equals(folder.type) && if (!EntityFolder.DRAFTS.equals(folder.type) &&
!EntityFolder.TRASH.equals(folder.type)) { !EntityFolder.TRASH.equals(folder.type)) {
EntityFolder trash = db.folder().getFolderByType(message.account, EntityFolder.TRASH); EntityFolder trash = db.folder().getFolderByType(message.account, EntityFolder.TRASH);
@ -1734,7 +1726,22 @@ class Core {
} }
EntityAttachment.copy(context, id, message.id); EntityAttachment.copy(context, id, message.id);
message.id = id;
} }
// Delete from device
if (EntityFolder.INBOX.equals(folder.type)) {
if (account.leave_deleted) {
// Remove message/attachments files on cleanup
db.message().resetMessageContent(message.id);
db.attachment().resetAvailable(message.id);
}
// Synchronize will delete messages when needed
db.message().setMessageUiHide(message.id, true);
} else
db.message().deleteMessage(message.id);
} }
private static void onHeaders(Context context, JSONArray jargs, EntityFolder folder, EntityMessage message, IMAPFolder ifolder) throws MessagingException, IOException { private static void onHeaders(Context context, JSONArray jargs, EntityFolder folder, EntityMessage message, IMAPFolder ifolder) throws MessagingException, IOException {

Loading…
Cancel
Save