Loading services/inputflinger/InputFilter.cpp +18 −11 Original line number Diff line number Diff line Loading @@ -52,15 +52,15 @@ InputFilter::InputFilter(InputListenerInterface& listener, IInputFlingerRust& ru } void InputFilter::notifyInputDevicesChanged(const NotifyInputDevicesChangedArgs& args) { if (isFilterEnabled()) { std::vector<AidlDeviceInfo> deviceInfos; mDeviceInfos.clear(); mDeviceInfos.reserve(args.inputDeviceInfos.size()); for (auto info : args.inputDeviceInfos) { AidlDeviceInfo aidlInfo; AidlDeviceInfo& aidlInfo = mDeviceInfos.emplace_back(); aidlInfo.deviceId = info.getId(); aidlInfo.external = info.isExternal(); deviceInfos.push_back(aidlInfo); } LOG_ALWAYS_FATAL_IF(!mInputFilterRust->notifyInputDevicesChanged(deviceInfos).isOk()); if (isFilterEnabled()) { LOG_ALWAYS_FATAL_IF(!mInputFilterRust->notifyInputDevicesChanged(mDeviceInfos).isOk()); } mNextListener.notify(args); } Loading @@ -74,7 +74,7 @@ void InputFilter::notifyKey(const NotifyKeyArgs& args) { LOG_ALWAYS_FATAL_IF(!mInputFilterRust->notifyKey(notifyKeyArgsToKeyEvent(args)).isOk()); return; } mNextListener.notifyKey(args); mNextListener.notify(args); } void InputFilter::notifyMotion(const NotifyMotionArgs& args) { Loading Loading @@ -112,7 +112,7 @@ void InputFilter::setAccessibilityBounceKeysThreshold(nsecs_t threshold) { if (mConfig.bounceKeysThresholdNs != threshold) { mConfig.bounceKeysThresholdNs = threshold; LOG_ALWAYS_FATAL_IF(!mInputFilterRust->notifyConfigurationChanged(mConfig).isOk()); notifyConfigurationChangedLocked(); } } Loading @@ -121,7 +121,14 @@ void InputFilter::setAccessibilityStickyKeysEnabled(bool enabled) { if (mConfig.stickyKeysEnabled != enabled) { mConfig.stickyKeysEnabled = enabled; notifyConfigurationChangedLocked(); } } void InputFilter::notifyConfigurationChangedLocked() { LOG_ALWAYS_FATAL_IF(!mInputFilterRust->notifyConfigurationChanged(mConfig).isOk()); if (isFilterEnabled()) { LOG_ALWAYS_FATAL_IF(!mInputFilterRust->notifyInputDevicesChanged(mDeviceInfos).isOk()); } } Loading services/inputflinger/InputFilter.h +5 −0 Original line number Diff line number Diff line Loading @@ -45,6 +45,7 @@ public: aidl::com::android::server::inputflinger::IInputFilter::IInputFilterCallbacks; using InputFilterConfiguration = aidl::com::android::server::inputflinger::InputFilterConfiguration; using AidlDeviceInfo = aidl::com::android::server::inputflinger::DeviceInfo; explicit InputFilter(InputListenerInterface& listener, IInputFlingerRust&); ~InputFilter() override = default; Loading @@ -65,10 +66,14 @@ private: InputListenerInterface& mNextListener; std::shared_ptr<InputFilterCallbacks> mCallbacks; std::shared_ptr<IInputFilter> mInputFilterRust; // Keep track of connected peripherals, so that if filters are enabled later, we can pass that // info to the filters std::vector<AidlDeviceInfo> mDeviceInfos; mutable std::mutex mLock; InputFilterConfiguration mConfig GUARDED_BY(mLock); bool isFilterEnabled(); void notifyConfigurationChangedLocked() REQUIRES(mLock); }; } // namespace android Loading
services/inputflinger/InputFilter.cpp +18 −11 Original line number Diff line number Diff line Loading @@ -52,15 +52,15 @@ InputFilter::InputFilter(InputListenerInterface& listener, IInputFlingerRust& ru } void InputFilter::notifyInputDevicesChanged(const NotifyInputDevicesChangedArgs& args) { if (isFilterEnabled()) { std::vector<AidlDeviceInfo> deviceInfos; mDeviceInfos.clear(); mDeviceInfos.reserve(args.inputDeviceInfos.size()); for (auto info : args.inputDeviceInfos) { AidlDeviceInfo aidlInfo; AidlDeviceInfo& aidlInfo = mDeviceInfos.emplace_back(); aidlInfo.deviceId = info.getId(); aidlInfo.external = info.isExternal(); deviceInfos.push_back(aidlInfo); } LOG_ALWAYS_FATAL_IF(!mInputFilterRust->notifyInputDevicesChanged(deviceInfos).isOk()); if (isFilterEnabled()) { LOG_ALWAYS_FATAL_IF(!mInputFilterRust->notifyInputDevicesChanged(mDeviceInfos).isOk()); } mNextListener.notify(args); } Loading @@ -74,7 +74,7 @@ void InputFilter::notifyKey(const NotifyKeyArgs& args) { LOG_ALWAYS_FATAL_IF(!mInputFilterRust->notifyKey(notifyKeyArgsToKeyEvent(args)).isOk()); return; } mNextListener.notifyKey(args); mNextListener.notify(args); } void InputFilter::notifyMotion(const NotifyMotionArgs& args) { Loading Loading @@ -112,7 +112,7 @@ void InputFilter::setAccessibilityBounceKeysThreshold(nsecs_t threshold) { if (mConfig.bounceKeysThresholdNs != threshold) { mConfig.bounceKeysThresholdNs = threshold; LOG_ALWAYS_FATAL_IF(!mInputFilterRust->notifyConfigurationChanged(mConfig).isOk()); notifyConfigurationChangedLocked(); } } Loading @@ -121,7 +121,14 @@ void InputFilter::setAccessibilityStickyKeysEnabled(bool enabled) { if (mConfig.stickyKeysEnabled != enabled) { mConfig.stickyKeysEnabled = enabled; notifyConfigurationChangedLocked(); } } void InputFilter::notifyConfigurationChangedLocked() { LOG_ALWAYS_FATAL_IF(!mInputFilterRust->notifyConfigurationChanged(mConfig).isOk()); if (isFilterEnabled()) { LOG_ALWAYS_FATAL_IF(!mInputFilterRust->notifyInputDevicesChanged(mDeviceInfos).isOk()); } } Loading
services/inputflinger/InputFilter.h +5 −0 Original line number Diff line number Diff line Loading @@ -45,6 +45,7 @@ public: aidl::com::android::server::inputflinger::IInputFilter::IInputFilterCallbacks; using InputFilterConfiguration = aidl::com::android::server::inputflinger::InputFilterConfiguration; using AidlDeviceInfo = aidl::com::android::server::inputflinger::DeviceInfo; explicit InputFilter(InputListenerInterface& listener, IInputFlingerRust&); ~InputFilter() override = default; Loading @@ -65,10 +66,14 @@ private: InputListenerInterface& mNextListener; std::shared_ptr<InputFilterCallbacks> mCallbacks; std::shared_ptr<IInputFilter> mInputFilterRust; // Keep track of connected peripherals, so that if filters are enabled later, we can pass that // info to the filters std::vector<AidlDeviceInfo> mDeviceInfos; mutable std::mutex mLock; InputFilterConfiguration mConfig GUARDED_BY(mLock); bool isFilterEnabled(); void notifyConfigurationChangedLocked() REQUIRES(mLock); }; } // namespace android