diff --git a/app/src/main/java/eu/faircode/email/Core.java b/app/src/main/java/eu/faircode/email/Core.java index f08c7114be..a7f46f09e0 100644 --- a/app/src/main/java/eu/faircode/email/Core.java +++ b/app/src/main/java/eu/faircode/email/Core.java @@ -2066,7 +2066,7 @@ class Core { throw new IllegalArgumentException("Local attachment not found"); if (attachment.subsequence != null) throw new IllegalArgumentException("Download of sub attachment"); - if (attachment.available) + if (attachment.available && !delete) return; if (message.uid == null) throw new IllegalArgumentException("Attachment/message uid missing"); diff --git a/app/src/main/java/eu/faircode/email/EntityOperation.java b/app/src/main/java/eu/faircode/email/EntityOperation.java index d0420d3e98..71b537a510 100644 --- a/app/src/main/java/eu/faircode/email/EntityOperation.java +++ b/app/src/main/java/eu/faircode/email/EntityOperation.java @@ -525,8 +525,11 @@ public class EntityOperation { } } */ - } else if (ATTACHMENT.equals(name)) - db.attachment().setProgress(jargs.getLong(0), 0); + } else if (ATTACHMENT.equals(name)) { + boolean delete = jargs.optBoolean(1, false); + if (!delete) + db.attachment().setProgress(jargs.getLong(0), 0); + } queue(context, message.account, message.folder, message.id, name, jargs);