From 29d7c1c3396b506fc72bcadeb12c4f113466318a Mon Sep 17 00:00:00 2001 From: M66B Date: Thu, 27 Oct 2022 21:50:09 +0200 Subject: [PATCH] Workaround lost S/MIME parts --- app/src/main/java/eu/faircode/email/Core.java | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/app/src/main/java/eu/faircode/email/Core.java b/app/src/main/java/eu/faircode/email/Core.java index ed365d3d1d..9e16bf7122 100644 --- a/app/src/main/java/eu/faircode/email/Core.java +++ b/app/src/main/java/eu/faircode/email/Core.java @@ -1187,6 +1187,24 @@ class Core { if (!message.content) throw new IllegalArgumentException("Message body missing"); + List attachments = db.attachment().getAttachments(message.id); + for (EntityAttachment attachment : attachments) + if (EntityAttachment.SMIME_SIGNATURE.equals(attachment.encryption)) + for (EntityAttachment content : attachments) + if (EntityAttachment.SMIME_CONTENT.equals(content.encryption)) { + boolean afile = attachment.getFile(context).exists(); + boolean cfile = content.getFile(context).exists(); + if (!attachment.available || !afile || !content.available || !cfile) { + Log.e("S/MIME vanished" + + " available=" + attachment.available + "/" + content.available + + " file=" + afile + "/" + cfile); + db.attachment().setAvailable(attachment.id, false); + db.attachment().setAvailable(content.id, false); + db.attachment().setEncryption(attachment.id, null); + db.attachment().setEncryption(content.id, null); + } + } + imessage = MessageHelper.from(context, message, null, isession, false); try (OutputStream os = new BufferedOutputStream(new FileOutputStream(file))) {