Loading services/inputflinger/InputFilter.cpp +2 −2 Original line number Original line Diff line number Diff line Loading @@ -45,9 +45,9 @@ AidlKeyEvent notifyKeyArgsToKeyEvent(const NotifyKeyArgs& args) { } } InputFilter::InputFilter(InputListenerInterface& listener, IInputFlingerRust& rust, InputFilter::InputFilter(InputListenerInterface& listener, IInputFlingerRust& rust, InputFilterPolicyInterface& policy) InputFilterPolicyInterface& policy, JNIEnv* env) : mNextListener(listener), : mNextListener(listener), mCallbacks(ndk::SharedRefBase::make<InputFilterCallbacks>(listener, policy)), mCallbacks(ndk::SharedRefBase::make<InputFilterCallbacks>(listener, policy, env)), mPolicy(policy) { mPolicy(policy) { LOG_ALWAYS_FATAL_IF(!rust.createInputFilter(mCallbacks, &mInputFilterRust).isOk()); LOG_ALWAYS_FATAL_IF(!rust.createInputFilter(mCallbacks, &mInputFilterRust).isOk()); LOG_ALWAYS_FATAL_IF(!mInputFilterRust); LOG_ALWAYS_FATAL_IF(!mInputFilterRust); Loading services/inputflinger/InputFilter.h +1 −1 Original line number Original line Diff line number Diff line Loading @@ -50,7 +50,7 @@ public: using AidlDeviceInfo = aidl::com::android::server::inputflinger::DeviceInfo; using AidlDeviceInfo = aidl::com::android::server::inputflinger::DeviceInfo; explicit InputFilter(InputListenerInterface& listener, IInputFlingerRust& rust, explicit InputFilter(InputListenerInterface& listener, IInputFlingerRust& rust, InputFilterPolicyInterface& policy); InputFilterPolicyInterface& policy, JNIEnv* env); ~InputFilter() override = default; ~InputFilter() override = default; void notifyInputDevicesChanged(const NotifyInputDevicesChangedArgs& args) override; void notifyInputDevicesChanged(const NotifyInputDevicesChangedArgs& args) override; void notifyKey(const NotifyKeyArgs& args) override; void notifyKey(const NotifyKeyArgs& args) override; Loading services/inputflinger/InputFilterCallbacks.cpp +7 −5 Original line number Original line Diff line number Diff line Loading @@ -23,6 +23,7 @@ #include <utils/StrongPointer.h> #include <utils/StrongPointer.h> #include <functional> #include <functional> #include "InputThread.h" #include "InputThread.h" #include "jni.h" namespace android { namespace android { Loading @@ -41,11 +42,12 @@ using namespace aidl::com::android::server::inputflinger; class InputFilterThread : public BnInputThread { class InputFilterThread : public BnInputThread { public: public: InputFilterThread(std::shared_ptr<IInputThreadCallback> callback) : mCallback(callback) { InputFilterThread(std::shared_ptr<IInputThreadCallback> callback, JNIEnv* env) : mCallback(callback) { mLooper = sp<Looper>::make(/*allowNonCallbacks=*/false); mLooper = sp<Looper>::make(/*allowNonCallbacks=*/false); mThread = std::make_unique<InputThread>( mThread = std::make_unique<InputThread>( "InputFilter", [this]() { loopOnce(); }, [this]() { mLooper->wake(); }, "InputFilter", [this]() { loopOnce(); }, [this]() { mLooper->wake(); }, /*isInCriticalPath=*/false); /*isInCriticalPath=*/false, env); } } ndk::ScopedAStatus finish() override { ndk::ScopedAStatus finish() override { Loading Loading @@ -79,8 +81,8 @@ private: } // namespace } // namespace InputFilterCallbacks::InputFilterCallbacks(InputListenerInterface& listener, InputFilterCallbacks::InputFilterCallbacks(InputListenerInterface& listener, InputFilterPolicyInterface& policy) InputFilterPolicyInterface& policy, JNIEnv* env) : mNextListener(listener), mPolicy(policy) {} : mNextListener(listener), mPolicy(policy), mJniEnv(env) {} ndk::ScopedAStatus InputFilterCallbacks::sendKeyEvent(const AidlKeyEvent& event) { ndk::ScopedAStatus InputFilterCallbacks::sendKeyEvent(const AidlKeyEvent& event) { mNextListener.notifyKey(keyEventToNotifyKeyArgs(event)); mNextListener.notifyKey(keyEventToNotifyKeyArgs(event)); Loading @@ -101,7 +103,7 @@ ndk::ScopedAStatus InputFilterCallbacks::onModifierStateChanged(int32_t modifier ndk::ScopedAStatus InputFilterCallbacks::createInputFilterThread( ndk::ScopedAStatus InputFilterCallbacks::createInputFilterThread( const std::shared_ptr<IInputThreadCallback>& callback, const std::shared_ptr<IInputThreadCallback>& callback, std::shared_ptr<IInputThread>* aidl_return) { std::shared_ptr<IInputThread>* aidl_return) { *aidl_return = ndk::SharedRefBase::make<InputFilterThread>(callback); *aidl_return = ndk::SharedRefBase::make<InputFilterThread>(callback, mJniEnv); return ndk::ScopedAStatus::ok(); return ndk::ScopedAStatus::ok(); } } Loading services/inputflinger/InputFilterCallbacks.h +2 −1 Original line number Original line Diff line number Diff line Loading @@ -39,7 +39,7 @@ using IInputThreadCallback = class InputFilterCallbacks : public IInputFilter::BnInputFilterCallbacks { class InputFilterCallbacks : public IInputFilter::BnInputFilterCallbacks { public: public: explicit InputFilterCallbacks(InputListenerInterface& listener, explicit InputFilterCallbacks(InputListenerInterface& listener, InputFilterPolicyInterface& policy); InputFilterPolicyInterface& policy, JNIEnv* env); ~InputFilterCallbacks() override = default; ~InputFilterCallbacks() override = default; uint32_t getModifierState(); uint32_t getModifierState(); Loading @@ -48,6 +48,7 @@ public: private: private: InputListenerInterface& mNextListener; InputListenerInterface& mNextListener; InputFilterPolicyInterface& mPolicy; InputFilterPolicyInterface& mPolicy; JNIEnv* mJniEnv; mutable std::mutex mLock; mutable std::mutex mLock; struct StickyModifierState { struct StickyModifierState { uint32_t modifierState; uint32_t modifierState; Loading services/inputflinger/InputManager.cpp +4 −4 Original line number Original line Diff line number Diff line Loading @@ -125,15 +125,15 @@ std::shared_ptr<IInputFlingerRust> createInputFlingerRust() { InputManager::InputManager(const sp<InputReaderPolicyInterface>& readerPolicy, InputManager::InputManager(const sp<InputReaderPolicyInterface>& readerPolicy, InputDispatcherPolicyInterface& dispatcherPolicy, InputDispatcherPolicyInterface& dispatcherPolicy, PointerChoreographerPolicyInterface& choreographerPolicy, PointerChoreographerPolicyInterface& choreographerPolicy, InputFilterPolicyInterface& inputFilterPolicy) { InputFilterPolicyInterface& inputFilterPolicy, JNIEnv* env) { mInputFlingerRust = createInputFlingerRust(); mInputFlingerRust = createInputFlingerRust(); mDispatcher = createInputDispatcher(dispatcherPolicy); mDispatcher = createInputDispatcher(dispatcherPolicy, env); mTracingStages.emplace_back( mTracingStages.emplace_back( std::make_unique<TracedInputListener>("InputDispatcher", *mDispatcher)); std::make_unique<TracedInputListener>("InputDispatcher", *mDispatcher)); mInputFilter = std::make_unique<InputFilter>(*mTracingStages.back(), *mInputFlingerRust, mInputFilter = std::make_unique<InputFilter>(*mTracingStages.back(), *mInputFlingerRust, inputFilterPolicy); inputFilterPolicy, env); mTracingStages.emplace_back( mTracingStages.emplace_back( std::make_unique<TracedInputListener>("InputFilter", *mInputFilter)); std::make_unique<TracedInputListener>("InputFilter", *mInputFilter)); Loading @@ -156,7 +156,7 @@ InputManager::InputManager(const sp<InputReaderPolicyInterface>& readerPolicy, mTracingStages.emplace_back( mTracingStages.emplace_back( std::make_unique<TracedInputListener>("UnwantedInteractionBlocker", *mBlocker)); std::make_unique<TracedInputListener>("UnwantedInteractionBlocker", *mBlocker)); mReader = createInputReader(readerPolicy, *mTracingStages.back()); mReader = createInputReader(readerPolicy, *mTracingStages.back(), env); } } InputManager::~InputManager() { InputManager::~InputManager() { Loading Loading
services/inputflinger/InputFilter.cpp +2 −2 Original line number Original line Diff line number Diff line Loading @@ -45,9 +45,9 @@ AidlKeyEvent notifyKeyArgsToKeyEvent(const NotifyKeyArgs& args) { } } InputFilter::InputFilter(InputListenerInterface& listener, IInputFlingerRust& rust, InputFilter::InputFilter(InputListenerInterface& listener, IInputFlingerRust& rust, InputFilterPolicyInterface& policy) InputFilterPolicyInterface& policy, JNIEnv* env) : mNextListener(listener), : mNextListener(listener), mCallbacks(ndk::SharedRefBase::make<InputFilterCallbacks>(listener, policy)), mCallbacks(ndk::SharedRefBase::make<InputFilterCallbacks>(listener, policy, env)), mPolicy(policy) { mPolicy(policy) { LOG_ALWAYS_FATAL_IF(!rust.createInputFilter(mCallbacks, &mInputFilterRust).isOk()); LOG_ALWAYS_FATAL_IF(!rust.createInputFilter(mCallbacks, &mInputFilterRust).isOk()); LOG_ALWAYS_FATAL_IF(!mInputFilterRust); LOG_ALWAYS_FATAL_IF(!mInputFilterRust); Loading
services/inputflinger/InputFilter.h +1 −1 Original line number Original line Diff line number Diff line Loading @@ -50,7 +50,7 @@ public: using AidlDeviceInfo = aidl::com::android::server::inputflinger::DeviceInfo; using AidlDeviceInfo = aidl::com::android::server::inputflinger::DeviceInfo; explicit InputFilter(InputListenerInterface& listener, IInputFlingerRust& rust, explicit InputFilter(InputListenerInterface& listener, IInputFlingerRust& rust, InputFilterPolicyInterface& policy); InputFilterPolicyInterface& policy, JNIEnv* env); ~InputFilter() override = default; ~InputFilter() override = default; void notifyInputDevicesChanged(const NotifyInputDevicesChangedArgs& args) override; void notifyInputDevicesChanged(const NotifyInputDevicesChangedArgs& args) override; void notifyKey(const NotifyKeyArgs& args) override; void notifyKey(const NotifyKeyArgs& args) override; Loading
services/inputflinger/InputFilterCallbacks.cpp +7 −5 Original line number Original line Diff line number Diff line Loading @@ -23,6 +23,7 @@ #include <utils/StrongPointer.h> #include <utils/StrongPointer.h> #include <functional> #include <functional> #include "InputThread.h" #include "InputThread.h" #include "jni.h" namespace android { namespace android { Loading @@ -41,11 +42,12 @@ using namespace aidl::com::android::server::inputflinger; class InputFilterThread : public BnInputThread { class InputFilterThread : public BnInputThread { public: public: InputFilterThread(std::shared_ptr<IInputThreadCallback> callback) : mCallback(callback) { InputFilterThread(std::shared_ptr<IInputThreadCallback> callback, JNIEnv* env) : mCallback(callback) { mLooper = sp<Looper>::make(/*allowNonCallbacks=*/false); mLooper = sp<Looper>::make(/*allowNonCallbacks=*/false); mThread = std::make_unique<InputThread>( mThread = std::make_unique<InputThread>( "InputFilter", [this]() { loopOnce(); }, [this]() { mLooper->wake(); }, "InputFilter", [this]() { loopOnce(); }, [this]() { mLooper->wake(); }, /*isInCriticalPath=*/false); /*isInCriticalPath=*/false, env); } } ndk::ScopedAStatus finish() override { ndk::ScopedAStatus finish() override { Loading Loading @@ -79,8 +81,8 @@ private: } // namespace } // namespace InputFilterCallbacks::InputFilterCallbacks(InputListenerInterface& listener, InputFilterCallbacks::InputFilterCallbacks(InputListenerInterface& listener, InputFilterPolicyInterface& policy) InputFilterPolicyInterface& policy, JNIEnv* env) : mNextListener(listener), mPolicy(policy) {} : mNextListener(listener), mPolicy(policy), mJniEnv(env) {} ndk::ScopedAStatus InputFilterCallbacks::sendKeyEvent(const AidlKeyEvent& event) { ndk::ScopedAStatus InputFilterCallbacks::sendKeyEvent(const AidlKeyEvent& event) { mNextListener.notifyKey(keyEventToNotifyKeyArgs(event)); mNextListener.notifyKey(keyEventToNotifyKeyArgs(event)); Loading @@ -101,7 +103,7 @@ ndk::ScopedAStatus InputFilterCallbacks::onModifierStateChanged(int32_t modifier ndk::ScopedAStatus InputFilterCallbacks::createInputFilterThread( ndk::ScopedAStatus InputFilterCallbacks::createInputFilterThread( const std::shared_ptr<IInputThreadCallback>& callback, const std::shared_ptr<IInputThreadCallback>& callback, std::shared_ptr<IInputThread>* aidl_return) { std::shared_ptr<IInputThread>* aidl_return) { *aidl_return = ndk::SharedRefBase::make<InputFilterThread>(callback); *aidl_return = ndk::SharedRefBase::make<InputFilterThread>(callback, mJniEnv); return ndk::ScopedAStatus::ok(); return ndk::ScopedAStatus::ok(); } } Loading
services/inputflinger/InputFilterCallbacks.h +2 −1 Original line number Original line Diff line number Diff line Loading @@ -39,7 +39,7 @@ using IInputThreadCallback = class InputFilterCallbacks : public IInputFilter::BnInputFilterCallbacks { class InputFilterCallbacks : public IInputFilter::BnInputFilterCallbacks { public: public: explicit InputFilterCallbacks(InputListenerInterface& listener, explicit InputFilterCallbacks(InputListenerInterface& listener, InputFilterPolicyInterface& policy); InputFilterPolicyInterface& policy, JNIEnv* env); ~InputFilterCallbacks() override = default; ~InputFilterCallbacks() override = default; uint32_t getModifierState(); uint32_t getModifierState(); Loading @@ -48,6 +48,7 @@ public: private: private: InputListenerInterface& mNextListener; InputListenerInterface& mNextListener; InputFilterPolicyInterface& mPolicy; InputFilterPolicyInterface& mPolicy; JNIEnv* mJniEnv; mutable std::mutex mLock; mutable std::mutex mLock; struct StickyModifierState { struct StickyModifierState { uint32_t modifierState; uint32_t modifierState; Loading
services/inputflinger/InputManager.cpp +4 −4 Original line number Original line Diff line number Diff line Loading @@ -125,15 +125,15 @@ std::shared_ptr<IInputFlingerRust> createInputFlingerRust() { InputManager::InputManager(const sp<InputReaderPolicyInterface>& readerPolicy, InputManager::InputManager(const sp<InputReaderPolicyInterface>& readerPolicy, InputDispatcherPolicyInterface& dispatcherPolicy, InputDispatcherPolicyInterface& dispatcherPolicy, PointerChoreographerPolicyInterface& choreographerPolicy, PointerChoreographerPolicyInterface& choreographerPolicy, InputFilterPolicyInterface& inputFilterPolicy) { InputFilterPolicyInterface& inputFilterPolicy, JNIEnv* env) { mInputFlingerRust = createInputFlingerRust(); mInputFlingerRust = createInputFlingerRust(); mDispatcher = createInputDispatcher(dispatcherPolicy); mDispatcher = createInputDispatcher(dispatcherPolicy, env); mTracingStages.emplace_back( mTracingStages.emplace_back( std::make_unique<TracedInputListener>("InputDispatcher", *mDispatcher)); std::make_unique<TracedInputListener>("InputDispatcher", *mDispatcher)); mInputFilter = std::make_unique<InputFilter>(*mTracingStages.back(), *mInputFlingerRust, mInputFilter = std::make_unique<InputFilter>(*mTracingStages.back(), *mInputFlingerRust, inputFilterPolicy); inputFilterPolicy, env); mTracingStages.emplace_back( mTracingStages.emplace_back( std::make_unique<TracedInputListener>("InputFilter", *mInputFilter)); std::make_unique<TracedInputListener>("InputFilter", *mInputFilter)); Loading @@ -156,7 +156,7 @@ InputManager::InputManager(const sp<InputReaderPolicyInterface>& readerPolicy, mTracingStages.emplace_back( mTracingStages.emplace_back( std::make_unique<TracedInputListener>("UnwantedInteractionBlocker", *mBlocker)); std::make_unique<TracedInputListener>("UnwantedInteractionBlocker", *mBlocker)); mReader = createInputReader(readerPolicy, *mTracingStages.back()); mReader = createInputReader(readerPolicy, *mTracingStages.back(), env); } } InputManager::~InputManager() { InputManager::~InputManager() { Loading