Optimize message counting

This commit is contained in:
M66B 2021-10-06 17:12:31 +02:00
parent bace770598
commit 8641448ade
2 changed files with 11 additions and 15 deletions

View File

@ -1663,21 +1663,7 @@ public class IMAPFolder extends Folder implements UIDFolder, ResponseHandler {
synchronized (messageCacheLock) {
if (messageCache == null)
return -1;
try {
int count = 0;
int size = messageCache.size();
for (int i = 1; i <= size; i++) {
Message message = messageCache.getMessage(i);
if (message != null && !message.isExpunged())
count++;
}
return count;
} catch (Throwable ex) {
eu.faircode.email.Log.e(ex);
return -1;
}
return messageCache.getCount();
}
}

View File

@ -130,6 +130,16 @@ public class MessageCache {
return msg;
}
public int getCount() {
int count = 0;
for (int i = 0; i < size; i++) {
IMAPMessage msg = messages[i];
if (msg == null || !msg.isExpunged())
count++;
}
return count;
}
/**
* Get the message object for the indicated sequence number.
* If the message object hasn't been created, create it.