diff --git a/app/src/main/java/eu/faircode/email/FragmentCompose.java b/app/src/main/java/eu/faircode/email/FragmentCompose.java index 4513b24ea7..25bba6ca0c 100644 --- a/app/src/main/java/eu/faircode/email/FragmentCompose.java +++ b/app/src/main/java/eu/faircode/email/FragmentCompose.java @@ -947,7 +947,7 @@ public class FragmentCompose extends FragmentBase { onMenuCompact(); return true; case R.id.menu_clear: - onMenuClear(); + StyleHelper.apply(R.id.menu_clear, etBody); return true; case R.id.menu_contact_group: onMenuContactGroup(); @@ -1014,38 +1014,6 @@ public class FragmentCompose extends FragmentBase { bottom_navigation.setLayoutParams(params); } - 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(start, end, Object.class)) - if (!(span instanceof ImageSpan)) - ss.removeSpan(span); - - etBody.setText(ss); - if (selected) - etBody.setSelection(start, end); - } - private void onMenuContactGroup() { Bundle args = new Bundle(); args.putLong("working", working); diff --git a/app/src/main/java/eu/faircode/email/StyleHelper.java b/app/src/main/java/eu/faircode/email/StyleHelper.java index 1fd1c655f2..5819ec3bc1 100644 --- a/app/src/main/java/eu/faircode/email/StyleHelper.java +++ b/app/src/main/java/eu/faircode/email/StyleHelper.java @@ -4,6 +4,7 @@ import android.graphics.Typeface; import android.text.SpannableString; import android.text.Spanned; import android.text.style.ForegroundColorSpan; +import android.text.style.ImageSpan; import android.text.style.RelativeSizeSpan; import android.text.style.StyleSpan; import android.text.style.URLSpan; @@ -125,6 +126,24 @@ public class StyleHelper { return true; } + case R.id.menu_clear: { + boolean selected = (start != end); + if (start == end) { + start = 0; + end = etBody.length(); + } + + for (Object span : ss.getSpans(start, end, Object.class)) + if (!(span instanceof ImageSpan)) + ss.removeSpan(span); + + etBody.setText(ss); + if (selected) + etBody.setSelection(start, end); + + return true; + } + default: return false; }