Improved deleting translations

pull/207/head
M66B 4 years ago
parent ebdecba9db
commit e5fd7f2f16

@ -595,7 +595,7 @@ public class FragmentCompose extends FragmentBase {
etBody.addTextChangedListener(new TextWatcher() { etBody.addTextChangedListener(new TextWatcher() {
private Integer added = null; private Integer added = null;
private Integer removed = null; private Integer removed = null;
private Integer replaced = null; private Integer translated = null;
@Override @Override
public void beforeTextChanged(CharSequence text, int start, int count, int after) { public void beforeTextChanged(CharSequence text, int start, int count, int after) {
@ -603,9 +603,20 @@ public class FragmentCompose extends FragmentBase {
Log.i("Removed=" + start); Log.i("Removed=" + start);
removed = start; removed = start;
} }
if (BuildConfig.DEBUG && count - after == 1) {
replaced = start + after; 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) {
int end = spanned.getSpanEnd(span);
Log.i("Replaced=" + replaced); Log.i("Replaced=" + replaced);
if (end - 1 == replaced) {
translated = end - 1;
break;
}
}
} }
} }
@ -745,20 +756,17 @@ public class FragmentCompose extends FragmentBase {
removed = null; removed = null;
} }
if (replaced != null && replaced > 0) { if (translated != null) {
StyleHelper.TranslatedSpan[] nc = StyleHelper.TranslatedSpan[] spans =
text.getSpans(replaced - 1, replaced, StyleHelper.TranslatedSpan.class); text.getSpans(translated, translated, StyleHelper.TranslatedSpan.class);
if (nc != null) for (StyleHelper.TranslatedSpan span : spans) {
for (StyleHelper.TranslatedSpan p : nc) { int start = text.getSpanStart(span);
int start = text.getSpanStart(p); int end = text.getSpanEnd(span);
int end = text.getSpanEnd(p); if (end == translated) {
if (end == replaced) {
text.delete(start, end); text.delete(start, end);
text.removeSpan(p); text.removeSpan(span);
} }
} }
replaced = null;
} }
if (lp != null) if (lp != null)

Loading…
Cancel
Save