mirror of
https://github.com/flutter/flutter.git
synced 2025-06-03 00:51:18 +00:00
32 lines
1.5 KiB
Markdown
32 lines
1.5 KiB
Markdown
# Integration test for touch events on embedded Android views
|
|
|
|
This test verifies that the synthesized motion events that get to embedded
|
|
Android view are equal to the motion events that originally hit the FlutterView.
|
|
|
|
The test app's Android code listens to MotionEvents that get to FlutterView and
|
|
to an embedded Android view and sends them over a platform channel to the Dart
|
|
code where the events are matched.
|
|
|
|
This is what the app looks like:
|
|
|
|

|
|
|
|
The blue part is the embedded Android view, because it is positioned at the top
|
|
left corner, the coordinate systems for FlutterView and for the embedded view's
|
|
virtual display has the same origin (this makes the MotionEvent comparison
|
|
easier as we don't need to translate the coordinates).
|
|
|
|
The app includes the following control buttons:
|
|
* RECORD - Start listening for MotionEvents for 3 seconds, matched/unmatched events are
|
|
displayed in the listview as they arrive.
|
|
* CLEAR - Clears the events that were recorded so far.
|
|
* SAVE - Saves the events that hit FlutterView to a file.
|
|
* PLAY FILE - Send a list of events from a bundled asset file to FlutterView.
|
|
|
|
A recorded touch events sequence is bundled as an asset in the
|
|
assets_for_android_view package which lives in the goldens repository.
|
|
|
|
When running this test with `flutter drive` the record touch sequences is
|
|
replayed and the test asserts that the events that got to FlutterView are
|
|
equivalent to the ones that got to the embedded view.
|