From acf43a68918374895e3850464977e8d9c7f3eee6 Mon Sep 17 00:00:00 2001 From: M66B Date: Sat, 24 Oct 2020 17:55:46 +0200 Subject: [PATCH] Delete local POP3 message/attachment files --- app/src/main/java/eu/faircode/email/Core.java | 6 +++++- app/src/main/java/eu/faircode/email/DaoAttachment.java | 5 +++++ 2 files changed, 10 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 c5a9d5a71b..6b0cefbce2 100644 --- a/app/src/main/java/eu/faircode/email/Core.java +++ b/app/src/main/java/eu/faircode/email/Core.java @@ -1273,7 +1273,11 @@ class Core { DB db = DB.getInstance(context); if (EntityFolder.INBOX.equals(folder.type)) { - if (!account.leave_deleted) { + if (account.leave_deleted) { + // Remove message/attachments files on cleanup + db.message().resetMessageContent(message.id); + db.attachment().resetAvailable(message.id); + } else { Map caps = istore.capabilities(); Message[] imessages = ifolder.getMessages(); diff --git a/app/src/main/java/eu/faircode/email/DaoAttachment.java b/app/src/main/java/eu/faircode/email/DaoAttachment.java index 75689d185c..288ef3671f 100644 --- a/app/src/main/java/eu/faircode/email/DaoAttachment.java +++ b/app/src/main/java/eu/faircode/email/DaoAttachment.java @@ -82,6 +82,11 @@ public interface DaoAttachment { " WHERE id = :id") void setAvailable(long id, boolean available); + @Query("UPDATE attachment" + + " SET size = NULL, progress = NULL, available = 0" + + " WHERE message = :message") + void resetAvailable(long message); + @Query("UPDATE attachment" + " SET error = :error, progress = NULL, available = 0" + " WHERE id = :id")