diff --git a/app/src/main/java/eu/faircode/email/Core.java b/app/src/main/java/eu/faircode/email/Core.java index d4ad0e4574..92af4d039e 100644 --- a/app/src/main/java/eu/faircode/email/Core.java +++ b/app/src/main/java/eu/faircode/email/Core.java @@ -2409,6 +2409,11 @@ class Core { update = true; message.hash = helper.getHash(); Log.i(folder.name + " updated id=" + message.id + " uid=" + message.uid + " hash=" + message.hash); + + // Update archive to prevent visible > 1 + if (EntityFolder.DRAFTS.equals(folder.type)) + for (EntityMessage dup : db.message().getMessagesByMsgId(message.account, message.msgid)) + db.message().setMessageHash(dup.id, message.hash); } if (message.ui_hide && diff --git a/app/src/main/java/eu/faircode/email/DaoMessage.java b/app/src/main/java/eu/faircode/email/DaoMessage.java index 2d70a6234d..3bde40ef4e 100644 --- a/app/src/main/java/eu/faircode/email/DaoMessage.java +++ b/app/src/main/java/eu/faircode/email/DaoMessage.java @@ -504,6 +504,9 @@ public interface DaoMessage { @Query("UPDATE message SET msgid = :msgid WHERE id = :id") int setMessageMsgId(long id, String msgid); + @Query("UPDATE message SET hash = :hash WHERE id = :id") + int setMessageHash(long id, String hash); + @Query("UPDATE message SET priority = :priority WHERE id = :id") int setMessagePriority(long id, Integer priority);