|
|
|
@ -1536,12 +1536,14 @@ class Core {
|
|
|
|
|
List<TupleUidl> ids = db.message().getUidls(folder.id);
|
|
|
|
|
Log.i(folder.name + " POP existing=" + ids.size());
|
|
|
|
|
|
|
|
|
|
// Map identifiers
|
|
|
|
|
Map<String, TupleUidl> uidls = new HashMap<>();
|
|
|
|
|
Map<String, TupleUidl> msgids = new HashMap<>();
|
|
|
|
|
for (TupleUidl id : ids)
|
|
|
|
|
if (id.uidl == null)
|
|
|
|
|
db.message().deleteMessage(id.id);
|
|
|
|
|
else
|
|
|
|
|
if (id.uidl != null)
|
|
|
|
|
uidls.put(id.uidl, id);
|
|
|
|
|
else if (id.msgid != null)
|
|
|
|
|
msgids.put(id.msgid, id);
|
|
|
|
|
|
|
|
|
|
for (Message imessage : imessages)
|
|
|
|
|
try {
|
|
|
|
@ -1560,10 +1562,19 @@ class Core {
|
|
|
|
|
|
|
|
|
|
if (uidls.containsKey(uidl)) {
|
|
|
|
|
uidls.remove(uidl);
|
|
|
|
|
Log.i(folder.name + " POP having=" + uidl);
|
|
|
|
|
Log.i(folder.name + " POP having uidl=" + uidl);
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (caps.containsKey("UIDL")) {
|
|
|
|
|
String msgid = helper.getMessageID();
|
|
|
|
|
if (msgids.containsKey(msgid)) {
|
|
|
|
|
Log.i(folder.name + " POP having msgid=" + msgid);
|
|
|
|
|
db.message().setMessageUidl(msgids.get(msgid).id, uidl);
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
Log.i(folder.name + " POP sync=" + uidl);
|
|
|
|
|
|
|
|
|
|