Always download sent message text

This commit is contained in:
M66B 2019-07-27 11:42:19 +02:00
parent b2b48be05c
commit 36bfa673e6
2 changed files with 7 additions and 22 deletions

View File

@ -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;

View File

@ -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);