From 6d39a843feb8b523bd7665828473af5bacba036b Mon Sep 17 00:00:00 2001 From: M66B Date: Wed, 25 Nov 2020 08:40:07 +0100 Subject: [PATCH] Refactoring --- .../eu/faircode/email/AdapterMessage.java | 67 +----------------- .../eu/faircode/email/FragmentMessages.java | 70 +++++++++++++++++++ 2 files changed, 73 insertions(+), 64 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/AdapterMessage.java b/app/src/main/java/eu/faircode/email/AdapterMessage.java index 8d5891e1e3..3351ba46fc 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; - - boolean inline = true; - List attachments = db.attachment().getAttachments(message.id); - for (EntityAttachment attachment : attachments) { - if (attachment.encryption != null) { - inline = false; - break; - } - } - - if (inline) { - if (message.uid == null) - return null; - - EntityFolder folder = db.folder().getFolder(message.folder); - if (folder == null) - return null; - - db.message().deleteMessage(id); - EntityOperation.queue(context, folder, EntityOperation.FETCH, message.uid); - - 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); } @@ -6025,6 +5962,8 @@ public class AdapterMessage extends RecyclerView.Adapter() { + @Override + protected Void onExecute(Context context, Bundle args) throws Throwable { + long id = args.getLong("id"); + lockMessage(id); + return null; + } + + @Override + protected void onException(Bundle args, Throwable ex) { + Log.unexpectedError(getParentFragmentManager(), ex); + } + }.execute(FragmentMessages.this, args, "message:lock"); + } + @Override public void refresh() { rvMessage.post(new Runnable() { @@ -5276,6 +5296,56 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences. return TextUtils.join(", ", displays); } + private void lockMessage(long id) throws IOException { + Context context = getContext(); + if (context == null) + return; + + DB db = DB.getInstance(context); + try { + db.beginTransaction(); + + EntityMessage message = db.message().getMessage(id); + if (message == null) + return; + + boolean inline = true; + List attachments = db.attachment().getAttachments(message.id); + for (EntityAttachment attachment : attachments) { + if (attachment.encryption != null) { + inline = false; + break; + } + } + + if (inline) { + if (message.uid == null) + return; + + EntityFolder folder = db.folder().getFolder(message.folder); + if (folder == null) + return; + + db.message().deleteMessage(id); + EntityOperation.queue(context, folder, EntityOperation.FETCH, message.uid); + + return; + } + + 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(); + } + } + private ActivityBase.IKeyPressedListener onBackPressedListener = new ActivityBase.IKeyPressedListener() { @Override public boolean onKeyPressed(KeyEvent event) {