From 21457f908c9ff21bd53307c3cf0e4698284c5a45 Mon Sep 17 00:00:00 2001 From: M66B Date: Sun, 5 Sep 2021 19:37:45 +0200 Subject: [PATCH] Normalize attachments --- .../java/eu/faircode/email/ActivityEML.java | 2 +- .../java/eu/faircode/email/MessageHelper.java | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/eu/faircode/email/ActivityEML.java b/app/src/main/java/eu/faircode/email/ActivityEML.java index 20315274b5..3deff1b2b7 100644 --- a/app/src/main/java/eu/faircode/email/ActivityEML.java +++ b/app/src/main/java/eu/faircode/email/ActivityEML.java @@ -265,7 +265,7 @@ public class ActivityEML extends ActivityBase { result.sent = helper.getSent(); result.received = helper.getReceived(); result.subject = helper.getSubject(); - result.parts = helper.getMessageParts(); + result.parts = helper.getMessageParts(false); String html = result.parts.getHtml(context); if (html != null) { diff --git a/app/src/main/java/eu/faircode/email/MessageHelper.java b/app/src/main/java/eu/faircode/email/MessageHelper.java index 1cf87a37f4..8b36824d8f 100644 --- a/app/src/main/java/eu/faircode/email/MessageHelper.java +++ b/app/src/main/java/eu/faircode/email/MessageHelper.java @@ -1938,6 +1938,18 @@ public class MessageHelper { return false; } + void normalize() { + Boolean plain = isPlainOnly(); + if (plain == null || plain) + for (AttachmentPart apart : attachments) + if (!TextUtils.isEmpty(apart.attachment.cid) || + !Part.ATTACHMENT.equals(apart.attachment.disposition)) { + Log.i("Normalizing " + apart.attachment); + apart.attachment.cid = null; + apart.attachment.disposition = Part.ATTACHMENT; + } + } + Long getBodySize() throws MessagingException { Long size = null; @@ -2542,6 +2554,10 @@ public class MessageHelper { } MessageParts getMessageParts() throws IOException, MessagingException { + return getMessageParts(true); + } + + MessageParts getMessageParts(boolean normalize) throws IOException, MessagingException { MessageParts parts = new MessageParts(); try { @@ -2678,6 +2694,9 @@ public class MessageHelper { */ } + if (normalize) + parts.normalize(); + return parts; }