From 8976bee654203e65df5a369a69ace7cefc670f3d Mon Sep 17 00:00:00 2001 From: M66B Date: Fri, 25 Jun 2021 16:53:50 +0200 Subject: [PATCH] POP3: simplification --- app/src/main/java/eu/faircode/email/Core.java | 26 ++++++++----------- 1 file changed, 11 insertions(+), 15 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/Core.java b/app/src/main/java/eu/faircode/email/Core.java index a52db7b275..22e73fe01c 100644 --- a/app/src/main/java/eu/faircode/email/Core.java +++ b/app/src/main/java/eu/faircode/email/Core.java @@ -2265,27 +2265,29 @@ class Core { try { db.folder().setFolderSyncState(folder.id, "syncing"); + // Get capabilities Map 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 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 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 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 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())