@Override public void messageFinished(final T message, int number, int ofTotal) { try { if (!shouldImportMessage(message, earliestDate)) { progress.incrementAndGet(); return; } // Store the updated message locally backendFolder.saveCompleteMessage(message); progress.incrementAndGet(); // Increment the number of "new messages" if the newly downloaded message is // not marked as read. if (!message.isSet(Flag.SEEN)) { newMessages.incrementAndGet(); } String messageServerId = message.getUid(); Timber.v("About to notify listeners that we got a new small message %s:%s:%s", accountName, folder, messageServerId); // Update the listener with what we've found listener.syncProgress(folder, progress.get(), todo); boolean isOldMessage = isOldMessage(messageServerId, lastUid); listener.syncNewMessage(folder, messageServerId, isOldMessage); } catch (Exception e) { Timber.e(e, "SYNC: fetch small messages"); } }
@Override public void messageFinished(final T message, int number, int ofTotal) { try { // Store the updated message locally backendFolder.saveCompleteMessage(message); progress.incrementAndGet(); // Increment the number of "new messages" if the newly downloaded message is // not marked as read. if (!message.isSet(Flag.SEEN)) { newMessages.incrementAndGet(); } String messageServerId = message.getUid(); Timber.v("About to notify listeners that we got a new small message %s:%s:%s", accountName, folder, messageServerId); // Update the listener with what we've found listener.syncProgress(folder, progress.get(), todo); boolean isOldMessage = isOldMessage(backendFolder, message); listener.syncNewMessage(folder, messageServerId, isOldMessage); } catch (Exception e) { Timber.e(e, "SYNC: fetch small messages"); } }
@Override public void messageFinished(final T message, int number, int ofTotal) { try { // Store the updated message locally backendFolder.saveCompleteMessage(message); progress.incrementAndGet(); // Increment the number of "new messages" if the newly downloaded message is // not marked as read. if (!message.isSet(Flag.SEEN)) { newMessages.incrementAndGet(); } String messageServerId = message.getUid(); Timber.v("About to notify listeners that we got a new small message %s:%s:%s", accountName, folder, messageServerId); // Update the listener with what we've found listener.syncProgress(folder, progress.get(), todo); listener.syncNewMessage(folder, messageServerId, false); } catch (Exception e) { Timber.e(e, "SYNC: fetch small messages"); } }
private void refreshLocalMessageFlags( SyncConfig syncConfig, final Folder remoteFolder, final BackendFolder backendFolder, List<Message> syncFlagMessages, final AtomicInteger progress, final int todo, SyncListener listener ) throws MessagingException { final String folder = remoteFolder.getServerId(); Timber.d("SYNC: About to sync flags for %d remote messages for folder %s", syncFlagMessages.size(), folder); FetchProfile fp = new FetchProfile(); fp.add(FetchProfile.Item.FLAGS); List<Message> undeletedMessages = new LinkedList<>(); for (Message message : syncFlagMessages) { if (!message.isSet(Flag.DELETED)) { undeletedMessages.add(message); } } remoteFolder.fetch(undeletedMessages, fp, null); for (Message remoteMessage : syncFlagMessages) { boolean messageChanged = syncFlags(syncConfig, backendFolder, remoteMessage); if (messageChanged) { listener.syncFlagChanged(folder, remoteMessage.getUid()); } progress.incrementAndGet(); listener.syncProgress(folder, progress.get(), todo); } }
listener.syncProgress(folder, progress.get(), todo);
listener.syncProgress(folder, progress.get(), todo);
@Override public void messageFinished(T message, int number, int ofTotal) { try { if (message.isSet(Flag.DELETED) || message.olderThan(earliestDate)) { if (message.isSet(Flag.DELETED)) { Timber.v("Newly downloaded message %s:%s:%s was marked deleted on server, " + "skipping", accountName, folder, message.getUid()); } else { Timber.d("Newly downloaded message %s is older than %s, skipping", message.getUid(), earliestDate); } progress.incrementAndGet(); //TODO: This might be the source of poll count errors in the UI. Is todo always the same as ofTotal listener.syncProgress(folder, progress.get(), todo); return; } if (syncConfig.getMaximumAutoDownloadMessageSize() > 0 && message.getSize() > syncConfig.getMaximumAutoDownloadMessageSize()) { largeMessages.add(message); } else { smallMessages.add(message); } } catch (Exception e) { Timber.e(e, "Error while storing downloaded message."); } }
listener.syncProgress(folder, progress.get(), todo);
listener.syncProgress(folder, progress.get(), todo);
@Override public void messageFinished(T message, int number, int ofTotal) { try { if (message.isSet(Flag.DELETED) || message.olderThan(earliestDate)) { if (message.isSet(Flag.DELETED)) { Timber.v("Newly downloaded message %s:%s:%s was marked deleted on server, " + "skipping", accountName, folder, message.getUid()); } else { Timber.d("Newly downloaded message %s is older than %s, skipping", message.getUid(), earliestDate); } progress.incrementAndGet(); //TODO: This might be the source of poll count errors in the UI. Is todo always the same as ofTotal listener.syncProgress(folder, progress.get(), todo); return; } if (syncConfig.getMaximumAutoDownloadMessageSize() > 0 && message.getSize() > syncConfig.getMaximumAutoDownloadMessageSize()) { largeMessages.add(message); } else { smallMessages.add(message); } } catch (Exception e) { Timber.e(e, "Error while storing downloaded message."); } }
listener.syncProgress(folder, progress.get(), todo);
@Override public void messageFinished(T message, int number, int ofTotal) { try { if (message.isSet(Flag.DELETED) || message.olderThan(earliestDate)) { if (message.isSet(Flag.DELETED)) { Timber.v("Newly downloaded message %s:%s:%s was marked deleted on server, " + "skipping", accountName, folder, message.getUid()); } else { Timber.d("Newly downloaded message %s is older than %s, skipping", message.getUid(), earliestDate); } progress.incrementAndGet(); //TODO: This might be the source of poll count errors in the UI. Is todo always the same as ofTotal listener.syncProgress(folder, progress.get(), todo); return; } if (syncConfig.getMaximumAutoDownloadMessageSize() > 0 && message.getSize() > syncConfig.getMaximumAutoDownloadMessageSize()) { largeMessages.add(message); } else { smallMessages.add(message); } } catch (Exception e) { Timber.e(e, "Error while storing downloaded message."); } }
listener.syncProgress(folder, progress.get(), todo);
listener.syncProgress(folder, progress.get(), todo);
listener.syncProgress(folder, progress.get(), todo);