|
|
|
@ -591,6 +591,7 @@ public class FragmentCompose extends FragmentBase {
|
|
|
|
|
etBody.addTextChangedListener(new TextWatcher() {
|
|
|
|
|
private Integer added = null;
|
|
|
|
|
private Integer removed = null;
|
|
|
|
|
private Integer replaced = null;
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public void beforeTextChanged(CharSequence text, int start, int count, int after) {
|
|
|
|
@ -598,6 +599,10 @@ public class FragmentCompose extends FragmentBase {
|
|
|
|
|
Log.i("Removed=" + start);
|
|
|
|
|
removed = start;
|
|
|
|
|
}
|
|
|
|
|
if (BuildConfig.DEBUG && count - after == 1) {
|
|
|
|
|
replaced = start + after;
|
|
|
|
|
Log.i("Replaced=" + replaced);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@ -736,6 +741,22 @@ public class FragmentCompose extends FragmentBase {
|
|
|
|
|
removed = null;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (replaced != null && replaced > 0) {
|
|
|
|
|
StyleHelper.TranslatedSpan[] nc =
|
|
|
|
|
text.getSpans(replaced - 1, replaced, StyleHelper.TranslatedSpan.class);
|
|
|
|
|
if (nc != null)
|
|
|
|
|
for (StyleHelper.TranslatedSpan p : nc) {
|
|
|
|
|
int start = text.getSpanStart(p);
|
|
|
|
|
int end = text.getSpanEnd(p);
|
|
|
|
|
if (end == replaced) {
|
|
|
|
|
text.delete(start, end);
|
|
|
|
|
text.removeSpan(p);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
replaced = null;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (lp != null)
|
|
|
|
|
TextUtils.dumpSpans(text, lp, "---after>");
|
|
|
|
|
}
|
|
|
|
@ -2154,6 +2175,8 @@ public class FragmentCompose extends FragmentBase {
|
|
|
|
|
*/
|
|
|
|
|
int len = 2 + translation.translated_text.length();
|
|
|
|
|
edit.insert(paragraph.second, "\n\n" + translation.translated_text);
|
|
|
|
|
StyleHelper.markAsTranslated(edit, paragraph.second, paragraph.second + len);
|
|
|
|
|
|
|
|
|
|
etBody.setSelection(paragraph.second + len);
|
|
|
|
|
|
|
|
|
|
boolean small = prefs.getBoolean("deepl_small", false);
|
|
|
|
|