POP3: simplification

This commit is contained in:
M66B
2021-06-25 16:53:50 +02:00
parent e8166aadd8
commit 8976bee654

View File

@@ -2265,27 +2265,29 @@ class Core {
try {
db.folder().setFolderSyncState(folder.id, "syncing");
// Get capabilities
Map<String, String> caps = istore.capabilities();
boolean hasUidl = caps.containsKey("UIDL");
EntityLog.log(context, folder.name + " POP capabilities= " + caps.keySet());
// Get messages
Message[] imessages = ifolder.getMessages();
int max;
if (account.max_messages == null)
max = imessages.length;
else
max = Math.min(imessages.length, Math.max(account.max_messages * 2, 100));
int count = (account.max_messages == null ? imessages.length : account.max_messages);
List<TupleUidl> ids = db.message().getUidls(folder.id);
int max = (account.max_messages == null ? imessages.length : account.max_messages);
EntityLog.log(context, folder.name + " POP" +
" device=" + ids.size() +
" server=" + imessages.length +
" count=" + count +
" max=" + max + "/" + account.max_messages +
" uidl=" + hasUidl);
// Index IDs
Map<String, String> uidlMsgId = new HashMap<>();
for (TupleUidl id : ids) {
if (id.uidl != null && id.msgid != null)
uidlMsgId.put(id.uidl, id.msgid);
}
// Fetch UIDLs
if (hasUidl) {
FetchProfile ifetch = new FetchProfile();
@@ -2293,12 +2295,6 @@ class Core {
ifolder.fetch(imessages, ifetch);
}
// Index UIDLs
Map<String, String> uidlMsgId = new HashMap<>();
for (TupleUidl id : ids)
if (id.uidl != null && id.msgid != null)
uidlMsgId.put(id.uidl, id.msgid);
if (!account.leave_on_device) {
if (hasUidl) {
Map<String, TupleUidl> known = new HashMap<>();
@@ -2340,7 +2336,7 @@ class Core {
}
boolean _new = true;
for (int i = imessages.length - 1; i >= imessages.length - count; i--) {
for (int i = imessages.length - 1; i >= imessages.length - max; i--) {
Message imessage = imessages[i];
try {
if (!state.isRunning())