From 52f4f2acf9f2011c7a813905dbd7e14e62c1631d Mon Sep 17 00:00:00 2001 From: M66B Date: Sat, 22 Oct 2022 17:33:45 +0200 Subject: [PATCH] Keep flagged POP3 messages on device --- app/src/main/java/eu/faircode/email/Core.java | 18 ++++++++++-------- .../java/eu/faircode/email/DaoMessage.java | 2 +- .../main/java/eu/faircode/email/TupleUidl.java | 2 +- 3 files changed, 12 insertions(+), 10 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/Core.java b/app/src/main/java/eu/faircode/email/Core.java index 87904f79cc..73f42ef9f0 100644 --- a/app/src/main/java/eu/faircode/email/Core.java +++ b/app/src/main/java/eu/faircode/email/Core.java @@ -3019,10 +3019,11 @@ class Core { known.remove(uidl); } - for (TupleUidl uidl : known.values()) { - EntityLog.log(context, account.name + " POP purging uidl=" + uidl.uidl); - db.message().deleteMessage(uidl.id); - } + for (TupleUidl uidl : known.values()) + if (!uidl.ui_flagged) { + EntityLog.log(context, account.name + " POP purging uidl=" + uidl.uidl); + db.message().deleteMessage(uidl.id); + } } else { Map known = new HashMap<>(); for (TupleUidl id : ids) @@ -3037,10 +3038,11 @@ class Core { known.remove(msgid); } - for (TupleUidl uidl : known.values()) { - EntityLog.log(context, account.name + " POP purging msgid=" + uidl.msgid); - db.message().deleteMessage(uidl.id); - } + for (TupleUidl uidl : known.values()) + if (!uidl.ui_flagged) { + EntityLog.log(context, account.name + " POP purging msgid=" + uidl.msgid); + db.message().deleteMessage(uidl.id); + } } } diff --git a/app/src/main/java/eu/faircode/email/DaoMessage.java b/app/src/main/java/eu/faircode/email/DaoMessage.java index b7d4a0abf9..7f53ef8161 100644 --- a/app/src/main/java/eu/faircode/email/DaoMessage.java +++ b/app/src/main/java/eu/faircode/email/DaoMessage.java @@ -651,7 +651,7 @@ public interface DaoMessage { " AND NOT uid IS NULL") List getBusyUids(long folder, long time); - @Query("SELECT id, uidl, msgid, thread, ui_hide, ui_busy FROM message" + + @Query("SELECT id, uidl, msgid, ui_hide, ui_busy, ui_flagged FROM message" + " WHERE folder = :folder") List getUidls(long folder); diff --git a/app/src/main/java/eu/faircode/email/TupleUidl.java b/app/src/main/java/eu/faircode/email/TupleUidl.java index f9905171ba..c7ea382f35 100644 --- a/app/src/main/java/eu/faircode/email/TupleUidl.java +++ b/app/src/main/java/eu/faircode/email/TupleUidl.java @@ -23,7 +23,7 @@ public class TupleUidl { long id; String uidl; String msgid; - String thread; boolean ui_hide; Long ui_busy; + boolean ui_flagged; }