Makes the multi-touch prevention only works for editable TextView.
The original logic of preventing the multi-touch issue for the edtiable
text view was introduced by ag/10930920.
Turns out the non-editable text views are affected.
The root cause of the issue is that:
- the ACTION_DOWN/ACTION_UP events, as well as ACTION_PONITER_DOWN /
ACTION_POINTER_UP, could be generated by different fingers,
- and View#onTouchEvent() gets muted when isFromPrimePointer() == false,
- so that no gesture is generated, e.g. click, long press, etc.
Note that View#onTouchEvent() is necessary to be muted to prevent long press
on text or scrolling while dragging the insertion handle view.
Bug: 169288151
Change-Id: Ia763e94be727ad23bb13839f146293f1579d03ec
(cherry picked from commit 265096d9dac9cdfdce11f24f1b840b3139ea6fc0)
diff --git a/core/java/android/widget/TextView.java b/core/java/android/widget/TextView.java
index e16bf5a..5870ae7 100644
--- a/core/java/android/widget/TextView.java
+++ b/core/java/android/widget/TextView.java
@@ -11009,12 +11009,12 @@
MotionEvent.actionToString(event.getActionMasked()),
event.getX(), event.getY());
}
- if (!isFromPrimePointer(event, false)) {
- return true;
- }
-
final int action = event.getActionMasked();
if (mEditor != null) {
+ if (!isFromPrimePointer(event, false)) {
+ return true;
+ }
+
mEditor.onTouchEvent(event);
if (mEditor.mInsertionPointCursorController != null