Override VelocityTracker strategy for non-differential axes only
VelocityTracker may use different strategies, depending on the system flags. By default, the behaviour is like this: AXIS_X -> lsq2 AXIS_Y -> lsq2 AXIS_SCROLL -> impulse However, if we provide a specific strategy to VT, then things would change. The new map would look like this: AXIS_X -> provided strategy AXIS_Y -> provided strategy AXIS_SCROLL -> provided strategy This works fine if the user specifies "impulse" as the desired strategy, because impulse supports all of the axes. However, lsq2 only works in non-differential mode. The combination of "AXIS_SCROLL -> lsq2" is not allowed. To fix this, we only allow the specified strategy to affect non-differential axes. This is fine, because currently, impulse is the only strategy that can work in the differential mode. To reproduce the issue: 1. Run `atest VelocityTrackerTest`. Test should pass, because the default strategy is being used. 2. Connect the device to internet 3. Reboot the device 4. Run `atest VelocityTrackerTest` again. Test should fail because the device would pick up an "lsq2" strategy value and then try to run the axis_scroll tests with it. Bug: 295290374 Test: atest VelocityTrackerTest Change-Id: I702a2a3e58db3ce2e0ff0c33122839a527eebab2
Loading