From 2948e3cf261e07170bcbb800f0b3f0a647ed02cf Mon Sep 17 00:00:00 2001 From: M66B Date: Sun, 21 Jun 2020 08:42:08 +0200 Subject: [PATCH] Auto close when message in base folder gone --- .../eu/faircode/email/FragmentMessages.java | 36 ++++++++++--------- 1 file changed, 20 insertions(+), 16 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/FragmentMessages.java b/app/src/main/java/eu/faircode/email/FragmentMessages.java index 3a95d16bd4..4ec964ff84 100644 --- a/app/src/main/java/eu/faircode/email/FragmentMessages.java +++ b/app/src/main/java/eu/faircode/email/FragmentMessages.java @@ -4196,12 +4196,7 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences. } } - if (!(EntityFolder.OUTBOX.equals(message.folderType) && message.ui_snoozed != null) && - !(EntityFolder.ARCHIVE.equals(message.folderType) && filter_archive) && - !EntityFolder.DRAFTS.equals(message.folderType) && - !EntityFolder.SENT.equals(message.folderType) && - !EntityFolder.TRASH.equals(message.folderType) && - !EntityFolder.JUNK.equals(message.folderType)) + if (message.folder == folder) autoCloseCount++; } @@ -4231,6 +4226,10 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences. iProperties.setExpanded(message, true); } else { if (autoCloseCount > 0 && (autoclose || onclose != null)) { + List mt = new ArrayList<>(); + if (targets != null) + mt.addAll(targets); + int count = 0; for (int i = 0; i < messages.size(); i++) { TupleMessageEx message = messages.get(i); @@ -4238,23 +4237,28 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences. (removed != null && removed.contains(message.id))) continue; - String folderType = message.folderType; + boolean found = false; if (targets != null) for (MessageTarget target : targets) - if (!target.across && message.id.equals(target.id)) { - folderType = target.folder.type; - Log.i("Eval thread target=" + folderType); + if (message.id.equals(target.id)) { + Log.i("Eval thread target id=" + target.id); + if (!target.across) { + found = true; + if (target.folder.id == folder) + count++; + } + mt.remove(target); break; } - if (!(EntityFolder.OUTBOX.equals(folderType) && message.ui_snoozed != null) && - !(EntityFolder.ARCHIVE.equals(folderType) && filter_archive) && - !EntityFolder.DRAFTS.equals(folderType) && - !EntityFolder.SENT.equals(folderType) && - !EntityFolder.TRASH.equals(folderType) && - !EntityFolder.JUNK.equals(folderType)) + if (!found && message.folder == folder) count++; } + + for (MessageTarget target : mt) + if (!target.across && target.folder.id == folder) + count++; + Log.i("Auto close=" + count); // Auto close/next when: