Loading app/core/src/main/java/com/fsck/k9/controller/MessagingController.java +15 −12 Original line number Diff line number Diff line Loading @@ -955,13 +955,18 @@ public class MessagingController { } void processPendingMarkAllAsRead(PendingMarkAllAsRead command, Account account) throws MessagingException { String folder = command.folder; LocalFolder localFolder = null; try { LocalStore localStore = localStoreProvider.getInstance(account); localFolder = localStore.getFolder(folder); LocalFolder localFolder = localStore.getFolder(command.folderId); String folderServerId; try { localFolder.open(); List<? extends Message> messages = localFolder.getMessages(null, false); folderServerId = localFolder.getServerId(); Timber.i("Marking all messages in %s:%s as read", account, folderServerId); // TODO: Make this one database UPDATE operation List<LocalMessage> messages = localFolder.getMessages(null, false); for (Message message : messages) { if (!message.isSet(Flag.SEEN)) { message.setFlag(Flag.SEEN, true); Loading @@ -969,22 +974,20 @@ public class MessagingController { } for (MessagingListener l : getListeners()) { l.folderStatusChanged(account, folder); l.folderStatusChanged(account, folderServerId); } } finally { closeFolder(localFolder); localFolder.close(); } Backend backend = getBackend(account); if (backend.getSupportsSeenFlag()) { backend.markAllAsRead(folder); backend.markAllAsRead(folderServerId); } } public void markAllMessagesRead(final Account account, final String folder) { Timber.i("Marking all messages in %s:%s as read", account.getDescription(), folder); PendingCommand command = PendingMarkAllAsRead.create(folder); public void markAllMessagesRead(Account account, long folderId) { PendingCommand command = PendingMarkAllAsRead.create(folderId); queuePendingCommand(account, command); processPendingCommands(account); } Loading app/core/src/main/java/com/fsck/k9/controller/MessagingControllerCommands.java +5 −6 Original line number Diff line number Diff line Loading @@ -178,16 +178,15 @@ public class MessagingControllerCommands { } public static class PendingMarkAllAsRead extends PendingCommand { public final String folder; public final long folderId; public static PendingMarkAllAsRead create(String folder) { checkNotNull(folder); return new PendingMarkAllAsRead(folder); public static PendingMarkAllAsRead create(long folderId) { return new PendingMarkAllAsRead(folderId); } private PendingMarkAllAsRead(String folder) { this.folder = folder; private PendingMarkAllAsRead(long folderId) { this.folderId = folderId; } @Override Loading app/ui/src/main/java/com/fsck/k9/fragment/MessageListFragment.java +1 −1 Original line number Diff line number Diff line Loading @@ -2343,7 +2343,7 @@ public class MessageListFragment extends Fragment implements OnItemClickListener private void markAllAsRead() { if (isMarkAllAsReadSupported()) { messagingController.markAllMessagesRead(account, folderServerId); messagingController.markAllMessagesRead(account, currentFolder.databaseId); } } Loading Loading
app/core/src/main/java/com/fsck/k9/controller/MessagingController.java +15 −12 Original line number Diff line number Diff line Loading @@ -955,13 +955,18 @@ public class MessagingController { } void processPendingMarkAllAsRead(PendingMarkAllAsRead command, Account account) throws MessagingException { String folder = command.folder; LocalFolder localFolder = null; try { LocalStore localStore = localStoreProvider.getInstance(account); localFolder = localStore.getFolder(folder); LocalFolder localFolder = localStore.getFolder(command.folderId); String folderServerId; try { localFolder.open(); List<? extends Message> messages = localFolder.getMessages(null, false); folderServerId = localFolder.getServerId(); Timber.i("Marking all messages in %s:%s as read", account, folderServerId); // TODO: Make this one database UPDATE operation List<LocalMessage> messages = localFolder.getMessages(null, false); for (Message message : messages) { if (!message.isSet(Flag.SEEN)) { message.setFlag(Flag.SEEN, true); Loading @@ -969,22 +974,20 @@ public class MessagingController { } for (MessagingListener l : getListeners()) { l.folderStatusChanged(account, folder); l.folderStatusChanged(account, folderServerId); } } finally { closeFolder(localFolder); localFolder.close(); } Backend backend = getBackend(account); if (backend.getSupportsSeenFlag()) { backend.markAllAsRead(folder); backend.markAllAsRead(folderServerId); } } public void markAllMessagesRead(final Account account, final String folder) { Timber.i("Marking all messages in %s:%s as read", account.getDescription(), folder); PendingCommand command = PendingMarkAllAsRead.create(folder); public void markAllMessagesRead(Account account, long folderId) { PendingCommand command = PendingMarkAllAsRead.create(folderId); queuePendingCommand(account, command); processPendingCommands(account); } Loading
app/core/src/main/java/com/fsck/k9/controller/MessagingControllerCommands.java +5 −6 Original line number Diff line number Diff line Loading @@ -178,16 +178,15 @@ public class MessagingControllerCommands { } public static class PendingMarkAllAsRead extends PendingCommand { public final String folder; public final long folderId; public static PendingMarkAllAsRead create(String folder) { checkNotNull(folder); return new PendingMarkAllAsRead(folder); public static PendingMarkAllAsRead create(long folderId) { return new PendingMarkAllAsRead(folderId); } private PendingMarkAllAsRead(String folder) { this.folder = folder; private PendingMarkAllAsRead(long folderId) { this.folderId = folderId; } @Override Loading
app/ui/src/main/java/com/fsck/k9/fragment/MessageListFragment.java +1 −1 Original line number Diff line number Diff line Loading @@ -2343,7 +2343,7 @@ public class MessageListFragment extends Fragment implements OnItemClickListener private void markAllAsRead() { if (isMarkAllAsReadSupported()) { messagingController.markAllMessagesRead(account, folderServerId); messagingController.markAllMessagesRead(account, currentFolder.databaseId); } } Loading