From d593c230cefbbbebea2f097bba505bb66d303605 Mon Sep 17 00:00:00 2001 From: M66B Date: Mon, 15 Jul 2019 12:27:58 +0200 Subject: [PATCH] Small improvement --- .../email/BoundaryCallbackMessages.java | 2 +- app/src/main/java/eu/faircode/email/Core.java | 50 +++++++++++-------- .../eu/faircode/email/ServiceSynchronize.java | 6 ++- 3 files changed, 33 insertions(+), 25 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/BoundaryCallbackMessages.java b/app/src/main/java/eu/faircode/email/BoundaryCallbackMessages.java index 09008d1917..ff325e7fbb 100644 --- a/app/src/main/java/eu/faircode/email/BoundaryCallbackMessages.java +++ b/app/src/main/java/eu/faircode/email/BoundaryCallbackMessages.java @@ -417,7 +417,7 @@ public class BoundaryCallbackMessages extends PagedList.BoundaryCallback rules) throws MessagingException, IOException { + List rules, State state) throws MessagingException, IOException { long uid = ifolder.getUID(imessage); if (imessage.isExpunged()) { @@ -1467,27 +1467,33 @@ class Core { if (message.received > account.created) updateContactInfo(context, folder, message); - SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); - long maxSize = prefs.getInt("download", 0); - if (maxSize == 0) - maxSize = MessageHelper.SMALL_MESSAGE_SIZE; - else - maxSize = Math.min(maxSize, MessageHelper.SMALL_MESSAGE_SIZE); - // Download small messages inline - if (message.size != null && message.size < maxSize) { - String body = parts.getHtml(context); - Helper.writeText(message.getFile(context), body); - db.message().setMessageContent(message.id, - true, - parts.isPlainOnly(), - HtmlHelper.getPreview(body), - parts.getWarnings(message.warning)); - Log.i(folder.name + " inline downloaded message id=" + message.id + - " size=" + message.size + "/" + (body == null ? null : body.length())); - - if (!TextUtils.isEmpty(body)) - fixAttachments(context, message.id, body); + if (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 + ? MessageHelper.SMALL_MESSAGE_SIZE + : Math.min(download, MessageHelper.SMALL_MESSAGE_SIZE)); + } + + if (message.size < maxSize) { + String body = parts.getHtml(context); + Helper.writeText(message.getFile(context), body); + db.message().setMessageContent(message.id, + true, + parts.isPlainOnly(), + HtmlHelper.getPreview(body), + parts.getWarnings(message.warning)); + Log.i(folder.name + " inline downloaded message id=" + message.id + + " size=" + message.size + "/" + (body == null ? null : body.length())); + + if (!TextUtils.isEmpty(body)) + fixAttachments(context, message.id, body); + } } } else { diff --git a/app/src/main/java/eu/faircode/email/ServiceSynchronize.java b/app/src/main/java/eu/faircode/email/ServiceSynchronize.java index 34bef0fdfe..aa1b0d6068 100644 --- a/app/src/main/java/eu/faircode/email/ServiceSynchronize.java +++ b/app/src/main/java/eu/faircode/email/ServiceSynchronize.java @@ -832,7 +832,8 @@ public class ServiceSynchronize extends LifecycleService { account, folder, ifolder, (IMAPMessage) imessage, false, - db.rule().getEnabledRules(folder.id)); + db.rule().getEnabledRules(folder.id), + state); if (db.folder().getFolderDownload(folder.id)) Core.downloadMessage(ServiceSynchronize.this, @@ -924,7 +925,8 @@ public class ServiceSynchronize extends LifecycleService { account, folder, ifolder, (IMAPMessage) e.getMessage(), false, - db.rule().getEnabledRules(folder.id)); + db.rule().getEnabledRules(folder.id), + state); if (db.folder().getFolderDownload(folder.id)) Core.downloadMessage(ServiceSynchronize.this,