diff options
| author | 2021-11-12 20:08:38 -0800 | |
|---|---|---|
| committer | 2021-11-15 13:54:52 -0800 | |
| commit | d948957b396a9301e6e247023d8509f44f6cf87c (patch) | |
| tree | a8f38f159912be41d6e7de248c3f6907015f4b0c /libs/input/InputDevice.cpp | |
| parent | c9963a2d6e1b8751541fa395115311bd50b90b87 (diff) | |
Look up source using & instead of equality
Source for an input device may be composite. On some devices, the source
is specified as TOUCHSCREEN | STYLUS. That means a regular lookup of a
MotionRange using just SOURCE_TOUCHSCREEN fails.
Update the code to allow composite sources.
Also, improve the source dump by printing words instead of numbers.
Bug: 198472780
Test: adb shell dumpsys input
Change-Id: I8d395f2bb5a6db031e5c2aa6c1f5152ff067a2bb
Diffstat (limited to 'libs/input/InputDevice.cpp')
| -rw-r--r-- | libs/input/InputDevice.cpp | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/libs/input/InputDevice.cpp b/libs/input/InputDevice.cpp index 015bd81361..ac84627b3f 100644 --- a/libs/input/InputDevice.cpp +++ b/libs/input/InputDevice.cpp @@ -208,10 +208,8 @@ void InputDeviceInfo::initialize(int32_t id, int32_t generation, int32_t control const InputDeviceInfo::MotionRange* InputDeviceInfo::getMotionRange( int32_t axis, uint32_t source) const { - size_t numRanges = mMotionRanges.size(); - for (size_t i = 0; i < numRanges; i++) { - const MotionRange& range = mMotionRanges[i]; - if (range.axis == axis && range.source == source) { + for (const MotionRange& range : mMotionRanges) { + if (range.axis == axis && isFromSource(range.source, source)) { return ⦥ } } |