From 627ce9e7a0e28db48830d7165291eae5cee3c8cd Mon Sep 17 00:00:00 2001 From: M66B Date: Fri, 14 Dec 2018 20:15:07 +0100 Subject: [PATCH] Small improvements --- .../eu/faircode/email/EntityOperation.java | 8 ++++-- .../eu/faircode/email/FragmentMessages.java | 28 ++++++++++++++----- .../java/eu/faircode/email/HtmlHelper.java | 5 ++++ 3 files changed, 31 insertions(+), 10 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/EntityOperation.java b/app/src/main/java/eu/faircode/email/EntityOperation.java index 660dd0fc78..80ec5f37e5 100644 --- a/app/src/main/java/eu/faircode/email/EntityOperation.java +++ b/app/src/main/java/eu/faircode/email/EntityOperation.java @@ -129,10 +129,12 @@ public class EntityOperation { for (EntityMessage similar : db.message().getMessageByMsgId(message.account, message.msgid)) db.message().setMessageUiAnswered(similar.id, jargs.getBoolean(0)); - else if (MOVE.equals(name)) - db.message().setMessageUiHide(message.id, true); + else if (MOVE.equals(name)) { + EntityFolder source = db.folder().getFolder(message.folder); + if (!EntityFolder.ARCHIVE.equals(source.type)) + db.message().setMessageUiHide(message.id, true); - else if (DELETE.equals(name)) + } else if (DELETE.equals(name)) db.message().setMessageUiHide(message.id, true); } catch (JSONException ex) { Log.e(Helper.TAG, ex + "\n" + Log.getStackTraceString(ex)); diff --git a/app/src/main/java/eu/faircode/email/FragmentMessages.java b/app/src/main/java/eu/faircode/email/FragmentMessages.java index 3706fd030b..ffd4447785 100644 --- a/app/src/main/java/eu/faircode/email/FragmentMessages.java +++ b/app/src/main/java/eu/faircode/email/FragmentMessages.java @@ -1798,10 +1798,8 @@ public class FragmentMessages extends FragmentEx { } private void moveAsk(final MessageTarget result) { - if (result.target == null) { - // TODO: unhide messages + if (result.target == null) return; - } String title = getResources().getQuantityString( R.plurals.title_moving_messages, result.ids.size(), @@ -1850,7 +1848,25 @@ public class FragmentMessages extends FragmentEx { } private void moveUndo(final MessageTarget result) { + final Bundle args = new Bundle(); + args.putSerializable("result", result); + if (result.target == null) { + new SimpleTask() { + @Override + protected Void onLoad(Context context, Bundle args) { + DB db = DB.getInstance(context); + MessageTarget result = (MessageTarget) args.getSerializable("result"); + for (long id : result.ids) + db.message().setMessageUiHide(id, false); + return null; + } + + @Override + protected void onException(Bundle args, Throwable ex) { + Helper.unexpectedError(getContext(), getViewLifecycleOwner(), ex); + } + }.load(FragmentMessages.this, args); // TODO: unhide messages return; } @@ -1865,17 +1881,15 @@ public class FragmentMessages extends FragmentEx { public void onClick(View v) { snackbar.dismiss(); - Bundle args = new Bundle(); - args.putSerializable("result", result); - // Show message again new SimpleTask() { @Override protected Void onLoad(Context context, Bundle args) { + DB db = DB.getInstance(context); MessageTarget result = (MessageTarget) args.getSerializable("result"); for (long id : result.ids) { Log.i(Helper.TAG, "Move undo id=" + id); - DB.getInstance(context).message().setMessageUiHide(id, false); + db.message().setMessageUiHide(id, false); } return null; } diff --git a/app/src/main/java/eu/faircode/email/HtmlHelper.java b/app/src/main/java/eu/faircode/email/HtmlHelper.java index 1d2599bedb..3ea000a1c3 100644 --- a/app/src/main/java/eu/faircode/email/HtmlHelper.java +++ b/app/src/main/java/eu/faircode/email/HtmlHelper.java @@ -51,6 +51,10 @@ import java.util.regex.Pattern; public class HtmlHelper { private static Pattern pattern = Pattern.compile("([http|https]+://[\\w\\S(\\.|:|/)]+)"); + static String getBody(String html) { + return Jsoup.parse(html).body().html(); + } + static String sanitize(String html) { Document document = Jsoup.parse(Jsoup.clean(html, Whitelist .relaxed() @@ -97,6 +101,7 @@ public class HtmlHelper { public void tail(Node node, int depth) { } }, document.body()); + return document.body().html(); }