diff --git a/app/src/main/java/eu/faircode/email/EditTextCompose.java b/app/src/main/java/eu/faircode/email/EditTextCompose.java index 5bc7f18df3..da70320c84 100644 --- a/app/src/main/java/eu/faircode/email/EditTextCompose.java +++ b/app/src/main/java/eu/faircode/email/EditTextCompose.java @@ -484,7 +484,14 @@ public class EditTextCompose extends FixedEditText { ClipData.Item item = cbm.getPrimaryClip().getItemAt(0); final String html; - String h = item.getHtmlText(); + String h = null; + if (raw) { + CharSequence text = item.getText(); + if (text != null && HtmlHelper.isHtml(text.toString())) + h = text.toString(); + } + if (h == null) + h = item.getHtmlText(); if (h == null) { CharSequence text = item.getText(); if (text == null) @@ -497,9 +504,9 @@ public class EditTextCompose extends FixedEditText { @Override public void run() { try { - SpannableStringBuilder ssb = (raw) + SpannableStringBuilder ssb = (raw ? new SpannableStringBuilderEx(html) - : getSpanned(context, html); + : getSpanned(context, html)); EditTextCompose.this.post(new Runnable() { @Override diff --git a/app/src/main/java/eu/faircode/email/HtmlHelper.java b/app/src/main/java/eu/faircode/email/HtmlHelper.java index 5459eb8c0a..8c3dd8c269 100644 --- a/app/src/main/java/eu/faircode/email/HtmlHelper.java +++ b/app/src/main/java/eu/faircode/email/HtmlHelper.java @@ -3829,6 +3829,12 @@ public class HtmlHelper { .remove("x-keep-line"); } + static boolean isHtml(String text) { + Pattern p = Pattern.compile(".*\\<[^>]+>.*", Pattern.DOTALL); + boolean isHtml = p.matcher(text).matches(); + return isHtml; + } + static Spanned fromHtml(@NonNull String html, Context context) { Document document = JsoupEx.parse(html); return fromDocument(context, document, null, null);