John McCutchan 6518198fc6 Android Platform Views support Verified Input Events (flutter/engine#49268)
Android Platform Views process MotionEvents in a complicated way:

1. MotionEvent is captured and delivered to
PlatformViewWrapper.onTouchEvent (TLHC) or
FlutterMutatorView.onTouchEvent (HC)
2. MotionEvent is transformed by the AndroidTouchProcessor into a
PointerEvent
3. AndroidTouchProcessor sends the PointerEvent over the
PlatformViewChannel
4. Framework processes the PointerEvent
5. Framework sends the PointerEvent over the PlatformViewChannel.
6. in PlatformViewsController.onTouch a new MotionEvent is synthesized
7. The MotionEvent is delivered to the platform view

After step (6) the MotionEvent will fail Verification
(`android.hardware.input.InputManager.verifyInputEvent`).

The fix requires that in step (6) we use the original motion event
delivered in step (1) instead of synthesizing a new instance.
2024-01-02 11:32:06 -08:00
..