diff --git a/app/src/main/java/eu/faircode/email/AdapterMessage.java b/app/src/main/java/eu/faircode/email/AdapterMessage.java index 549235afe7..a40e096973 100644 --- a/app/src/main/java/eu/faircode/email/AdapterMessage.java +++ b/app/src/main/java/eu/faircode/email/AdapterMessage.java @@ -2894,7 +2894,7 @@ public class AdapterMessage extends RecyclerView.Adapter() { + @Override + protected Void onExecute(Context context, Bundle args) throws Throwable { + long id = args.getLong("id"); + + DB db = DB.getInstance(context); + try { + db.beginTransaction(); + + EntityMessage message = db.message().getMessage(id); + if (message == null) + return null; + + File file = message.getFile(context); + Helper.writeText(file, null); + db.message().setMessageContent(message.id, true, null, null, null, null); + //db.message().setMessageSubject(id, subject); + db.attachment().deleteAttachments(message.id); + db.message().setMessageEncrypt(message.id, message.ui_encrypt); + db.message().setMessageStored(message.id, new Date().getTime()); + + db.setTransactionSuccessful(); + } finally { + db.endTransaction(); + } + + return null; + } + + @Override + protected void onException(Bundle args, Throwable ex) { + Log.unexpectedError(parentFragment.getParentFragmentManager(), ex); + } + }.execute(context, owner, args, "message:lock"); + } + private void onActionAnswer(TupleMessageEx message, View anchor) { properties.reply(message, getSelectedText(), anchor); } diff --git a/app/src/main/java/eu/faircode/email/DaoAttachment.java b/app/src/main/java/eu/faircode/email/DaoAttachment.java index 288ef3671f..935c663413 100644 --- a/app/src/main/java/eu/faircode/email/DaoAttachment.java +++ b/app/src/main/java/eu/faircode/email/DaoAttachment.java @@ -123,6 +123,7 @@ public interface DaoAttachment { int deleteAttachment(long id); @Query("DELETE FROM attachment" + - " WHERE message = :message") + " WHERE message = :message" + + " AND encryption IS NULL") int deleteAttachments(long message); }