From 32099439549127a30cb448946e852faf3907e7f0 Mon Sep 17 00:00:00 2001 From: M66B Date: Fri, 11 Jan 2019 15:57:27 +0000 Subject: [PATCH] Refactoring --- .../eu/faircode/email/FragmentCompose.java | 272 +++++++++--------- 1 file changed, 136 insertions(+), 136 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/FragmentCompose.java b/app/src/main/java/eu/faircode/email/FragmentCompose.java index a52b510e35..74a303c9a3 100644 --- a/app/src/main/java/eu/faircode/email/FragmentCompose.java +++ b/app/src/main/java/eu/faircode/email/FragmentCompose.java @@ -1811,142 +1811,6 @@ public class FragmentCompose extends FragmentEx { } }; - private void checkDraft(long id) { - Bundle args = new Bundle(); - args.putLong("id", id); - - new SimpleTask() { - @Override - protected EntityMessage onExecute(Context context, Bundle args) { - long id = args.getLong("id"); - - DB db = DB.getInstance(context); - - EntityMessage draft = db.message().getMessage(id); - if (!draft.content) - return null; - - List attachments = db.attachment().getAttachments(id); - for (EntityAttachment attachment : attachments) - if (!attachment.available) - return null; - - return draft; - } - - @Override - protected void onExecuted(Bundle args, EntityMessage draft) { - if (draft != null && state == State.NONE) - showDraft(draft); - } - - @Override - protected void onException(Bundle args, Throwable ex) { - Helper.unexpectedError(getContext(), getViewLifecycleOwner(), ex); - } - }.execute(this, args, "compose:check"); - } - - private void showDraft(EntityMessage draft) { - Bundle args = new Bundle(); - args.putLong("id", draft.id); - if (draft.replying != null) - args.putLong("reference", draft.replying); - else if (draft.forwarding != null) - args.putLong("reference", draft.forwarding); - - new SimpleTask() { - @Override - protected void onPostExecute(Bundle args) { - state = State.LOADED; - autosave = true; - - pbWait.setVisibility(View.GONE); - edit_bar.setVisibility(View.VISIBLE); - bottom_navigation.setVisibility(View.VISIBLE); - Helper.setViewsEnabled(view, true); - - getActivity().invalidateOptionsMenu(); - } - - @Override - protected Spanned[] onExecute(final Context context, Bundle args) throws Throwable { - long id = args.getLong("id"); - final long reference = args.getLong("reference", -1); - - String body = EntityMessage.read(context, id); - Spanned spannedBody = Html.fromHtml(body, cidGetter, null); - - String quote = (reference < 0 ? null : HtmlHelper.getQuote(context, reference, true)); - Spanned spannedReference = null; - if (quote != null) { - Spanned spannedQuote = Html.fromHtml(quote, - new Html.ImageGetter() { - @Override - public Drawable getDrawable(String source) { - Drawable image = HtmlHelper.decodeImage(source, context, reference, true); - - float width = context.getResources().getDisplayMetrics().widthPixels - - Helper.dp2pixels(context, 12); // margins; - if (image.getIntrinsicWidth() > width) { - float scale = width / image.getIntrinsicWidth(); - image.setBounds(0, 0, - Math.round(image.getIntrinsicWidth() * scale), - Math.round(image.getIntrinsicHeight() * scale)); - } - - return image; - } - }, - null); - - int colorPrimary = Helper.resolveColor(context, R.attr.colorPrimary); - SpannableStringBuilder builder = new SpannableStringBuilder(spannedQuote); - QuoteSpan[] quoteSpans = builder.getSpans(0, builder.length(), QuoteSpan.class); - for (QuoteSpan quoteSpan : quoteSpans) { - builder.setSpan( - new StyledQuoteSpan(colorPrimary), - builder.getSpanStart(quoteSpan), - builder.getSpanEnd(quoteSpan), - builder.getSpanFlags(quoteSpan)); - builder.removeSpan(quote); - } - - spannedReference = builder; - } - - return new Spanned[]{spannedBody, spannedReference}; - } - - @Override - protected void onExecuted(Bundle args, Spanned[] texts) { - etBody.setText(texts[0]); - etBody.setSelection(0); - etBody.setVisibility(View.VISIBLE); - - tvReference.setText(texts[1]); - grpReference.setVisibility(texts[1] == null ? View.GONE : View.VISIBLE); - - new Handler().post(new Runnable() { - @Override - public void run() { - if (TextUtils.isEmpty(etTo.getText().toString().trim())) - etTo.requestFocus(); - else if (TextUtils.isEmpty(etSubject.getText().toString())) - etSubject.requestFocus(); - else - etBody.requestFocus(); - } - }); - } - - @Override - protected void onException(Bundle args, Throwable ex) { - Helper.unexpectedError(getContext(), getViewLifecycleOwner(), ex); - } - }.execute(FragmentCompose.this, args, "compose:show"); - } - private SimpleTask actionLoader = new SimpleTask() { @Override protected void onPreExecute(Bundle args) { @@ -2211,6 +2075,142 @@ public class FragmentCompose extends FragmentEx { } }; + private void checkDraft(long id) { + Bundle args = new Bundle(); + args.putLong("id", id); + + new SimpleTask() { + @Override + protected EntityMessage onExecute(Context context, Bundle args) { + long id = args.getLong("id"); + + DB db = DB.getInstance(context); + + EntityMessage draft = db.message().getMessage(id); + if (!draft.content) + return null; + + List attachments = db.attachment().getAttachments(id); + for (EntityAttachment attachment : attachments) + if (!attachment.available) + return null; + + return draft; + } + + @Override + protected void onExecuted(Bundle args, EntityMessage draft) { + if (draft != null && state == State.NONE) + showDraft(draft); + } + + @Override + protected void onException(Bundle args, Throwable ex) { + Helper.unexpectedError(getContext(), getViewLifecycleOwner(), ex); + } + }.execute(this, args, "compose:check"); + } + + private void showDraft(EntityMessage draft) { + Bundle args = new Bundle(); + args.putLong("id", draft.id); + if (draft.replying != null) + args.putLong("reference", draft.replying); + else if (draft.forwarding != null) + args.putLong("reference", draft.forwarding); + + new SimpleTask() { + @Override + protected void onPostExecute(Bundle args) { + state = State.LOADED; + autosave = true; + + pbWait.setVisibility(View.GONE); + edit_bar.setVisibility(View.VISIBLE); + bottom_navigation.setVisibility(View.VISIBLE); + Helper.setViewsEnabled(view, true); + + getActivity().invalidateOptionsMenu(); + } + + @Override + protected Spanned[] onExecute(final Context context, Bundle args) throws Throwable { + long id = args.getLong("id"); + final long reference = args.getLong("reference", -1); + + String body = EntityMessage.read(context, id); + Spanned spannedBody = Html.fromHtml(body, cidGetter, null); + + String quote = (reference < 0 ? null : HtmlHelper.getQuote(context, reference, true)); + Spanned spannedReference = null; + if (quote != null) { + Spanned spannedQuote = Html.fromHtml(quote, + new Html.ImageGetter() { + @Override + public Drawable getDrawable(String source) { + Drawable image = HtmlHelper.decodeImage(source, context, reference, true); + + float width = context.getResources().getDisplayMetrics().widthPixels - + Helper.dp2pixels(context, 12); // margins; + if (image.getIntrinsicWidth() > width) { + float scale = width / image.getIntrinsicWidth(); + image.setBounds(0, 0, + Math.round(image.getIntrinsicWidth() * scale), + Math.round(image.getIntrinsicHeight() * scale)); + } + + return image; + } + }, + null); + + int colorPrimary = Helper.resolveColor(context, R.attr.colorPrimary); + SpannableStringBuilder builder = new SpannableStringBuilder(spannedQuote); + QuoteSpan[] quoteSpans = builder.getSpans(0, builder.length(), QuoteSpan.class); + for (QuoteSpan quoteSpan : quoteSpans) { + builder.setSpan( + new StyledQuoteSpan(colorPrimary), + builder.getSpanStart(quoteSpan), + builder.getSpanEnd(quoteSpan), + builder.getSpanFlags(quoteSpan)); + builder.removeSpan(quote); + } + + spannedReference = builder; + } + + return new Spanned[]{spannedBody, spannedReference}; + } + + @Override + protected void onExecuted(Bundle args, Spanned[] texts) { + etBody.setText(texts[0]); + etBody.setSelection(0); + etBody.setVisibility(View.VISIBLE); + + tvReference.setText(texts[1]); + grpReference.setVisibility(texts[1] == null ? View.GONE : View.VISIBLE); + + new Handler().post(new Runnable() { + @Override + public void run() { + if (TextUtils.isEmpty(etTo.getText().toString().trim())) + etTo.requestFocus(); + else if (TextUtils.isEmpty(etSubject.getText().toString())) + etSubject.requestFocus(); + else + etBody.requestFocus(); + } + }); + } + + @Override + protected void onException(Bundle args, Throwable ex) { + Helper.unexpectedError(getContext(), getViewLifecycleOwner(), ex); + } + }.execute(FragmentCompose.this, args, "compose:show"); + } + private Html.ImageGetter cidGetter = new Html.ImageGetter() { @Override public Drawable getDrawable(final String source) {