Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Skip to content
Commit 2bc43cad authored by Siarhei Vishniakou's avatar Siarhei Vishniakou
Browse files

Use raw coordinates in VelocityTracker

Currently, VelocityTracker uses the "default" motionevent coordinates in
order to estimate the liftoff velocity of a pointer. When a view
receives a MotionEvent, the coordinates are getting adjusted relative to
the top left corner of the view. In a situation where a view itself is
moving while the user is interacting with the screen, and the view is
trying to estimate the fling velocity for a finger, this would cause
velocitytracker to use dynamic view coordinates. When these dynamically
adjusted coordinates are used in VelocityTracker, the resulting estimate
no longer accurately represents the liftoff velocity of a finger, since
the received data does not have a common origin.

Instead of using the offset-adjusted coordinates of a MotionEvent, use
the raw coordinates that are relative to the display itself and
independent of the view hierarchy.

Bug: 72263561
Test: m -j inputflinger_tests_InputReader_test
inputflinger_tests_InputDispatcher_test libinput_tests_InputChannel_test
libinput_tests_InputEvent_test
libinput_tests_InputPublisherAndConsumer_test
libinput_tests_VelocityTracker_test && adb push
out/target/product/$TARGET_PRODUCT/data/nativetest64/*
/data/nativetest64/
then run the tests on the device.
When "impulse" strategy is enabled, the velocitytracker test fails
because the flings need to be re-recorded.
Also manual fling in Google Maps (one and two finger), youtube, settings.

Change-Id: Id4d152dae00c2e6a342a71f5c89cbb5426c169ff
parent 0b267105
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment