|
|
|
@ -1529,8 +1529,8 @@ class Core {
|
|
|
|
|
|
|
|
|
|
db.folder().setFolderSyncState(folder.id, "downloading");
|
|
|
|
|
|
|
|
|
|
List<String> existing = db.message().getMsgIds(folder.id);
|
|
|
|
|
Log.i(folder.name + " POP existing=" + existing.size());
|
|
|
|
|
List<String> uidls = db.message().getUidls(folder.id);
|
|
|
|
|
Log.i(folder.name + " POP existing=" + uidls.size());
|
|
|
|
|
|
|
|
|
|
for (Message imessage : imessages)
|
|
|
|
|
try {
|
|
|
|
@ -1538,23 +1538,23 @@ class Core {
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
|
|
MessageHelper helper = new MessageHelper((MimeMessage) imessage);
|
|
|
|
|
String msgid = caps.containsKey("UIDL")
|
|
|
|
|
String uidl = caps.containsKey("UIDL")
|
|
|
|
|
? ifolder.getUID(imessage)
|
|
|
|
|
: helper.getMessageID();
|
|
|
|
|
|
|
|
|
|
if (TextUtils.isEmpty(msgid)) {
|
|
|
|
|
if (TextUtils.isEmpty(uidl)) {
|
|
|
|
|
Log.w(folder.name + " POP no message ID");
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (existing.contains(msgid)) {
|
|
|
|
|
existing.remove(msgid);
|
|
|
|
|
Log.i(folder.name + " POP having=" + msgid);
|
|
|
|
|
if (uidls.contains(uidl)) {
|
|
|
|
|
uidls.remove(uidl);
|
|
|
|
|
Log.i(folder.name + " POP having=" + uidl);
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
Log.i(folder.name + " POP sync=" + msgid);
|
|
|
|
|
Log.i(folder.name + " POP sync=" + uidl);
|
|
|
|
|
|
|
|
|
|
Long sent = helper.getSent();
|
|
|
|
|
if (sent == null)
|
|
|
|
@ -1567,8 +1567,8 @@ class Core {
|
|
|
|
|
message.account = folder.account;
|
|
|
|
|
message.folder = folder.id;
|
|
|
|
|
message.uid = null;
|
|
|
|
|
|
|
|
|
|
message.msgid = msgid;
|
|
|
|
|
message.uidl = uidl;
|
|
|
|
|
message.msgid = helper.getMessageID();
|
|
|
|
|
message.hash = helper.getHash();
|
|
|
|
|
message.references = TextUtils.join(" ", helper.getReferences());
|
|
|
|
|
message.inreplyto = helper.getInReplyTo();
|
|
|
|
@ -1671,7 +1671,7 @@ class Core {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (!account.leave_on_device)
|
|
|
|
|
for (String msgid : existing) {
|
|
|
|
|
for (String msgid : uidls) {
|
|
|
|
|
Log.i(folder.name + " POP deleted=" + msgid);
|
|
|
|
|
db.message().deleteMessage(folder.id, msgid);
|
|
|
|
|
}
|
|
|
|
|