From 83cb57b0069c90d8ea260997ba2e340b56199fd2 Mon Sep 17 00:00:00 2001 From: M66B Date: Tue, 3 May 2022 13:13:26 +0200 Subject: [PATCH] Mark inserted templates --- .../eu/faircode/email/FragmentCompose.java | 26 ++++++++++--------- .../java/eu/faircode/email/StyleHelper.java | 10 +++---- 2 files changed, 19 insertions(+), 17 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/FragmentCompose.java b/app/src/main/java/eu/faircode/email/FragmentCompose.java index 223e707970..cf43726e94 100644 --- a/app/src/main/java/eu/faircode/email/FragmentCompose.java +++ b/app/src/main/java/eu/faircode/email/FragmentCompose.java @@ -613,7 +613,7 @@ public class FragmentCompose extends FragmentBase { private boolean save = false; private Integer added = null; private Integer removed = null; - private Integer translated = null; + private Integer inserted = null; @Override public void beforeTextChanged(CharSequence text, int start, int count, int after) { @@ -625,13 +625,13 @@ public class FragmentCompose extends FragmentBase { if (BuildConfig.DEBUG && count - after == 1 && start + after > 0) { int replaced = start + after; Spanned spanned = ((Spanned) text); - StyleHelper.TranslatedSpan[] spans = - spanned.getSpans(replaced, replaced, StyleHelper.TranslatedSpan.class); - for (StyleHelper.TranslatedSpan span : spans) { + StyleHelper.InsertedSpan[] spans = + spanned.getSpans(replaced, replaced, StyleHelper.InsertedSpan.class); + for (StyleHelper.InsertedSpan span : spans) { int end = spanned.getSpanEnd(span); Log.i("Replaced=" + replaced); if (end - 1 == replaced) { - translated = end - 1; + inserted = end - 1; break; } } @@ -788,20 +788,20 @@ public class FragmentCompose extends FragmentBase { removed = null; } - if (translated != null) + if (inserted != null) try { - StyleHelper.TranslatedSpan[] spans = - text.getSpans(translated, translated, StyleHelper.TranslatedSpan.class); - for (StyleHelper.TranslatedSpan span : spans) { + StyleHelper.InsertedSpan[] spans = + text.getSpans(inserted, inserted, StyleHelper.InsertedSpan.class); + for (StyleHelper.InsertedSpan span : spans) { int start = text.getSpanStart(span); int end = text.getSpanEnd(span); - if (end == translated) { + if (end == inserted) { text.delete(start, end); text.removeSpan(span); } } } finally { - translated = null; + inserted = null; } if (save) @@ -2192,6 +2192,8 @@ public class FragmentCompose extends FragmentBase { if (pos >= 0) etBody.setSelection(pos); } + + StyleHelper.markAsInserted(etBody.getText(), start, start + spanned.length()); } @Override @@ -2358,7 +2360,7 @@ public class FragmentCompose extends FragmentBase { int len = 2 + translation.translated_text.length(); edit.insert(paragraph.second, translation.translated_text); edit.insert(paragraph.second, "\n\n"); - StyleHelper.markAsTranslated(edit, paragraph.second, paragraph.second + len); + StyleHelper.markAsInserted(edit, paragraph.second, paragraph.second + len); etBody.setSelection(paragraph.second + len); diff --git a/app/src/main/java/eu/faircode/email/StyleHelper.java b/app/src/main/java/eu/faircode/email/StyleHelper.java index ec29d83dcc..f4493d264d 100644 --- a/app/src/main/java/eu/faircode/email/StyleHelper.java +++ b/app/src/main/java/eu/faircode/email/StyleHelper.java @@ -82,7 +82,7 @@ public class StyleHelper { StrikethroughSpan.class, URLSpan.class, TypefaceSpan.class, CustomTypefaceSpan.class, - TranslatedSpan.class + InsertedSpan.class )); static boolean apply(int action, LifecycleOwner owner, View anchor, EditText etBody, Object... args) { @@ -956,13 +956,13 @@ public class StyleHelper { } } - static void markAsTranslated(Editable text, int start, int end) { - for (TranslatedSpan span : text.getSpans(0, text.length(), TranslatedSpan.class)) + static void markAsInserted(Editable text, int start, int end) { + for (InsertedSpan span : text.getSpans(0, text.length(), InsertedSpan.class)) text.removeSpan(span); - text.setSpan(new TranslatedSpan(), start, end, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); + text.setSpan(new InsertedSpan(), start, end, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); } - static class TranslatedSpan implements NoCopySpan { + static class InsertedSpan implements NoCopySpan { } static String getFamily(String family) {