From 0b10c17b0b729ab74815868f77621f67241f47a2 Mon Sep 17 00:00:00 2001 From: M66B Date: Mon, 15 Jul 2019 12:54:53 +0200 Subject: [PATCH] Respect folder download setting on inline download --- .../eu/faircode/email/BoundaryCallbackMessages.java | 2 +- app/src/main/java/eu/faircode/email/Core.java | 12 ++++++------ .../java/eu/faircode/email/ServiceSynchronize.java | 12 ++++++++---- 3 files changed, 15 insertions(+), 11 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/BoundaryCallbackMessages.java b/app/src/main/java/eu/faircode/email/BoundaryCallbackMessages.java index ff325e7fbb..7c9727fd58 100644 --- a/app/src/main/java/eu/faircode/email/BoundaryCallbackMessages.java +++ b/app/src/main/java/eu/faircode/email/BoundaryCallbackMessages.java @@ -416,7 +416,7 @@ public class BoundaryCallbackMessages extends PagedList.BoundaryCallback rules, State state) throws MessagingException, IOException { long uid = ifolder.getUID(imessage); @@ -1468,16 +1468,16 @@ class Core { updateContactInfo(context, folder, message); // Download small messages inline - if (message.size != null) { + if (download && message.size != null) { long maxSize; if (state == null || state.networkState.isUnmetered()) maxSize = MessageHelper.SMALL_MESSAGE_SIZE; else { SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); - int download = prefs.getInt("download", 0); - maxSize = (download == 0 + int downloadSize = prefs.getInt("download", 0); + maxSize = (downloadSize == 0 ? MessageHelper.SMALL_MESSAGE_SIZE - : Math.min(download, MessageHelper.SMALL_MESSAGE_SIZE)); + : Math.min(downloadSize, MessageHelper.SMALL_MESSAGE_SIZE)); } if (message.size < maxSize) { diff --git a/app/src/main/java/eu/faircode/email/ServiceSynchronize.java b/app/src/main/java/eu/faircode/email/ServiceSynchronize.java index aa1b0d6068..94a0b3e77f 100644 --- a/app/src/main/java/eu/faircode/email/ServiceSynchronize.java +++ b/app/src/main/java/eu/faircode/email/ServiceSynchronize.java @@ -825,17 +825,19 @@ public class ServiceSynchronize extends LifecycleService { fp.add(IMAPFolder.FetchProfileItem.INTERNALDATE); ifolder.fetch(e.getMessages(), fp); + boolean download = db.folder().getFolderDownload(folder.id); + for (Message imessage : e.getMessages()) try { EntityMessage message = Core.synchronizeMessage( ServiceSynchronize.this, account, folder, ifolder, (IMAPMessage) imessage, - false, + false, download, db.rule().getEnabledRules(folder.id), state); - if (db.folder().getFolderDownload(folder.id)) + if (download) Core.downloadMessage(ServiceSynchronize.this, folder, ifolder, (IMAPMessage) imessage, message.id, state); @@ -920,15 +922,17 @@ public class ServiceSynchronize extends LifecycleService { fp.add(IMAPFolder.FetchProfileItem.FLAGS); ifolder.fetch(new Message[]{e.getMessage()}, fp); + boolean download = db.folder().getFolderDownload(folder.id); + EntityMessage message = Core.synchronizeMessage( ServiceSynchronize.this, account, folder, ifolder, (IMAPMessage) e.getMessage(), - false, + false, download, db.rule().getEnabledRules(folder.id), state); - if (db.folder().getFolderDownload(folder.id)) + if (download) Core.downloadMessage(ServiceSynchronize.this, folder, ifolder, (IMAPMessage) e.getMessage(), message.id, state);