Loading core/jni/android_view_InputChannel.cpp +15 −15 Original line number Diff line number Diff line Loading @@ -43,25 +43,24 @@ static struct { class NativeInputChannel { public: explicit NativeInputChannel(const sp<InputChannel>& inputChannel); explicit NativeInputChannel(const std::shared_ptr<InputChannel>& inputChannel); ~NativeInputChannel(); inline sp<InputChannel> getInputChannel() { return mInputChannel; } inline std::shared_ptr<InputChannel> getInputChannel() { return mInputChannel; } void setDisposeCallback(InputChannelObjDisposeCallback callback, void* data); void dispose(JNIEnv* env, jobject obj); private: sp<InputChannel> mInputChannel; std::shared_ptr<InputChannel> mInputChannel; InputChannelObjDisposeCallback mDisposeCallback; void* mDisposeData; }; // ---------------------------------------------------------------------------- NativeInputChannel::NativeInputChannel(const sp<InputChannel>& inputChannel) : mInputChannel(inputChannel), mDisposeCallback(nullptr) { } NativeInputChannel::NativeInputChannel(const std::shared_ptr<InputChannel>& inputChannel) : mInputChannel(inputChannel), mDisposeCallback(nullptr) {} NativeInputChannel::~NativeInputChannel() { } Loading @@ -81,7 +80,7 @@ void NativeInputChannel::dispose(JNIEnv* env, jobject obj) { mDisposeCallback = nullptr; mDisposeData = nullptr; } mInputChannel.clear(); mInputChannel.reset(); } // ---------------------------------------------------------------------------- Loading @@ -92,7 +91,8 @@ static NativeInputChannel* android_view_InputChannel_getNativeInputChannel(JNIEn return reinterpret_cast<NativeInputChannel*>(longPtr); } sp<InputChannel> android_view_InputChannel_getInputChannel(JNIEnv* env, jobject inputChannelObj) { std::shared_ptr<InputChannel> android_view_InputChannel_getInputChannel(JNIEnv* env, jobject inputChannelObj) { NativeInputChannel* nativeInputChannel = android_view_InputChannel_getNativeInputChannel(env, inputChannelObj); return nativeInputChannel != nullptr ? nativeInputChannel->getInputChannel() : nullptr; Loading @@ -109,8 +109,8 @@ void android_view_InputChannel_setDisposeCallback(JNIEnv* env, jobject inputChan } } static jlong android_view_InputChannel_createInputChannel(JNIEnv* env, sp<InputChannel> inputChannel) { static jlong android_view_InputChannel_createInputChannel( JNIEnv* env, std::shared_ptr<InputChannel> inputChannel) { std::unique_ptr<NativeInputChannel> nativeInputChannel = std::make_unique<NativeInputChannel>(inputChannel); Loading @@ -122,8 +122,8 @@ static jlongArray android_view_InputChannel_nativeOpenInputChannelPair(JNIEnv* e ScopedUtfChars nameChars(env, nameObj); std::string name = nameChars.c_str(); sp<InputChannel> serverChannel; sp<InputChannel> clientChannel; std::shared_ptr<InputChannel> serverChannel; std::shared_ptr<InputChannel> clientChannel; status_t result = InputChannel::openInputChannelPair(name, serverChannel, clientChannel); if (result) { Loading Loading @@ -180,7 +180,7 @@ static jlong android_view_InputChannel_nativeReadFromParcel(JNIEnv* env, jobject if (parcel) { bool isInitialized = parcel->readInt32(); if (isInitialized) { sp<InputChannel> inputChannel = new InputChannel(); std::shared_ptr<InputChannel> inputChannel = std::make_shared<InputChannel>(); inputChannel->readFromParcel(parcel); NativeInputChannel* nativeInputChannel = new NativeInputChannel(inputChannel); return reinterpret_cast<jlong>(nativeInputChannel); Loading Loading @@ -227,13 +227,13 @@ static jlong android_view_InputChannel_nativeDup(JNIEnv* env, jobject obj, jlong return 0; } sp<InputChannel> inputChannel = nativeInputChannel->getInputChannel(); std::shared_ptr<InputChannel> inputChannel = nativeInputChannel->getInputChannel(); if (inputChannel == nullptr) { jniThrowRuntimeException(env, "NativeInputChannel has no corresponding InputChannel"); return 0; } sp<InputChannel> dupInputChannel = inputChannel->dup(); std::shared_ptr<InputChannel> dupInputChannel = inputChannel->dup(); if (dupInputChannel == nullptr) { std::string message = android::base::StringPrintf( "Could not duplicate input channel %s", inputChannel->getName().c_str()); Loading core/jni/android_view_InputChannel.h +4 −3 Original line number Diff line number Diff line Loading @@ -24,10 +24,11 @@ namespace android { typedef void (*InputChannelObjDisposeCallback)(JNIEnv* env, jobject inputChannelObj, const sp<InputChannel>& inputChannel, void* data); const std::shared_ptr<InputChannel>& inputChannel, void* data); extern sp<InputChannel> android_view_InputChannel_getInputChannel(JNIEnv* env, jobject inputChannelObj); extern std::shared_ptr<InputChannel> android_view_InputChannel_getInputChannel( JNIEnv* env, jobject inputChannelObj); /* Sets a callback that is invoked when the InputChannel DVM object is disposed (or finalized). * This is used to automatically dispose of other native objects in the input dispatcher Loading core/jni/android_view_InputEventReceiver.cpp +13 −12 Original line number Diff line number Diff line Loading @@ -55,8 +55,8 @@ static struct { class NativeInputEventReceiver : public LooperCallback { public: NativeInputEventReceiver(JNIEnv* env, jobject receiverWeak, const sp<InputChannel>& inputChannel, NativeInputEventReceiver(JNIEnv* env, jobject receiverWeak, const std::shared_ptr<InputChannel>& inputChannel, const sp<MessageQueue>& messageQueue); status_t initialize(); Loading Loading @@ -91,13 +91,14 @@ private: virtual int handleEvent(int receiveFd, int events, void* data) override; }; NativeInputEventReceiver::NativeInputEventReceiver(JNIEnv* env, jobject receiverWeak, const sp<InputChannel>& inputChannel, const sp<MessageQueue>& messageQueue) : mReceiverWeakGlobal(env->NewGlobalRef(receiverWeak)), mInputConsumer(inputChannel), mMessageQueue(messageQueue), mBatchedInputEventPending(false), mFdEvents(0) { NativeInputEventReceiver::NativeInputEventReceiver( JNIEnv* env, jobject receiverWeak, const std::shared_ptr<InputChannel>& inputChannel, const sp<MessageQueue>& messageQueue) : mReceiverWeakGlobal(env->NewGlobalRef(receiverWeak)), mInputConsumer(inputChannel), mMessageQueue(messageQueue), mBatchedInputEventPending(false), mFdEvents(0) { if (kDebugDispatchCycle) { ALOGD("channel '%s' ~ Initializing input event receiver.", getInputChannelName().c_str()); } Loading Loading @@ -356,8 +357,8 @@ status_t NativeInputEventReceiver::consumeEvents(JNIEnv* env, static jlong nativeInit(JNIEnv* env, jclass clazz, jobject receiverWeak, jobject inputChannelObj, jobject messageQueueObj) { sp<InputChannel> inputChannel = android_view_InputChannel_getInputChannel(env, inputChannelObj); std::shared_ptr<InputChannel> inputChannel = android_view_InputChannel_getInputChannel(env, inputChannelObj); if (inputChannel == nullptr) { jniThrowRuntimeException(env, "InputChannel is not initialized."); return 0; Loading core/jni/android_view_InputEventSender.cpp +11 −11 Original line number Diff line number Diff line Loading @@ -48,8 +48,8 @@ static struct { class NativeInputEventSender : public LooperCallback { public: NativeInputEventSender(JNIEnv* env, jobject senderWeak, const sp<InputChannel>& inputChannel, NativeInputEventSender(JNIEnv* env, jobject senderWeak, const std::shared_ptr<InputChannel>& inputChannel, const sp<MessageQueue>& messageQueue); status_t initialize(); Loading @@ -76,12 +76,12 @@ private: status_t receiveFinishedSignals(JNIEnv* env); }; NativeInputEventSender::NativeInputEventSender(JNIEnv* env, jobject senderWeak, const sp<InputChannel>& inputChannel, const sp<MessageQueue>& messageQueue) : mSenderWeakGlobal(env->NewGlobalRef(senderWeak)), mInputPublisher(inputChannel), mMessageQueue(messageQueue), NativeInputEventSender::NativeInputEventSender(JNIEnv* env, jobject senderWeak, const std::shared_ptr<InputChannel>& inputChannel, const sp<MessageQueue>& messageQueue) : mSenderWeakGlobal(env->NewGlobalRef(senderWeak)), mInputPublisher(inputChannel), mMessageQueue(messageQueue), mNextPublishedSeq(1) { if (kDebugDispatchCycle) { ALOGD("channel '%s' ~ Initializing input event sender.", getInputChannelName().c_str()); Loading Loading @@ -249,8 +249,8 @@ status_t NativeInputEventSender::receiveFinishedSignals(JNIEnv* env) { static jlong nativeInit(JNIEnv* env, jclass clazz, jobject senderWeak, jobject inputChannelObj, jobject messageQueueObj) { sp<InputChannel> inputChannel = android_view_InputChannel_getInputChannel(env, inputChannelObj); std::shared_ptr<InputChannel> inputChannel = android_view_InputChannel_getInputChannel(env, inputChannelObj); if (inputChannel == NULL) { jniThrowRuntimeException(env, "InputChannel is not initialized."); return 0; Loading services/core/jni/com_android_server_input_InputManagerService.cpp +20 −18 Original line number Diff line number Diff line Loading @@ -200,10 +200,10 @@ public: void setDisplayViewports(JNIEnv* env, jobjectArray viewportObjArray); status_t registerInputChannel(JNIEnv* env, const sp<InputChannel>& inputChannel); status_t registerInputMonitor(JNIEnv* env, const sp<InputChannel>& inputChannel, status_t registerInputChannel(JNIEnv* env, const std::shared_ptr<InputChannel>& inputChannel); status_t registerInputMonitor(JNIEnv* env, const std::shared_ptr<InputChannel>& inputChannel, int32_t displayId, bool isGestureMonitor); status_t unregisterInputChannel(JNIEnv* env, const sp<InputChannel>& inputChannel); status_t unregisterInputChannel(JNIEnv* env, const InputChannel& inputChannel); status_t pilferPointers(const sp<IBinder>& token); void displayRemoved(JNIEnv* env, int32_t displayId); Loading Loading @@ -421,21 +421,22 @@ void NativeInputManager::setDisplayViewports(JNIEnv* env, jobjectArray viewportO InputReaderConfiguration::CHANGE_DISPLAY_INFO); } status_t NativeInputManager::registerInputChannel(JNIEnv* /* env */, const sp<InputChannel>& inputChannel) { status_t NativeInputManager::registerInputChannel( JNIEnv* /* env */, const std::shared_ptr<InputChannel>& inputChannel) { ATRACE_CALL(); return mInputManager->getDispatcher()->registerInputChannel(inputChannel); } status_t NativeInputManager::registerInputMonitor(JNIEnv* /* env */, const sp<InputChannel>& inputChannel, int32_t displayId, bool isGestureMonitor) { const std::shared_ptr<InputChannel>& inputChannel, int32_t displayId, bool isGestureMonitor) { ATRACE_CALL(); return mInputManager->getDispatcher()->registerInputMonitor( inputChannel, displayId, isGestureMonitor); } status_t NativeInputManager::unregisterInputChannel(JNIEnv* /* env */, const sp<InputChannel>& inputChannel) { const InputChannel& inputChannel) { ATRACE_CALL(); return mInputManager->getDispatcher()->unregisterInputChannel(inputChannel); } Loading Loading @@ -1338,21 +1339,22 @@ static void throwInputChannelNotInitialized(JNIEnv* env) { "inputChannel is not initialized"); } static void handleInputChannelDisposed(JNIEnv* env, jobject /* inputChannelObj */, const sp<InputChannel>& inputChannel, void* data) { static void handleInputChannelDisposed(JNIEnv* env, jobject /* inputChannelObj */, const std::shared_ptr<InputChannel>& inputChannel, void* data) { NativeInputManager* im = static_cast<NativeInputManager*>(data); ALOGW("Input channel object '%s' was disposed without first being unregistered with " "the input manager!", inputChannel->getName().c_str()); im->unregisterInputChannel(env, inputChannel); im->unregisterInputChannel(env, *inputChannel); } static void nativeRegisterInputChannel(JNIEnv* env, jclass /* clazz */, jlong ptr, jobject inputChannelObj) { NativeInputManager* im = reinterpret_cast<NativeInputManager*>(ptr); sp<InputChannel> inputChannel = android_view_InputChannel_getInputChannel(env, inputChannelObj); std::shared_ptr<InputChannel> inputChannel = android_view_InputChannel_getInputChannel(env, inputChannelObj); if (inputChannel == nullptr) { throwInputChannelNotInitialized(env); return; Loading @@ -1375,8 +1377,8 @@ static void nativeRegisterInputMonitor(JNIEnv* env, jclass /* clazz */, jlong ptr, jobject inputChannelObj, jint displayId, jboolean isGestureMonitor) { NativeInputManager* im = reinterpret_cast<NativeInputManager*>(ptr); sp<InputChannel> inputChannel = android_view_InputChannel_getInputChannel(env, inputChannelObj); std::shared_ptr<InputChannel> inputChannel = android_view_InputChannel_getInputChannel(env, inputChannelObj); if (inputChannel == nullptr) { throwInputChannelNotInitialized(env); return; Loading @@ -1401,8 +1403,8 @@ static void nativeUnregisterInputChannel(JNIEnv* env, jclass /* clazz */, jlong ptr, jobject inputChannelObj) { NativeInputManager* im = reinterpret_cast<NativeInputManager*>(ptr); sp<InputChannel> inputChannel = android_view_InputChannel_getInputChannel(env, inputChannelObj); std::shared_ptr<InputChannel> inputChannel = android_view_InputChannel_getInputChannel(env, inputChannelObj); if (inputChannel == nullptr) { throwInputChannelNotInitialized(env); return; Loading @@ -1410,7 +1412,7 @@ static void nativeUnregisterInputChannel(JNIEnv* env, jclass /* clazz */, android_view_InputChannel_setDisposeCallback(env, inputChannelObj, nullptr, nullptr); status_t status = im->unregisterInputChannel(env, inputChannel); status_t status = im->unregisterInputChannel(env, *inputChannel); if (status && status != BAD_VALUE) { // ignore already unregistered channel std::string message; message += StringPrintf("Failed to unregister input channel. status=%d", status); Loading Loading
core/jni/android_view_InputChannel.cpp +15 −15 Original line number Diff line number Diff line Loading @@ -43,25 +43,24 @@ static struct { class NativeInputChannel { public: explicit NativeInputChannel(const sp<InputChannel>& inputChannel); explicit NativeInputChannel(const std::shared_ptr<InputChannel>& inputChannel); ~NativeInputChannel(); inline sp<InputChannel> getInputChannel() { return mInputChannel; } inline std::shared_ptr<InputChannel> getInputChannel() { return mInputChannel; } void setDisposeCallback(InputChannelObjDisposeCallback callback, void* data); void dispose(JNIEnv* env, jobject obj); private: sp<InputChannel> mInputChannel; std::shared_ptr<InputChannel> mInputChannel; InputChannelObjDisposeCallback mDisposeCallback; void* mDisposeData; }; // ---------------------------------------------------------------------------- NativeInputChannel::NativeInputChannel(const sp<InputChannel>& inputChannel) : mInputChannel(inputChannel), mDisposeCallback(nullptr) { } NativeInputChannel::NativeInputChannel(const std::shared_ptr<InputChannel>& inputChannel) : mInputChannel(inputChannel), mDisposeCallback(nullptr) {} NativeInputChannel::~NativeInputChannel() { } Loading @@ -81,7 +80,7 @@ void NativeInputChannel::dispose(JNIEnv* env, jobject obj) { mDisposeCallback = nullptr; mDisposeData = nullptr; } mInputChannel.clear(); mInputChannel.reset(); } // ---------------------------------------------------------------------------- Loading @@ -92,7 +91,8 @@ static NativeInputChannel* android_view_InputChannel_getNativeInputChannel(JNIEn return reinterpret_cast<NativeInputChannel*>(longPtr); } sp<InputChannel> android_view_InputChannel_getInputChannel(JNIEnv* env, jobject inputChannelObj) { std::shared_ptr<InputChannel> android_view_InputChannel_getInputChannel(JNIEnv* env, jobject inputChannelObj) { NativeInputChannel* nativeInputChannel = android_view_InputChannel_getNativeInputChannel(env, inputChannelObj); return nativeInputChannel != nullptr ? nativeInputChannel->getInputChannel() : nullptr; Loading @@ -109,8 +109,8 @@ void android_view_InputChannel_setDisposeCallback(JNIEnv* env, jobject inputChan } } static jlong android_view_InputChannel_createInputChannel(JNIEnv* env, sp<InputChannel> inputChannel) { static jlong android_view_InputChannel_createInputChannel( JNIEnv* env, std::shared_ptr<InputChannel> inputChannel) { std::unique_ptr<NativeInputChannel> nativeInputChannel = std::make_unique<NativeInputChannel>(inputChannel); Loading @@ -122,8 +122,8 @@ static jlongArray android_view_InputChannel_nativeOpenInputChannelPair(JNIEnv* e ScopedUtfChars nameChars(env, nameObj); std::string name = nameChars.c_str(); sp<InputChannel> serverChannel; sp<InputChannel> clientChannel; std::shared_ptr<InputChannel> serverChannel; std::shared_ptr<InputChannel> clientChannel; status_t result = InputChannel::openInputChannelPair(name, serverChannel, clientChannel); if (result) { Loading Loading @@ -180,7 +180,7 @@ static jlong android_view_InputChannel_nativeReadFromParcel(JNIEnv* env, jobject if (parcel) { bool isInitialized = parcel->readInt32(); if (isInitialized) { sp<InputChannel> inputChannel = new InputChannel(); std::shared_ptr<InputChannel> inputChannel = std::make_shared<InputChannel>(); inputChannel->readFromParcel(parcel); NativeInputChannel* nativeInputChannel = new NativeInputChannel(inputChannel); return reinterpret_cast<jlong>(nativeInputChannel); Loading Loading @@ -227,13 +227,13 @@ static jlong android_view_InputChannel_nativeDup(JNIEnv* env, jobject obj, jlong return 0; } sp<InputChannel> inputChannel = nativeInputChannel->getInputChannel(); std::shared_ptr<InputChannel> inputChannel = nativeInputChannel->getInputChannel(); if (inputChannel == nullptr) { jniThrowRuntimeException(env, "NativeInputChannel has no corresponding InputChannel"); return 0; } sp<InputChannel> dupInputChannel = inputChannel->dup(); std::shared_ptr<InputChannel> dupInputChannel = inputChannel->dup(); if (dupInputChannel == nullptr) { std::string message = android::base::StringPrintf( "Could not duplicate input channel %s", inputChannel->getName().c_str()); Loading
core/jni/android_view_InputChannel.h +4 −3 Original line number Diff line number Diff line Loading @@ -24,10 +24,11 @@ namespace android { typedef void (*InputChannelObjDisposeCallback)(JNIEnv* env, jobject inputChannelObj, const sp<InputChannel>& inputChannel, void* data); const std::shared_ptr<InputChannel>& inputChannel, void* data); extern sp<InputChannel> android_view_InputChannel_getInputChannel(JNIEnv* env, jobject inputChannelObj); extern std::shared_ptr<InputChannel> android_view_InputChannel_getInputChannel( JNIEnv* env, jobject inputChannelObj); /* Sets a callback that is invoked when the InputChannel DVM object is disposed (or finalized). * This is used to automatically dispose of other native objects in the input dispatcher Loading
core/jni/android_view_InputEventReceiver.cpp +13 −12 Original line number Diff line number Diff line Loading @@ -55,8 +55,8 @@ static struct { class NativeInputEventReceiver : public LooperCallback { public: NativeInputEventReceiver(JNIEnv* env, jobject receiverWeak, const sp<InputChannel>& inputChannel, NativeInputEventReceiver(JNIEnv* env, jobject receiverWeak, const std::shared_ptr<InputChannel>& inputChannel, const sp<MessageQueue>& messageQueue); status_t initialize(); Loading Loading @@ -91,13 +91,14 @@ private: virtual int handleEvent(int receiveFd, int events, void* data) override; }; NativeInputEventReceiver::NativeInputEventReceiver(JNIEnv* env, jobject receiverWeak, const sp<InputChannel>& inputChannel, const sp<MessageQueue>& messageQueue) : mReceiverWeakGlobal(env->NewGlobalRef(receiverWeak)), mInputConsumer(inputChannel), mMessageQueue(messageQueue), mBatchedInputEventPending(false), mFdEvents(0) { NativeInputEventReceiver::NativeInputEventReceiver( JNIEnv* env, jobject receiverWeak, const std::shared_ptr<InputChannel>& inputChannel, const sp<MessageQueue>& messageQueue) : mReceiverWeakGlobal(env->NewGlobalRef(receiverWeak)), mInputConsumer(inputChannel), mMessageQueue(messageQueue), mBatchedInputEventPending(false), mFdEvents(0) { if (kDebugDispatchCycle) { ALOGD("channel '%s' ~ Initializing input event receiver.", getInputChannelName().c_str()); } Loading Loading @@ -356,8 +357,8 @@ status_t NativeInputEventReceiver::consumeEvents(JNIEnv* env, static jlong nativeInit(JNIEnv* env, jclass clazz, jobject receiverWeak, jobject inputChannelObj, jobject messageQueueObj) { sp<InputChannel> inputChannel = android_view_InputChannel_getInputChannel(env, inputChannelObj); std::shared_ptr<InputChannel> inputChannel = android_view_InputChannel_getInputChannel(env, inputChannelObj); if (inputChannel == nullptr) { jniThrowRuntimeException(env, "InputChannel is not initialized."); return 0; Loading
core/jni/android_view_InputEventSender.cpp +11 −11 Original line number Diff line number Diff line Loading @@ -48,8 +48,8 @@ static struct { class NativeInputEventSender : public LooperCallback { public: NativeInputEventSender(JNIEnv* env, jobject senderWeak, const sp<InputChannel>& inputChannel, NativeInputEventSender(JNIEnv* env, jobject senderWeak, const std::shared_ptr<InputChannel>& inputChannel, const sp<MessageQueue>& messageQueue); status_t initialize(); Loading @@ -76,12 +76,12 @@ private: status_t receiveFinishedSignals(JNIEnv* env); }; NativeInputEventSender::NativeInputEventSender(JNIEnv* env, jobject senderWeak, const sp<InputChannel>& inputChannel, const sp<MessageQueue>& messageQueue) : mSenderWeakGlobal(env->NewGlobalRef(senderWeak)), mInputPublisher(inputChannel), mMessageQueue(messageQueue), NativeInputEventSender::NativeInputEventSender(JNIEnv* env, jobject senderWeak, const std::shared_ptr<InputChannel>& inputChannel, const sp<MessageQueue>& messageQueue) : mSenderWeakGlobal(env->NewGlobalRef(senderWeak)), mInputPublisher(inputChannel), mMessageQueue(messageQueue), mNextPublishedSeq(1) { if (kDebugDispatchCycle) { ALOGD("channel '%s' ~ Initializing input event sender.", getInputChannelName().c_str()); Loading Loading @@ -249,8 +249,8 @@ status_t NativeInputEventSender::receiveFinishedSignals(JNIEnv* env) { static jlong nativeInit(JNIEnv* env, jclass clazz, jobject senderWeak, jobject inputChannelObj, jobject messageQueueObj) { sp<InputChannel> inputChannel = android_view_InputChannel_getInputChannel(env, inputChannelObj); std::shared_ptr<InputChannel> inputChannel = android_view_InputChannel_getInputChannel(env, inputChannelObj); if (inputChannel == NULL) { jniThrowRuntimeException(env, "InputChannel is not initialized."); return 0; Loading
services/core/jni/com_android_server_input_InputManagerService.cpp +20 −18 Original line number Diff line number Diff line Loading @@ -200,10 +200,10 @@ public: void setDisplayViewports(JNIEnv* env, jobjectArray viewportObjArray); status_t registerInputChannel(JNIEnv* env, const sp<InputChannel>& inputChannel); status_t registerInputMonitor(JNIEnv* env, const sp<InputChannel>& inputChannel, status_t registerInputChannel(JNIEnv* env, const std::shared_ptr<InputChannel>& inputChannel); status_t registerInputMonitor(JNIEnv* env, const std::shared_ptr<InputChannel>& inputChannel, int32_t displayId, bool isGestureMonitor); status_t unregisterInputChannel(JNIEnv* env, const sp<InputChannel>& inputChannel); status_t unregisterInputChannel(JNIEnv* env, const InputChannel& inputChannel); status_t pilferPointers(const sp<IBinder>& token); void displayRemoved(JNIEnv* env, int32_t displayId); Loading Loading @@ -421,21 +421,22 @@ void NativeInputManager::setDisplayViewports(JNIEnv* env, jobjectArray viewportO InputReaderConfiguration::CHANGE_DISPLAY_INFO); } status_t NativeInputManager::registerInputChannel(JNIEnv* /* env */, const sp<InputChannel>& inputChannel) { status_t NativeInputManager::registerInputChannel( JNIEnv* /* env */, const std::shared_ptr<InputChannel>& inputChannel) { ATRACE_CALL(); return mInputManager->getDispatcher()->registerInputChannel(inputChannel); } status_t NativeInputManager::registerInputMonitor(JNIEnv* /* env */, const sp<InputChannel>& inputChannel, int32_t displayId, bool isGestureMonitor) { const std::shared_ptr<InputChannel>& inputChannel, int32_t displayId, bool isGestureMonitor) { ATRACE_CALL(); return mInputManager->getDispatcher()->registerInputMonitor( inputChannel, displayId, isGestureMonitor); } status_t NativeInputManager::unregisterInputChannel(JNIEnv* /* env */, const sp<InputChannel>& inputChannel) { const InputChannel& inputChannel) { ATRACE_CALL(); return mInputManager->getDispatcher()->unregisterInputChannel(inputChannel); } Loading Loading @@ -1338,21 +1339,22 @@ static void throwInputChannelNotInitialized(JNIEnv* env) { "inputChannel is not initialized"); } static void handleInputChannelDisposed(JNIEnv* env, jobject /* inputChannelObj */, const sp<InputChannel>& inputChannel, void* data) { static void handleInputChannelDisposed(JNIEnv* env, jobject /* inputChannelObj */, const std::shared_ptr<InputChannel>& inputChannel, void* data) { NativeInputManager* im = static_cast<NativeInputManager*>(data); ALOGW("Input channel object '%s' was disposed without first being unregistered with " "the input manager!", inputChannel->getName().c_str()); im->unregisterInputChannel(env, inputChannel); im->unregisterInputChannel(env, *inputChannel); } static void nativeRegisterInputChannel(JNIEnv* env, jclass /* clazz */, jlong ptr, jobject inputChannelObj) { NativeInputManager* im = reinterpret_cast<NativeInputManager*>(ptr); sp<InputChannel> inputChannel = android_view_InputChannel_getInputChannel(env, inputChannelObj); std::shared_ptr<InputChannel> inputChannel = android_view_InputChannel_getInputChannel(env, inputChannelObj); if (inputChannel == nullptr) { throwInputChannelNotInitialized(env); return; Loading @@ -1375,8 +1377,8 @@ static void nativeRegisterInputMonitor(JNIEnv* env, jclass /* clazz */, jlong ptr, jobject inputChannelObj, jint displayId, jboolean isGestureMonitor) { NativeInputManager* im = reinterpret_cast<NativeInputManager*>(ptr); sp<InputChannel> inputChannel = android_view_InputChannel_getInputChannel(env, inputChannelObj); std::shared_ptr<InputChannel> inputChannel = android_view_InputChannel_getInputChannel(env, inputChannelObj); if (inputChannel == nullptr) { throwInputChannelNotInitialized(env); return; Loading @@ -1401,8 +1403,8 @@ static void nativeUnregisterInputChannel(JNIEnv* env, jclass /* clazz */, jlong ptr, jobject inputChannelObj) { NativeInputManager* im = reinterpret_cast<NativeInputManager*>(ptr); sp<InputChannel> inputChannel = android_view_InputChannel_getInputChannel(env, inputChannelObj); std::shared_ptr<InputChannel> inputChannel = android_view_InputChannel_getInputChannel(env, inputChannelObj); if (inputChannel == nullptr) { throwInputChannelNotInitialized(env); return; Loading @@ -1410,7 +1412,7 @@ static void nativeUnregisterInputChannel(JNIEnv* env, jclass /* clazz */, android_view_InputChannel_setDisposeCallback(env, inputChannelObj, nullptr, nullptr); status_t status = im->unregisterInputChannel(env, inputChannel); status_t status = im->unregisterInputChannel(env, *inputChannel); if (status && status != BAD_VALUE) { // ignore already unregistered channel std::string message; message += StringPrintf("Failed to unregister input channel. status=%d", status); Loading