diff options
-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); }; |