Append signature/referenced message only when sending

This commit is contained in:
M66B 2019-07-27 08:39:35 +02:00
parent 78c83b1f35
commit 8fc3813961
3 changed files with 18 additions and 11 deletions

View File

@ -488,8 +488,11 @@ class Core {
if (!message.content) if (!message.content)
throw new IllegalArgumentException("Message body missing"); throw new IllegalArgumentException("Message body missing");
EntityIdentity identity = // Drafts/sent message are added with signature and referenced text
(message.identity == null ? null : db.identity().getIdentity(message.identity)); 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); imessage = MessageHelper.from(context, message, identity, isession);
} else { } else {

View File

@ -1351,14 +1351,11 @@ public class FragmentCompose extends FragmentBase {
attachments.remove(attachment); attachments.remove(attachment);
} }
EntityIdentity identity =
(message.identity == null ? null : db.identity().getIdentity(message.identity));
// Build message // Build message
Properties props = MessageHelper.getSessionProperties(null, false); Properties props = MessageHelper.getSessionProperties(null, false);
Session isession = Session.getInstance(props, null); Session isession = Session.getInstance(props, null);
MimeMessage imessage = new MimeMessage(isession); MimeMessage imessage = new MimeMessage(isession);
MessageHelper.build(context, message, attachments, identity, imessage); MessageHelper.build(context, message, attachments, null, imessage);
// Serialize message // Serialize message
ByteArrayOutputStream os = new ByteArrayOutputStream(); ByteArrayOutputStream os = new ByteArrayOutputStream();
@ -1383,6 +1380,10 @@ public class FragmentCompose extends FragmentBase {
Log.logExtras(result); 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); int resultCode = result.getIntExtra(OpenPgpApi.RESULT_CODE, OpenPgpApi.RESULT_CODE_ERROR);
switch (resultCode) { switch (resultCode) {
case OpenPgpApi.RESULT_CODE_SUCCESS: case OpenPgpApi.RESULT_CODE_SUCCESS:

View File

@ -338,12 +338,15 @@ public class MessageHelper {
StringBuilder body = new StringBuilder(); StringBuilder body = new StringBuilder();
body.append(Helper.readText(message.getFile(context))); body.append(Helper.readText(message.getFile(context)));
if (identity != null && !TextUtils.isEmpty(identity.signature)) // When sending message
if (identity != null) {
if (!TextUtils.isEmpty(identity.signature))
body.append(identity.signature); body.append(identity.signature);
File refFile = message.getRefFile(context); File refFile = message.getRefFile(context);
if (refFile.exists()) if (refFile.exists())
body.append(Helper.readText(refFile)); body.append(Helper.readText(refFile));
}
String plainContent = HtmlHelper.getText(body.toString()); String plainContent = HtmlHelper.getText(body.toString());