mirror of https://github.com/M66B/FairEmail.git
Fix POP3 uidls
This commit is contained in:
parent
e3f899a81f
commit
5873f89efd
|
@ -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);
|
||||
|
||||
|
|
|
@ -664,10 +664,12 @@ public interface DaoMessage {
|
|||
@Query("UPDATE message SET ui_found = 0")
|
||||
int resetSearch();
|
||||
|
||||
@Query("UPDATE message SET ui_snoozed = :wakeup" +
|
||||
" WHERE id = :id")
|
||||
@Query("UPDATE message SET ui_snoozed = :wakeup WHERE id = :id")
|
||||
int setMessageSnoozed(long id, Long wakeup);
|
||||
|
||||
@Query("UPDATE message SET uidl = :uidl WHERE id = :id")
|
||||
int setMessageUidl(long id, String uidl);
|
||||
|
||||
@Query("UPDATE message SET notifying = 0")
|
||||
int clearNotifyingMessages();
|
||||
|
||||
|
|
Loading…
Reference in New Issue