From 60686bb50d6bbd77b5bd3079c0f976bfc177b4e8 Mon Sep 17 00:00:00 2001 From: M66B Date: Mon, 5 Oct 2020 16:04:18 +0200 Subject: [PATCH] Expunge deleted messages --- app/src/main/java/eu/faircode/email/Core.java | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/eu/faircode/email/Core.java b/app/src/main/java/eu/faircode/email/Core.java index b6c4e23d44..e0ed73b2be 100644 --- a/app/src/main/java/eu/faircode/email/Core.java +++ b/app/src/main/java/eu/faircode/email/Core.java @@ -2244,9 +2244,12 @@ class Core { } }); + int expunge = 0; for (int i = 0; i < imessages.length && state.isRunning() && state.isRecoverable(); i++) try { - if (!imessages[i].isSet(Flags.Flag.DELETED)) + if (imessages[i].isSet(Flags.Flag.DELETED)) + expunge++; + else uids.remove(ifolder.getUID(imessages[i])); } catch (MessageRemovedException ex) { Log.w(folder.name, ex); @@ -2256,6 +2259,14 @@ class Core { db.folder().setFolderError(folder.id, Log.formatThrowable(ex)); } + if (expunge > 0) + try { + Log.i(folder.name + " expunging=" + expunge); + ifolder.expunge(); + } catch (Throwable ex) { + Log.w(ex); + } + if (uids.size() > 0) { // This is done outside of JavaMail to prevent changed notifications if (!ifolder.isOpen())