diff --git a/app/src/main/java/eu/faircode/email/Core.java b/app/src/main/java/eu/faircode/email/Core.java index b150813798..8e309a38f5 100644 --- a/app/src/main/java/eu/faircode/email/Core.java +++ b/app/src/main/java/eu/faircode/email/Core.java @@ -2929,7 +2929,7 @@ class Core { MessageHelper helper = new MessageHelper((MimeMessage) imessages[imessages.length - 1], context); String msgid = helper.getMessageID(); if (msgid != null) { - int count = db.message().countMessageByMsgId(folder.id, msgid); + int count = db.message().countMessageByMsgId(folder.id, msgid, true); if (count == 1) { Log.i(account.name + " POP having last msgid=" + msgid); sync = false; diff --git a/app/src/main/java/eu/faircode/email/DaoMessage.java b/app/src/main/java/eu/faircode/email/DaoMessage.java index f3e9f8e9d0..464743988f 100644 --- a/app/src/main/java/eu/faircode/email/DaoMessage.java +++ b/app/src/main/java/eu/faircode/email/DaoMessage.java @@ -452,8 +452,9 @@ public interface DaoMessage { @Query("SELECT COUNT(*) FROM message" + " WHERE folder = :folder" + - " AND msgid = :msgid") - int countMessageByMsgId(long folder, String msgid); + " AND msgid = :msgid" + + " AND (:hidden OR NOT message.ui_hide)") + int countMessageByMsgId(long folder, String msgid, boolean hidden); @Query("SELECT COUNT(*) FROM message" + " JOIN folder_view AS folder ON folder.id = message.folder" + diff --git a/app/src/main/java/eu/faircode/email/EntityOperation.java b/app/src/main/java/eu/faircode/email/EntityOperation.java index 4792a32840..571a0b3187 100644 --- a/app/src/main/java/eu/faircode/email/EntityOperation.java +++ b/app/src/main/java/eu/faircode/email/EntityOperation.java @@ -334,7 +334,7 @@ public class EntityOperation { if (premove && message.uid != null && !TextUtils.isEmpty(message.msgid) && - db.message().countMessageByMsgId(target.id, message.msgid) == 0) { + db.message().countMessageByMsgId(target.id, message.msgid, false) == 0) { File msource = message.getFile(context); // Copy message to target folder