Refactor use of services in InputMappers.
Create InputDeviceContext class to hide direct EventHub and
InputDevice accesses from InputMappers.
Test: atest inputflinger_tests libinput_tests
Change-Id: I05f9c808fc1a6f4c9207bd29fde50b76ec5655bb
diff --git a/services/inputflinger/reader/mapper/ExternalStylusInputMapper.cpp b/services/inputflinger/reader/mapper/ExternalStylusInputMapper.cpp
index 9aa0770..37e4047 100644
--- a/services/inputflinger/reader/mapper/ExternalStylusInputMapper.cpp
+++ b/services/inputflinger/reader/mapper/ExternalStylusInputMapper.cpp
@@ -23,7 +23,8 @@
namespace android {
-ExternalStylusInputMapper::ExternalStylusInputMapper(InputDevice* device) : InputMapper(device) {}
+ExternalStylusInputMapper::ExternalStylusInputMapper(InputDeviceContext& deviceContext)
+ : InputMapper(deviceContext) {}
uint32_t ExternalStylusInputMapper::getSources() {
return AINPUT_SOURCE_STYLUS;
@@ -46,13 +47,12 @@
void ExternalStylusInputMapper::configure(nsecs_t when, const InputReaderConfiguration* config,
uint32_t changes) {
getAbsoluteAxisInfo(ABS_PRESSURE, &mRawPressureAxis);
- mTouchButtonAccumulator.configure(getDevice());
+ mTouchButtonAccumulator.configure(getDeviceContext());
}
void ExternalStylusInputMapper::reset(nsecs_t when) {
- InputDevice* device = getDevice();
- mSingleTouchMotionAccumulator.reset(device);
- mTouchButtonAccumulator.reset(device);
+ mSingleTouchMotionAccumulator.reset(getDeviceContext());
+ mTouchButtonAccumulator.reset(getDeviceContext());
InputMapper::reset(when);
}
@@ -86,7 +86,7 @@
mStylusState.buttons = mTouchButtonAccumulator.getButtonState();
- mContext->dispatchExternalStylusState(mStylusState);
+ getContext()->dispatchExternalStylusState(mStylusState);
}
} // namespace android