diff options
author | 2023-04-27 13:01:58 +0000 | |
---|---|---|
committer | 2023-05-09 15:08:26 +0000 | |
commit | 0bd940a85d6f202aeeeb97d63b0ae4998f931776 (patch) | |
tree | c02a8f8afe12a2b7d84f043e4a74fa38765d793a | |
parent | 56adebc49718b63046c3bca3bdd632f987a26962 (diff) |
InputMapper refactor: ExternalStylusInputMapper
Add a factory method for ExternalStylusInputMapper to be configured on
initilisation
Test: m checkinput && atest libinput_tests inputflinger_tests
Bug: 256009910
Change-Id: If75377416f4f6d3954480bf4e32886f3daf7f1f3
(cherry picked from commit c55f75fc90e99c55a7133f82c407520f22937d96)
-rw-r--r-- | services/inputflinger/reader/InputDevice.cpp | 2 | ||||
-rw-r--r-- | services/inputflinger/reader/mapper/ExternalStylusInputMapper.h | 8 |
2 files changed, 7 insertions, 3 deletions
diff --git a/services/inputflinger/reader/InputDevice.cpp b/services/inputflinger/reader/InputDevice.cpp index ec8a443eba..721bb0a962 100644 --- a/services/inputflinger/reader/InputDevice.cpp +++ b/services/inputflinger/reader/InputDevice.cpp @@ -520,7 +520,7 @@ std::vector<std::unique_ptr<InputMapper>> InputDevice::createMappers( // External stylus-like devices. if (classes.test(InputDeviceClass::EXTERNAL_STYLUS)) { - mappers.push_back(std::make_unique<ExternalStylusInputMapper>(contextPtr, readerConfig)); + mappers.push_back(createInputMapper<ExternalStylusInputMapper>(contextPtr, readerConfig)); } return mappers; } diff --git a/services/inputflinger/reader/mapper/ExternalStylusInputMapper.h b/services/inputflinger/reader/mapper/ExternalStylusInputMapper.h index 841c437543..97df02b69f 100644 --- a/services/inputflinger/reader/mapper/ExternalStylusInputMapper.h +++ b/services/inputflinger/reader/mapper/ExternalStylusInputMapper.h @@ -26,8 +26,10 @@ namespace android { class ExternalStylusInputMapper : public InputMapper { public: - explicit ExternalStylusInputMapper(InputDeviceContext& deviceContext, - const InputReaderConfiguration& readerConfig); + template <class T, class... Args> + friend std::unique_ptr<T> createInputMapper(InputDeviceContext& deviceContext, + const InputReaderConfiguration& readerConfig, + Args... args); virtual ~ExternalStylusInputMapper() = default; uint32_t getSources() const override; @@ -46,6 +48,8 @@ private: StylusState mStylusState; + explicit ExternalStylusInputMapper(InputDeviceContext& deviceContext, + const InputReaderConfiguration& readerConfig); [[nodiscard]] std::list<NotifyArgs> sync(nsecs_t when); }; |