@Override public void syncHeadersProgress(@NotNull String folderServerId, int completed, int total) { for (MessagingListener messagingListener : getListeners(listener)) { messagingListener.synchronizeMailboxHeadersProgress(account, folderServerId, completed, total); } }
@Override public void folderStatusChanged(@NotNull String folderServerId, int unreadMessageCount) { for (MessagingListener messagingListener : getListeners(listener)) { messagingListener.folderStatusChanged(account, folderServerId, unreadMessageCount); } }
public void setPushActive(String folderServerId, boolean enabled) { for (MessagingListener l : controller.getListeners()) { l.setPushActive(account, folderServerId, enabled); } } }
public void systemStatusChanged() { for (MessagingListener l : getListeners()) { l.systemStatusChanged(); } }
@Override public void syncStarted(@NotNull String folderServerId, @NotNull String folderName) { for (MessagingListener messagingListener : getListeners(listener)) { messagingListener.synchronizeMailboxStarted(account, folderServerId, folderName); } }
@Override public void syncHeadersStarted(@NotNull String folderServerId, @NotNull String folderName) { for (MessagingListener messagingListener : getListeners(listener)) { messagingListener.synchronizeMailboxHeadersStarted(account, folderServerId, folderName); } }
@Override public void syncHeadersFinished(@NotNull String folderServerId, int totalMessagesInMailbox, int numNewMessages) { for (MessagingListener messagingListener : getListeners(listener)) { messagingListener.synchronizeMailboxHeadersFinished(account, folderServerId, totalMessagesInMailbox, numNewMessages); } }
@Override public void syncProgress(@NotNull String folderServerId, int completed, int total) { for (MessagingListener messagingListener : getListeners(listener)) { messagingListener.synchronizeMailboxProgress(account, folderServerId, completed, total); } }
@Override public void syncRemovedMessage(@NotNull String folderServerId, @NotNull String messageServerId) { for (MessagingListener messagingListener : getListeners(listener)) { messagingListener.synchronizeMailboxRemovedMessage(account, folderServerId, messageServerId); } }
@Override public void syncFinished(@NotNull String folderServerId, int totalMessagesInMailbox, int numNewMessages) { for (MessagingListener messagingListener : getListeners(listener)) { messagingListener.synchronizeMailboxFinished(account, folderServerId, totalMessagesInMailbox, numNewMessages); } }
@Override public void syncFailed(@NotNull String folderServerId, @NotNull String message, Exception exception) { syncFailed = true; if (exception instanceof AuthenticationFailedException) { handleAuthenticationFailure(account, true); } else { notifyUserIfCertificateProblem(account, exception, true); } for (MessagingListener messagingListener : getListeners(listener)) { messagingListener.synchronizeMailboxFailed(account, folderServerId, message); } }
private void notifySynchronizeMailboxFailed(Account account, Folder localFolder, Exception exception) { String folderServerId = localFolder.getServerId(); String errorMessage = getRootCauseMessage(exception); for (MessagingListener listener : getListeners()) { listener.synchronizeMailboxFailed(account, folderServerId, errorMessage); } }
@Override public void syncNewMessage(@NotNull String folderServerId, @NotNull String messageServerId, boolean isOldMessage) { // Send a notification of this message LocalMessage message = loadMessage(folderServerId, messageServerId); LocalFolder localFolder = message.getFolder(); if (notificationStrategy.shouldNotifyForMessage(account, localFolder, message, isOldMessage)) { // Notify with the localMessage so that we don't have to recalculate the content preview. notificationController.addNewMailNotification(account, message, previousUnreadMessageCount); } if (!message.isSet(Flag.SEEN)) { for (MessagingListener messagingListener : getListeners(listener)) { messagingListener.synchronizeMailboxNewMessage(account, folderServerId, message); } } }
@VisibleForTesting void refreshRemoteSynchronous(final Account account, final MessagingListener listener) { List<LocalFolder> localFolders = null; try { Backend backend = getBackend(account); backend.refreshFolderList(); LocalStore localStore = localStoreProvider.getInstance(account); localFolders = localStore.getPersonalNamespaces(false); for (MessagingListener l : getListeners(listener)) { l.listFolders(account, localFolders); } for (MessagingListener l : getListeners(listener)) { l.listFoldersFinished(account); } } catch (Exception e) { Timber.e(e); for (MessagingListener l : getListeners(listener)) { l.listFoldersFailed(account, ""); } } finally { if (localFolders != null) { for (Folder localFolder : localFolders) { closeFolder(localFolder); } } } }
for (MessagingListener l : getListeners(listener)) { l.loadAttachmentFinished(account, message, part); Timber.v(me, "Exception loading attachment"); for (MessagingListener l : getListeners(listener)) { l.loadAttachmentFailed(account, message, part, me.getMessage());
@Override public void run() { try { LocalStore localStore = localStoreProvider.getInstance(account); long oldSize = localStore.getSize(); localStore.compact(); long newSize = localStore.getSize(); for (MessagingListener l : getListeners(ml)) { l.accountSizeChanged(account, oldSize, newSize); } } catch (UnavailableStorageException e) { Timber.i("Failed to compact account because storage is not available - trying again later."); throw new UnavailableAccountException(e); } catch (Exception e) { Timber.e(e, "Failed to compact account %s", account.getDescription()); } } });
for (MessagingListener l : getListeners()) { l.emptyTrashCompleted(account);
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.open(Folder.OPEN_MODE_RW); List<? extends Message> messages = localFolder.getMessages(null, false); for (Message message : messages) { if (!message.isSet(Flag.SEEN)) { message.setFlag(Flag.SEEN, true); } } for (MessagingListener l : getListeners()) { l.folderStatusChanged(account, folder, 0); } } finally { closeFolder(localFolder); } Backend backend = getBackend(account); if (backend.getSupportsSeenFlag()) { backend.markAllAsRead(folder); } }
@Override public void run() { try { LocalStore localStore = localStoreProvider.getInstance(account); long oldSize = localStore.getSize(); localStore.recreate(); localStore.resetVisibleLimits(account.getDisplayCount()); long newSize = localStore.getSize(); AccountStats stats = new AccountStats(); stats.size = newSize; stats.unreadMessageCount = 0; stats.flaggedMessageCount = 0; for (MessagingListener l : getListeners(ml)) { l.accountSizeChanged(account, oldSize, newSize); l.accountStatusChanged(account, stats); } } catch (UnavailableStorageException e) { Timber.i("Failed to recreate an account because storage is not available - trying again later."); throw new UnavailableAccountException(e); } catch (Exception e) { Timber.e(e, "Failed to recreate account %s", account.getDescription()); } } });
@Override public void run() { try { LocalStore localStore = localStoreProvider.getInstance(account); long oldSize = localStore.getSize(); localStore.clear(); localStore.resetVisibleLimits(account.getDisplayCount()); long newSize = localStore.getSize(); AccountStats stats = new AccountStats(); stats.size = newSize; stats.unreadMessageCount = 0; stats.flaggedMessageCount = 0; for (MessagingListener l : getListeners(ml)) { l.accountSizeChanged(account, oldSize, newSize); l.accountStatusChanged(account, stats); } } catch (UnavailableStorageException e) { Timber.i("Failed to clear account because storage is not available - trying again later."); throw new UnavailableAccountException(e); } catch (Exception e) { Timber.e(e, "Failed to clear account %s", account.getDescription()); } } });