Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 68e7b7fa authored by Daniel Applebaum's avatar Daniel Applebaum
Browse files

Fixes Issue 323

Fixes Issue 1105
Fixes Issue 1395
Fixes Issue 1421
Fixes Issue 1426

When the remote store is incapable of returning an unread message count (POP)
or a flagged message count (POP, WebDAV), count the number of local
messages with the desired atributes.

parent f7068615
Loading
Loading
Loading
Loading
+24 −2
Original line number Diff line number Diff line
@@ -1298,13 +1298,22 @@ public class MessagingController implements Runnable
        if (remoteUnreadMessageCount != -1)
        {
            localFolder.setUnreadMessageCount(remoteUnreadMessageCount);
            return remoteUnreadMessageCount;
        }
        else
        {
            return localFolder.getMessageCount();
            int unreadCount = 0;
            Message[] messages = localFolder.getMessages(null, false);
            for (Message message : messages)
            {
                if (message.isSet(Flag.SEEN) == false && message.isSet(Flag.DELETED) == false)
                {
                    unreadCount++;
                }
            }
            localFolder.setUnreadMessageCount(unreadCount);
        }
        return localFolder.getUnreadMessageCount();
    }

    private void setLocalFlaggedCountToRemote(LocalFolder localFolder, Folder remoteFolder) throws MessagingException
    {
@@ -1313,6 +1322,19 @@ public class MessagingController implements Runnable
        {
            localFolder.setFlaggedMessageCount(remoteFlaggedMessageCount);
        }
        else
        {
            int flaggedCount = 0;
            Message[] messages = localFolder.getMessages(null, false);
            for (Message message : messages)
            {
                if (message.isSet(Flag.FLAGGED) == true && message.isSet(Flag.DELETED) == false)
                {
                    flaggedCount++;
                }
            }
            localFolder.setFlaggedMessageCount(flaggedCount);
        }
    }

    private int downloadMessages(final Account account, final Folder remoteFolder,