From 77496ae970ce4b21b7826f177c9125547b9def54 Mon Sep 17 00:00:00 2001 From: M66B Date: Thu, 26 Sep 2019 15:05:33 +0200 Subject: [PATCH] Selective clear style --- .../eu/faircode/email/FragmentCompose.java | 21 +++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/FragmentCompose.java b/app/src/main/java/eu/faircode/email/FragmentCompose.java index 5873c1ffa6..3c5fdbd413 100644 --- a/app/src/main/java/eu/faircode/email/FragmentCompose.java +++ b/app/src/main/java/eu/faircode/email/FragmentCompose.java @@ -1026,18 +1026,35 @@ public class FragmentCompose extends FragmentBase { } private void onMenuClear() { + int start = etBody.getSelectionStart(); int end = etBody.getSelectionEnd(); + + if (start < 0) + start = 0; if (end < 0) end = 0; + if (start > end) { + int tmp = start; + start = end; + end = tmp; + } + + boolean selected = (start != end); + if (start == end) { + start = 0; + end = etBody.length(); + } + SpannableString ss = new SpannableString(etBody.getText()); - for (Object span : ss.getSpans(0, ss.length(), Object.class)) + for (Object span : ss.getSpans(start, end, Object.class)) if (!(span instanceof ImageSpan)) ss.removeSpan(span); etBody.setText(ss); - etBody.setSelection(end, end); + if (selected) + etBody.setSelection(start, end); } private void onMenuContactGroup() {