From 36bfa673e69f73e1ed648a6121d71fba12f62636 Mon Sep 17 00:00:00 2001 From: M66B Date: Sat, 27 Jul 2019 11:42:19 +0200 Subject: [PATCH] Always download sent message text --- app/src/main/java/eu/faircode/email/Core.java | 15 +++++++-------- .../main/java/eu/faircode/email/ServiceSend.java | 14 -------------- 2 files changed, 7 insertions(+), 22 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/Core.java b/app/src/main/java/eu/faircode/email/Core.java index 46ad2bc222..8047918313 100644 --- a/app/src/main/java/eu/faircode/email/Core.java +++ b/app/src/main/java/eu/faircode/email/Core.java @@ -484,17 +484,11 @@ class Core { // Get raw message MimeMessage imessage; if (folder.id.equals(message.folder)) { - // Pre flight checks + // Pre flight check if (!message.content) throw new IllegalArgumentException("Message body missing"); - // 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); + imessage = MessageHelper.from(context, message, null, isession); } else { // Cross account move File file = message.getRawFile(context); @@ -1404,6 +1398,11 @@ class Core { dup.sent = helper.getSent(); } + // Download message again to get signature / quoted message + // This will propagate any modifications by the server locally as well + if (EntityFolder.SENT.equals(folder.type)) + dup.content = false; + dup.error = null; message = dup; diff --git a/app/src/main/java/eu/faircode/email/ServiceSend.java b/app/src/main/java/eu/faircode/email/ServiceSend.java index cc523c685c..2fb0e2df5f 100644 --- a/app/src/main/java/eu/faircode/email/ServiceSend.java +++ b/app/src/main/java/eu/faircode/email/ServiceSend.java @@ -36,7 +36,6 @@ import androidx.core.content.ContextCompat; import androidx.lifecycle.Observer; import androidx.preference.PreferenceManager; -import java.io.File; import java.io.IOException; import java.net.Inet4Address; import java.net.Inet6Address; @@ -379,16 +378,6 @@ public class ServiceSend extends ServiceBase { "Sent via " + ident.host + "/" + ident.user + " to " + TextUtils.join(", ", to)); - // Append replied/forwarded text - StringBuilder sb = new StringBuilder(); - sb.append(Helper.readText(message.getFile(this))); - if (!TextUtils.isEmpty(ident.signature)) - sb.append(ident.signature); - File refFile = message.getRefFile(this); - if (refFile.exists()) - sb.append(Helper.readText(refFile)); - Helper.writeText(message.getFile(this), sb.toString()); - try { db.beginTransaction(); @@ -416,9 +405,6 @@ public class ServiceSend extends ServiceBase { db.endTransaction(); } - if (refFile.exists()) - refFile.delete(); - db.identity().setIdentityConnected(ident.id, new Date().getTime()); db.identity().setIdentityError(ident.id, null);