From 84189816ec309db057b75e259f980eed72de6582 Mon Sep 17 00:00:00 2001 From: M66B Date: Fri, 17 Aug 2018 04:52:06 +0000 Subject: [PATCH] Limit getting messages by ID by account Refs #41 --- app/src/main/java/eu/faircode/email/DaoMessage.java | 5 +++-- app/src/main/java/eu/faircode/email/ServiceSynchronize.java | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/DaoMessage.java b/app/src/main/java/eu/faircode/email/DaoMessage.java index 2f81ce20f3..9a57787e3b 100644 --- a/app/src/main/java/eu/faircode/email/DaoMessage.java +++ b/app/src/main/java/eu/faircode/email/DaoMessage.java @@ -82,10 +82,11 @@ public interface DaoMessage { @Query("SELECT message.* FROM message" + " JOIN folder ON folder.id = message.folder" + - " WHERE msgid = :msgid" + + " WHERE message.account = :account" + + " AND message.msgid = :msgid" + " AND folder.type <> '" + EntityFolder.INBOX + "'" + " AND folder.type <> '" + EntityFolder.ARCHIVE + "'") - List getMessageByMsgId(String msgid); + List getMessageByMsgId(long account, String msgid); @Query("SELECT message.* FROM message" + " JOIN folder ON folder.id = message.folder" + diff --git a/app/src/main/java/eu/faircode/email/ServiceSynchronize.java b/app/src/main/java/eu/faircode/email/ServiceSynchronize.java index d7ab32bec7..18940b6c1a 100644 --- a/app/src/main/java/eu/faircode/email/ServiceSynchronize.java +++ b/app/src/main/java/eu/faircode/email/ServiceSynchronize.java @@ -1225,7 +1225,7 @@ public class ServiceSynchronize extends LifecycleService { if (message == null) { // Will fetch headers within database transaction String msgid = helper.getMessageID(); - for (EntityMessage dup : db.message().getMessageByMsgId(msgid)) { + for (EntityMessage dup : db.message().getMessageByMsgId(folder.account, msgid)) { EntityFolder dfolder = db.folder().getFolder(dup.folder); Log.i(Helper.TAG, folder.name + " found as id=" + dup.id + " folder=" + dfolder.type + ":" + dup.folder + "/" + folder.type + ":" + folder.id);