diff --git a/app/src/main/java/eu/faircode/email/DaoMessage.java b/app/src/main/java/eu/faircode/email/DaoMessage.java index 217a7f2b..ea367870 100644 --- a/app/src/main/java/eu/faircode/email/DaoMessage.java +++ b/app/src/main/java/eu/faircode/email/DaoMessage.java @@ -44,7 +44,7 @@ public interface DaoMessage { " FROM message" + " JOIN folder ON folder.id = message.folder" + " WHERE (NOT message.ui_hide OR :debug)" + - " GROUP BY CASE WHEN message.thread IS NULL THEN message.id ELSE message.thread END" + + " GROUP BY CASE WHEN message.thread IS NULL THEN message.id ELSE message.thread END, message.subject" + " HAVING SUM(CASE WHEN folder.type = '" + EntityFolder.INBOX + "' THEN 1 ELSE 0 END) > 0" + " ORDER BY message.received DESC") DataSource.Factory pagedUnifiedInbox(boolean debug); @@ -57,7 +57,7 @@ public interface DaoMessage { " FROM message" + " JOIN folder ON folder.id = message.folder" + " WHERE (NOT message.ui_hide OR :debug)" + - " GROUP BY CASE WHEN message.thread IS NULL THEN message.id ELSE message.thread END" + + " GROUP BY CASE WHEN message.thread IS NULL THEN message.id ELSE message.thread END, message.subject" + " HAVING SUM(CASE WHEN folder.id = :folder THEN 1 ELSE 0 END) > 0" + " ORDER BY message.received DESC, message.sent DESC") DataSource.Factory pagedFolder(long folder, boolean debug); diff --git a/app/src/main/java/eu/faircode/email/FragmentCompose.java b/app/src/main/java/eu/faircode/email/FragmentCompose.java index ad904390..174f366d 100644 --- a/app/src/main/java/eu/faircode/email/FragmentCompose.java +++ b/app/src/main/java/eu/faircode/email/FragmentCompose.java @@ -542,6 +542,7 @@ public class FragmentCompose extends FragmentEx { draft = new EntityMessage(); draft.account = account; draft.folder = drafts.id; + draft.msgid = draft.generateMessageId(); if (ref != null) { draft.thread = ref.thread; diff --git a/app/src/main/java/eu/faircode/email/ServiceSynchronize.java b/app/src/main/java/eu/faircode/email/ServiceSynchronize.java index 1004fd12..80679dbc 100644 --- a/app/src/main/java/eu/faircode/email/ServiceSynchronize.java +++ b/app/src/main/java/eu/faircode/email/ServiceSynchronize.java @@ -722,6 +722,8 @@ public class ServiceSynchronize extends LifecycleService { try { JSONArray jargs = new JSONArray(op.args); EntityMessage message = db.message().getMessage(op.message); + if (message == null) + throw new MessageRemovedException(); if (EntityOperation.SEEN.equals(op.name)) doSeen(folder, ifolder, message, jargs);