From 19a407cf314ea83f3ffce6214c3327fffe3723e3 Mon Sep 17 00:00:00 2001 From: M66B Date: Thu, 11 Apr 2019 13:02:56 +0200 Subject: [PATCH] Delete messages without ID by uid --- app/src/main/java/eu/faircode/email/Core.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/Core.java b/app/src/main/java/eu/faircode/email/Core.java index 4009513b1c..e1057ba2d9 100644 --- a/app/src/main/java/eu/faircode/email/Core.java +++ b/app/src/main/java/eu/faircode/email/Core.java @@ -544,10 +544,15 @@ class Core { // Delete message DB db = DB.getInstance(context); + Message[] imessages; if (TextUtils.isEmpty(message.msgid)) - throw new IllegalArgumentException("Message ID missing"); + if (message.uid == null) + throw new IllegalArgumentException("Delete without ID"); + else + imessages = new Message[]{ifolder.getMessageByUID(message.uid)}; + else + imessages = ifolder.search(new MessageIDTerm(message.msgid)); - Message[] imessages = ifolder.search(new MessageIDTerm(message.msgid)); for (Message imessage : imessages) { Log.i(folder.name + " deleting uid=" + message.uid + " msgid=" + message.msgid); try { @@ -555,6 +560,7 @@ class Core { } catch (MessageRemovedException ignored) { } } + ifolder.expunge(); db.message().deleteMessage(message.id);