From 91e92122890844d9d77cc72d8c806d51dc3fc2ac Mon Sep 17 00:00:00 2001 From: M66B Date: Mon, 2 Sep 2019 10:48:11 +0200 Subject: [PATCH] Send fixes --- app/src/main/java/eu/faircode/email/Core.java | 8 ++++---- .../java/eu/faircode/email/EntityMessage.java | 6 +++++- .../java/eu/faircode/email/MessageHelper.java | 2 ++ .../java/eu/faircode/email/ServiceSend.java | 20 +++++++++++-------- 4 files changed, 23 insertions(+), 13 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/Core.java b/app/src/main/java/eu/faircode/email/Core.java index 6334d832fc..509f58b456 100644 --- a/app/src/main/java/eu/faircode/email/Core.java +++ b/app/src/main/java/eu/faircode/email/Core.java @@ -1295,14 +1295,14 @@ class Core { Log.i(folder.name + " sent orphans=" + orphans.size()); for (EntityMessage orphan : orphans) { Log.i(folder.name + " adding orphan id=" + orphan.id); - if (orphan.content) + if (orphan.content && orphan.ui_hide == 0L) EntityOperation.queue(context, orphan, EntityOperation.ADD); } + } else { + // Delete not synchronized messages without uid + db.message().deleteOrphans(folder.id); } - // Delete not synchronized messages without uid - db.message().deleteOrphans(folder.id); - int count = ifolder.getMessageCount(); db.folder().setFolderTotal(folder.id, count < 0 ? null : count); diff --git a/app/src/main/java/eu/faircode/email/EntityMessage.java b/app/src/main/java/eu/faircode/email/EntityMessage.java index 9922ed9715..33dca48ed1 100644 --- a/app/src/main/java/eu/faircode/email/EntityMessage.java +++ b/app/src/main/java/eu/faircode/email/EntityMessage.java @@ -188,13 +188,17 @@ public class EntityMessage implements Serializable { return addresses.toArray(new Address[0]); } - File getFile(Context context) { + static File getFile(Context context, Long id) { File dir = new File(context.getFilesDir(), "messages"); if (!dir.exists()) dir.mkdir(); return new File(dir, id.toString()); } + File getFile(Context context) { + return getFile(context, id); + } + File getFile(Context context, int revision) { File dir = new File(context.getFilesDir(), "revision"); if (!dir.exists()) diff --git a/app/src/main/java/eu/faircode/email/MessageHelper.java b/app/src/main/java/eu/faircode/email/MessageHelper.java index ea2b5a6b41..3418a79963 100644 --- a/app/src/main/java/eu/faircode/email/MessageHelper.java +++ b/app/src/main/java/eu/faircode/email/MessageHelper.java @@ -1017,6 +1017,8 @@ public class MessageHelper { private void getMessageParts(Part part, MessageParts parts, boolean pgp) throws IOException, FolderClosedException { try { + if (BuildConfig.DEBUG) + Log.i("Part class=" + part.getClass() + " type=" + part.getContentType()); if (part.isMimeType("multipart/*")) { Multipart multipart; Object content = part.getContent(); diff --git a/app/src/main/java/eu/faircode/email/ServiceSend.java b/app/src/main/java/eu/faircode/email/ServiceSend.java index 5bbc589ca3..24cc777352 100644 --- a/app/src/main/java/eu/faircode/email/ServiceSend.java +++ b/app/src/main/java/eu/faircode/email/ServiceSend.java @@ -375,14 +375,8 @@ public class ServiceSend extends ServiceBase { message.error = null; message.id = db.message().insertMessage(message); - MessageHelper.MessageParts parts = helper.getMessageParts(); - String body = parts.getHtml(this); - Helper.writeText(message.getFile(this), body); - db.message().setMessageContent(message.id, - true, - parts.isPlainOnly(), - HtmlHelper.getPreview(body), - parts.getWarnings(message.warning)); + message.getFile(this).createNewFile(); + EntityAttachment.copy(this, id, message.id); sid = message.id; message.id = id; @@ -412,6 +406,16 @@ public class ServiceSend extends ServiceBase { db.message().deleteMessage(message.id); if (sid != null) { + MessageHelper helper = new MessageHelper(imessage); + MessageHelper.MessageParts parts = helper.getMessageParts(); + String body = parts.getHtml(this); + Helper.writeText(EntityMessage.getFile(this, sid), body); + db.message().setMessageContent(message.id, + true, + parts.isPlainOnly(), + HtmlHelper.getPreview(body), + parts.getWarnings(message.warning)); + db.message().setMessageSent(sid, time); db.message().setMessageUiHide(sid, 0L); }