POP3 delete local hidden messages not on server anymore

pull/214/head
M66B 2 years ago
parent bfd5c2035c
commit c6bd6659d3

@ -3289,7 +3289,8 @@ class Core {
ifolder.fetch(imessages, ifetch); ifolder.fetch(imessages, ifetch);
} }
if (!account.leave_on_device) { long now = new Date().getTime();
if (hasUidl) { if (hasUidl) {
Map<String, TupleUidl> known = new HashMap<>(); Map<String, TupleUidl> known = new HashMap<>();
for (TupleUidl id : ids) for (TupleUidl id : ids)
@ -3305,8 +3306,11 @@ class Core {
} }
for (TupleUidl uidl : known.values()) for (TupleUidl uidl : known.values())
if (!uidl.ui_flagged) { if (!uidl.ui_flagged &&
EntityLog.log(context, account.name + " POP purging uidl=" + uidl.uidl); (!account.leave_on_device ||
(uidl.ui_hide && (uidl.ui_busy == null || uidl.ui_busy < now)))) {
EntityLog.log(context, account.name + " POP purging" +
" uidl=" + uidl.uidl + " hidden=" + uidl.ui_hide);
db.message().deleteMessage(uidl.id); db.message().deleteMessage(uidl.id);
} }
} else { } else {
@ -3323,12 +3327,14 @@ class Core {
} }
for (TupleUidl uidl : known.values()) for (TupleUidl uidl : known.values())
if (!uidl.ui_flagged) { if (!uidl.ui_flagged &&
EntityLog.log(context, account.name + " POP purging msgid=" + uidl.msgid); (!account.leave_on_device ||
(uidl.ui_hide && (uidl.ui_busy == null || uidl.ui_busy < now)))) {
EntityLog.log(context, account.name + " POP purging" +
" msgid=" + uidl.msgid + " hidden=" + uidl.ui_hide);
db.message().deleteMessage(uidl.id); db.message().deleteMessage(uidl.id);
} }
} }
}
boolean _new = true; boolean _new = true;
for (int i = reversed ? 0 : imessages.length - 1; reversed ? i < max : i >= imessages.length - max; i += reversed ? 1 : -1) { for (int i = reversed ? 0 : imessages.length - 1; reversed ? i < max : i >= imessages.length - max; i += reversed ? 1 : -1) {

Loading…
Cancel
Save