From 4cdacb46983ae3269723269a05d5e92b18897993 Mon Sep 17 00:00:00 2001 From: M66B Date: Fri, 6 Mar 2020 14:35:03 +0100 Subject: [PATCH] Print attachment names/sizes --- .../eu/faircode/email/FragmentMessages.java | 43 ++++++++++++++----- app/src/main/res/values/strings.xml | 1 + 2 files changed, 34 insertions(+), 10 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/FragmentMessages.java b/app/src/main/java/eu/faircode/email/FragmentMessages.java index c0ba8ee7ae..885249232e 100644 --- a/app/src/main/java/eu/faircode/email/FragmentMessages.java +++ b/app/src/main/java/eu/faircode/email/FragmentMessages.java @@ -5978,11 +5978,15 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences. if (!file.exists()) return null; + List attachments = db.attachment().getAttachments(message.id); + if (attachments == null) + return null; + Document document = JsoupEx.parse(file); HtmlHelper.truncate(document, false); HtmlHelper.embedInlineImages(context, id, document, true); - Element p = document.createElement("p"); + Element header = document.createElement("p"); if (message.from != null && message.from.length > 0) { Element span = document.createElement("span"); @@ -5991,7 +5995,7 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences. span.appendChild(strong); span.appendText(" " + MessageHelper.formatAddresses(message.from)); span.appendElement("br"); - p.appendChild(span); + header.appendChild(span); } if (message.to != null && message.to.length > 0) { @@ -6001,7 +6005,7 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences. span.appendChild(strong); span.appendText(" " + MessageHelper.formatAddresses(message.to)); span.appendElement("br"); - p.appendChild(span); + header.appendChild(span); } if (message.cc != null && message.cc.length > 0) { @@ -6011,7 +6015,7 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences. span.appendChild(strong); span.appendText(" " + MessageHelper.formatAddresses(message.cc)); span.appendElement("br"); - p.appendChild(span); + header.appendChild(span); } { @@ -6023,26 +6027,45 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences. span.appendChild(strong); span.appendText(" " + DTF.format(message.received)); span.appendElement("br"); - p.appendChild(span); + header.appendChild(span); } if (!TextUtils.isEmpty(message.subject)) { Element span = document.createElement("span"); span.appendText(message.subject); span.appendElement("br"); - p.appendChild(span); + header.appendChild(span); } if (headers && message.headers != null) { - p.appendElement("hr"); + header.appendElement("hr"); Element pre = document.createElement("pre"); pre.text(message.headers); - p.appendChild(pre); + header.appendChild(pre); } - p.appendElement("hr").appendElement("br"); + header.appendElement("hr").appendElement("br"); + + document.prependChild(header); + + boolean hasAttachments = false; + Element footer = document.createElement("p"); + footer.appendElement("br").appendElement("hr"); + for (EntityAttachment attachment : attachments) + if (!attachment.isInline()) { + hasAttachments = true; + Element strong = document.createElement("strong"); + strong.text(getString(R.string.title_attachment)); + footer.appendChild(strong); + if (!TextUtils.isEmpty(attachment.name)) + footer.appendText(" " + attachment.name); + if (attachment.size != null) + footer.appendText(" " + Helper.humanReadableByteCount(attachment.size, true)); + footer.appendElement("br"); + } - document.prependChild(p); + if (hasAttachments) + document.appendChild(footer); return new String[]{message.subject, document.html()}; } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index a4b07f6697..fd4ce7b6ca 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -771,6 +771,7 @@ Received: Size: Subject: + Attachment: Your message Discard Save