From 8fc3813961bd1b9b5d784e132823dfaa6effd740 Mon Sep 17 00:00:00 2001 From: M66B Date: Sat, 27 Jul 2019 08:39:35 +0200 Subject: [PATCH] Append signature/referenced message only when sending --- app/src/main/java/eu/faircode/email/Core.java | 7 +++++-- .../java/eu/faircode/email/FragmentCompose.java | 9 +++++---- .../java/eu/faircode/email/MessageHelper.java | 15 +++++++++------ 3 files changed, 19 insertions(+), 12 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/Core.java b/app/src/main/java/eu/faircode/email/Core.java index b81e697d39..57b9fad189 100644 --- a/app/src/main/java/eu/faircode/email/Core.java +++ b/app/src/main/java/eu/faircode/email/Core.java @@ -488,8 +488,11 @@ class Core { if (!message.content) throw new IllegalArgumentException("Message body missing"); - EntityIdentity identity = - (message.identity == null ? null : db.identity().getIdentity(message.identity)); + // Drafts/sent message are added with signature and referenced text + EntityIdentity identity = null; + if (message.identity != null && + (EntityFolder.DRAFTS.equals(folder.type) || EntityFolder.SENT.equals(folder.type))) + identity = db.identity().getIdentity(message.identity); imessage = MessageHelper.from(context, message, identity, isession); } else { diff --git a/app/src/main/java/eu/faircode/email/FragmentCompose.java b/app/src/main/java/eu/faircode/email/FragmentCompose.java index b45d74dbdc..3231463851 100644 --- a/app/src/main/java/eu/faircode/email/FragmentCompose.java +++ b/app/src/main/java/eu/faircode/email/FragmentCompose.java @@ -1351,14 +1351,11 @@ public class FragmentCompose extends FragmentBase { attachments.remove(attachment); } - EntityIdentity identity = - (message.identity == null ? null : db.identity().getIdentity(message.identity)); - // Build message Properties props = MessageHelper.getSessionProperties(null, false); Session isession = Session.getInstance(props, null); MimeMessage imessage = new MimeMessage(isession); - MessageHelper.build(context, message, attachments, identity, imessage); + MessageHelper.build(context, message, attachments, null, imessage); // Serialize message ByteArrayOutputStream os = new ByteArrayOutputStream(); @@ -1383,6 +1380,10 @@ public class FragmentCompose extends FragmentBase { Log.logExtras(result); } + // Identity to store sign key ID into + EntityIdentity identity = + (message.identity == null ? null : db.identity().getIdentity(message.identity)); + int resultCode = result.getIntExtra(OpenPgpApi.RESULT_CODE, OpenPgpApi.RESULT_CODE_ERROR); switch (resultCode) { case OpenPgpApi.RESULT_CODE_SUCCESS: diff --git a/app/src/main/java/eu/faircode/email/MessageHelper.java b/app/src/main/java/eu/faircode/email/MessageHelper.java index 269d23a30d..6b3480f832 100644 --- a/app/src/main/java/eu/faircode/email/MessageHelper.java +++ b/app/src/main/java/eu/faircode/email/MessageHelper.java @@ -338,12 +338,15 @@ public class MessageHelper { StringBuilder body = new StringBuilder(); body.append(Helper.readText(message.getFile(context))); - if (identity != null && !TextUtils.isEmpty(identity.signature)) - body.append(identity.signature); - - File refFile = message.getRefFile(context); - if (refFile.exists()) - body.append(Helper.readText(refFile)); + // When sending message + if (identity != null) { + if (!TextUtils.isEmpty(identity.signature)) + body.append(identity.signature); + + File refFile = message.getRefFile(context); + if (refFile.exists()) + body.append(Helper.readText(refFile)); + } String plainContent = HtmlHelper.getText(body.toString());