diff options
| -rw-r--r-- | services/inputflinger/reader/InputDevice.cpp | 2 | ||||
| -rw-r--r-- | services/inputflinger/reader/mapper/RotaryEncoderInputMapper.h | 8 |
2 files changed, 7 insertions, 3 deletions
diff --git a/services/inputflinger/reader/InputDevice.cpp b/services/inputflinger/reader/InputDevice.cpp index 225d7b4cba..3f6d557aa8 100644 --- a/services/inputflinger/reader/InputDevice.cpp +++ b/services/inputflinger/reader/InputDevice.cpp @@ -451,7 +451,7 @@ std::vector<std::unique_ptr<InputMapper>> InputDevice::createMappers( // Scroll wheel-like devices. if (classes.test(InputDeviceClass::ROTARY_ENCODER)) { - mappers.push_back(std::make_unique<RotaryEncoderInputMapper>(contextPtr, readerConfig)); + mappers.push_back(createInputMapper<RotaryEncoderInputMapper>(contextPtr, readerConfig)); } // Vibrator-like devices. diff --git a/services/inputflinger/reader/mapper/RotaryEncoderInputMapper.h b/services/inputflinger/reader/mapper/RotaryEncoderInputMapper.h index d3dcbe1bb4..9e2e8c4342 100644 --- a/services/inputflinger/reader/mapper/RotaryEncoderInputMapper.h +++ b/services/inputflinger/reader/mapper/RotaryEncoderInputMapper.h @@ -25,8 +25,10 @@ namespace android { class RotaryEncoderInputMapper : public InputMapper { public: - explicit RotaryEncoderInputMapper(InputDeviceContext& deviceContext, - const InputReaderConfiguration& readerConfig); + template <class T, class... Args> + friend std::unique_ptr<T> createInputMapper(InputDeviceContext& deviceContext, + const InputReaderConfiguration& readerConfig, + Args... args); virtual ~RotaryEncoderInputMapper(); virtual uint32_t getSources() const override; @@ -45,6 +47,8 @@ private: float mScalingFactor; ui::Rotation mOrientation; + explicit RotaryEncoderInputMapper(InputDeviceContext& deviceContext, + const InputReaderConfiguration& readerConfig); [[nodiscard]] std::list<NotifyArgs> sync(nsecs_t when, nsecs_t readTime); }; |