private void downloadSaneBody(Folder remoteFolder, BackendFolder backendFolder, Message message) throws MessagingException { /* * The provider was unable to get the structure of the message, so * we'll download a reasonable portion of the messge and mark it as * incomplete so the entire thing can be downloaded later if the user * wishes to download it. */ FetchProfile fp = new FetchProfile(); fp.add(FetchProfile.Item.BODY_SANE); /* * TODO a good optimization here would be to make sure that all Stores set * the proper size after this fetch and compare the before and after size. If * they equal we can mark this SYNCHRONIZED instead of PARTIALLY_SYNCHRONIZED */ remoteFolder.fetch(Collections.singletonList(message), fp, null); // Store the updated message locally backendFolder.savePartialMessage(message); }
remoteFolder.fetch(unsyncedMessages, fp, new MessageRetrievalListener<T>() { @Override
remoteFolder.fetch(unsyncedMessages, fp, new MessageRetrievalListener<T>() { @Override
remoteFolder.fetch(unsyncedMessages, fp, new MessageRetrievalListener<T>() { @Override
remoteFolder.fetch(smallMessages, fp, new MessageRetrievalListener<T>() { @Override
remoteFolder.fetch(smallMessages, fp, new MessageRetrievalListener<T>() { @Override
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); } }
remoteFolder.fetch(smallMessages, fp, new MessageRetrievalListener<T>() { @Override
remoteFolder.fetch(undeletedMessages, fp, null); for (Message remoteMessage : syncFlagMessages) { boolean messageChanged = syncFlags(syncConfig, backendFolder, remoteMessage);
remoteFolder.fetch(undeletedMessages, fp, null); for (Message remoteMessage : syncFlagMessages) { boolean messageChanged = syncFlags(syncConfig, backendFolder, remoteMessage);
remoteFolder.fetch(largeMessages, fp, null); for (T message : largeMessages) {
remoteFolder.fetch(largeMessages, fp, null); for (T message : largeMessages) {
remoteFolder.fetch(largeMessages, fp, null); for (T message : largeMessages) {
remoteFolder.fetch(Collections.singletonList(message), fp, null);
remoteFolder.fetch(Collections.singletonList(message), fp, null);
try { if (LOCAL_LOGV) Log.v(TAG, "fetching message uid " + message.getUid()); message.getFolder().fetch(Collections.singletonList(message), fp, null); dataType = converter.getDataType(message);