From 2975f66c8b83caa66f95e8d60983a71996232f56 Mon Sep 17 00:00:00 2001 From: mayunteng_1 Date: Thu, 18 Aug 2022 09:03:08 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B0=86filter=E7=BB=9F=E4=B8=80=E6=94=BE?= =?UTF-8?q?=E5=88=B0ServerMsgHandler=E7=B1=BB=E5=AE=9E=E7=8E=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: mayunteng_1 Change-Id: I22109af084cd96374775c6d505c57bee7ad0f0e1 --- service/event_handler/include/input_event_handler.h | 2 +- service/event_handler/src/input_event_handler.cpp | 8 ++------ .../src/input_event_normalize_handler.cpp | 4 ++-- service/message_handle/include/server_msg_handler.h | 4 ++++ service/message_handle/src/server_msg_handler.cpp | 10 ++++++++++ service/module_loader/src/mmi_service.cpp | 4 ++-- 6 files changed, 21 insertions(+), 11 deletions(-) diff --git a/service/event_handler/include/input_event_handler.h b/service/event_handler/include/input_event_handler.h index 85274a649b..9a6d69a2ec 100644 --- a/service/event_handler/include/input_event_handler.h +++ b/service/event_handler/include/input_event_handler.h @@ -43,12 +43,12 @@ public: void Init(UDSServer& udsServer); void OnEvent(void *event); UDSServer *GetUDSServer() const; - int32_t AddInputEventFilter(sptr filter); std::shared_ptr GetInputEventNormalizeHandler() const; std::shared_ptr GetInterceptorHandler() const; std::shared_ptr GetSubscriberHandler() const; std::shared_ptr GetMonitorHandler() const; + std::shared_ptr GetFilterHandler() const; private: int32_t BuildInputHandlerChain(); diff --git a/service/event_handler/src/input_event_handler.cpp b/service/event_handler/src/input_event_handler.cpp index bc6c9035f2..d7d6ad47ff 100644 --- a/service/event_handler/src/input_event_handler.cpp +++ b/service/event_handler/src/input_event_handler.cpp @@ -145,13 +145,9 @@ std::shared_ptr InputEventHandler::GetMonitorHandler() cons return monitorHandler_; } -#if defined(OHOS_BUILD_ENABLE_POINTER) || defined(OHOS_BUILD_ENABLE_TOUCH) -int32_t InputEventHandler::AddInputEventFilter(sptr filter) +std::shared_ptr InputEventHandler::GetFilterHandler() const { - CHKPR(eventfilterHandler_, ERROR_NULL_POINTER); - eventfilterHandler_->AddInputEventFilter(filter); - return RET_OK; + return eventfilterHandler_; } -#endif // OHOS_BUILD_ENABLE_POINTER || OHOS_BUILD_ENABLE_TOUCH } // namespace MMI } // namespace OHOS \ No newline at end of file diff --git a/service/event_handler/src/input_event_normalize_handler.cpp b/service/event_handler/src/input_event_normalize_handler.cpp index 50da0f4996..089fbc094a 100644 --- a/service/event_handler/src/input_event_normalize_handler.cpp +++ b/service/event_handler/src/input_event_normalize_handler.cpp @@ -220,7 +220,7 @@ int32_t InputEventNormalizeHandler::HandleKeyboardEvent(libinput_event* event) KeyRepeat->SelectAutoRepeat(keyEvent_); MMI_HILOGD("keyCode:%{public}d, action:%{public}d", keyEvent_->GetKeyCode(), keyEvent_->GetKeyAction()); #else - MMI_HILOGW("Keyboard device does not support"); + MMI_HILOGW("Keyboard device does not support"); #endif // OHOS_BUILD_ENABLE_KEYBOARD return RET_OK; } @@ -247,7 +247,7 @@ int32_t InputEventNormalizeHandler::HandleMouseEvent(libinput_event* event) BytraceAdapter::StartBytrace(pointerEvent, BytraceAdapter::TRACE_START); nextHandler_->HandlePointerEvent(pointerEvent); #else - MMI_HILOGW("Pointer device does not support"); + MMI_HILOGW("Pointer device does not support"); #endif // OHOS_BUILD_ENABLE_POINTER return RET_OK; } diff --git a/service/message_handle/include/server_msg_handler.h b/service/message_handle/include/server_msg_handler.h index 1065656c40..65a57df52c 100644 --- a/service/message_handle/include/server_msg_handler.h +++ b/service/message_handle/include/server_msg_handler.h @@ -19,6 +19,7 @@ #include "nocopyable.h" #include "event_dispatch.h" +#include "i_event_filter.h" #include "input_handler_type.h" #include "key_option.h" #include "msg_handler.h" @@ -55,6 +56,9 @@ public: #if defined(OHOS_BUILD_ENABLE_POINTER) || defined(OHOS_BUILD_ENABLE_TOUCH) int32_t OnInjectPointerEvent(const std::shared_ptr pointerEvent); #endif // OHOS_BUILD_ENABLE_POINTER || OHOS_BUILD_ENABLE_TOUCH +#if defined(OHOS_BUILD_ENABLE_POINTER) || defined(OHOS_BUILD_ENABLE_TOUCH) + int32_t AddInputEventFilter(sptr filter); +#endif // OHOS_BUILD_ENABLE_POINTER || OHOS_BUILD_ENABLE_TOUCH protected: int32_t MarkProcessed(SessionPtr sess, NetPacket& pkt); int32_t OnRegisterMsgHandler(SessionPtr sess, NetPacket& pkt); diff --git a/service/message_handle/src/server_msg_handler.cpp b/service/message_handle/src/server_msg_handler.cpp index e4def7005a..fc9b7896cd 100644 --- a/service/message_handle/src/server_msg_handler.cpp +++ b/service/message_handle/src/server_msg_handler.cpp @@ -328,6 +328,16 @@ int32_t ServerMsgHandler::OnUnsubscribeKeyEvent(IUdsServer *server, int32_t pid, } #endif // OHOS_BUILD_ENABLE_KEYBOARD +#if defined(OHOS_BUILD_ENABLE_POINTER) || defined(OHOS_BUILD_ENABLE_TOUCH) +int32_t ServerMsgHandler::AddInputEventFilter(sptr filter) +{ + auto filterHandler = InputHandler->GetFilterHandler(); + CHKPR(filterHandler, ERROR_NULL_POINTER); + filterHandler->AddInputEventFilter(filter); + return RET_OK; +} +#endif // OHOS_BUILD_ENABLE_POINTER || OHOS_BUILD_ENABLE_TOUCH + #ifdef OHOS_BUILD_MMI_DEBUG int32_t ServerMsgHandler::OnBigPacketTest(SessionPtr sess, NetPacket& pkt) { diff --git a/service/module_loader/src/mmi_service.cpp b/service/module_loader/src/mmi_service.cpp index b77a72ef24..1e422856bd 100644 --- a/service/module_loader/src/mmi_service.cpp +++ b/service/module_loader/src/mmi_service.cpp @@ -346,8 +346,8 @@ int32_t MMIService::AddInputEventFilter(sptr filter) CALL_INFO_TRACE; #if defined(OHOS_BUILD_ENABLE_POINTER) || defined(OHOS_BUILD_ENABLE_TOUCH) CHKPR(filter, ERROR_NULL_POINTER); - int32_t ret = delegateTasks_.PostSyncTask(std::bind(&InputEventHandler::AddInputEventFilter, - InputHandler, filter)); + int32_t ret = delegateTasks_.PostSyncTask(std::bind(&ServerMsgHandler::AddInputEventFilter, + &sMsgHandler_, filter)); if (ret != RET_OK) { MMI_HILOGE("Add event filter failed,return %{public}d", ret); return ret; -- Gitee