Workaround word iterator bug Android <= M (EditText)

This commit is contained in:
M66B 2020-09-13 12:03:02 +02:00
parent 8a988634b0
commit 62614e4d9d
2 changed files with 16 additions and 1 deletions

View File

@ -21,6 +21,7 @@ package eu.faircode.email;
import android.content.Context; import android.content.Context;
import android.graphics.Canvas; import android.graphics.Canvas;
import android.os.Build;
import android.util.AttributeSet; import android.util.AttributeSet;
import android.view.MotionEvent; import android.view.MotionEvent;
@ -97,6 +98,20 @@ public class FixedEditText extends AppCompatEditText {
} }
} }
@Override
public boolean dispatchTouchEvent(MotionEvent event) {
// https://issuetracker.google.com/issues/37068143
if ((BuildConfig.DEBUG || Build.VERSION.SDK_INT <= Build.VERSION_CODES.M) &&
hasSelection() &&
event.getActionMasked() == MotionEvent.ACTION_DOWN) {
CharSequence text = getText();
setText(null);
setText(text);
}
return super.dispatchTouchEvent(event);
}
@Override @Override
public boolean performLongClick() { public boolean performLongClick() {
try { try {

View File

@ -111,7 +111,7 @@ public class FixedTextView extends AppCompatTextView {
@Override @Override
public boolean dispatchTouchEvent(MotionEvent event) { public boolean dispatchTouchEvent(MotionEvent event) {
// https://issuetracker.google.com/issues/37068143 // https://issuetracker.google.com/issues/37068143
if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.M && if ((BuildConfig.DEBUG || Build.VERSION.SDK_INT <= Build.VERSION_CODES.M) &&
hasSelection() && hasSelection() &&
event.getActionMasked() == MotionEvent.ACTION_DOWN) { event.getActionMasked() == MotionEvent.ACTION_DOWN) {
CharSequence text = getText(); CharSequence text = getText();