Currently, TouchDelegate can be used to receive the primary pointer
events with actions ACTION_DOWN, ACTION_UP, and ACTION_MOVE. While
ACTION_MOVE will contain the data for all active pointers (not just
primary), currently TouchDelegate will not forward ACTION_POINTER_DOWN
and ACTION_POINTER_UP events.
This change modifies TouchDelegate behaviour to also forward the
non-primary pointer DOWN and UP events to the target view.
Bug:
37060799
Test: atest cts.TouchDelegateTest
Change-Id: Ieb457c9e15058302cb26d9d4a83f958bbec8dbc0
boolean hit = true;
boolean handled = false;
- switch (event.getAction()) {
+ switch (event.getActionMasked()) {
case MotionEvent.ACTION_DOWN:
mDelegateTargeted = mBounds.contains(x, y);
sendToDelegate = mDelegateTargeted;
break;
+ case MotionEvent.ACTION_POINTER_DOWN:
+ case MotionEvent.ACTION_POINTER_UP:
case MotionEvent.ACTION_UP:
case MotionEvent.ACTION_MOVE:
sendToDelegate = mDelegateTargeted;