From 44c2961c965f7368f1a32db36d8ccc4fec7186f3 Mon Sep 17 00:00:00 2001 From: M66B Date: Tue, 18 Feb 2025 07:51:37 +0100 Subject: [PATCH] Forward TNEF --- .../eu/faircode/email/FragmentCompose.java | 22 ++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/FragmentCompose.java b/app/src/main/java/eu/faircode/email/FragmentCompose.java index 22ef7e908d..9ddabd98fa 100644 --- a/app/src/main/java/eu/faircode/email/FragmentCompose.java +++ b/app/src/main/java/eu/faircode/email/FragmentCompose.java @@ -5926,8 +5926,7 @@ public class FragmentCompose extends FragmentBase { if ("list".equals(action) && ref.list_post != null) { data.draft.from = ref.to; data.draft.to = ref.list_post; - } - else if ("dsn".equals(action)) { + } else if ("dsn".equals(action)) { data.draft.from = ref.to; if (EntityMessage.DSN_RECEIPT.equals(dsn)) { if (ref.receipt_to != null) @@ -6408,11 +6407,24 @@ public class FragmentCompose extends FragmentBase { int sequence = 0; List attachments = db.attachment().getAttachments(ref.id); + + List tnef = new ArrayList<>(); + for (EntityAttachment attachment : attachments) + if (Helper.isTnef(attachment.type, attachment.name)) + tnef.add(attachment); + for (EntityAttachment attachment : attachments) - if (attachment.subsequence == null && - !attachment.isEncryption() && + if (attachment.subsequence == null + ? !attachment.isEncryption() && (cid.contains(attachment.cid) || - !("reply".equals(action) || "reply_all".equals(action)))) { + !("reply".equals(action) || "reply_all".equals(action))) + : "forward".equals(action) && + tnef.size() == 1 && + attachment.sequence.equals(tnef.get(0).sequence) && + !"subject.txt".equals(attachment.name) && + !"body.html".equals(attachment.name) && + !"body.rtf".equals(attachment.name) && + !"attributes.txt".equals(attachment.name)) { if (attachment.available) { File source = attachment.getFile(context);