From 860f10ce1f48d0747324f3ecf3d0e75315aac55f Mon Sep 17 00:00:00 2001 From: hwzhangchuang Date: Fri, 1 Dec 2023 09:12:21 +0800 Subject: [PATCH] reset key state for relay stop Signed-off-by: hwzhangchuang --- .../include/distributed_input_source_transport.h | 1 + .../src/distributed_input_source_transport.cpp | 15 +++++++++++++-- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/services/source/transport/include/distributed_input_source_transport.h b/services/source/transport/include/distributed_input_source_transport.h index 4634938..6441f19 100644 --- a/services/source/transport/include/distributed_input_source_transport.h +++ b/services/source/transport/include/distributed_input_source_transport.h @@ -136,6 +136,7 @@ private: void CalculateLatency(int32_t sessionId, const nlohmann::json &recMsg); std::string JointDhIds(const std::vector &dhids); + std::vector SplitDhIdString(const std::string &dhIdsString); void RegRespFunMap(); void ResetKeyboardKeyState(const std::vector &dhids); diff --git a/services/source/transport/src/distributed_input_source_transport.cpp b/services/source/transport/src/distributed_input_source_transport.cpp index 63ac55c..5bd4c31 100644 --- a/services/source/transport/src/distributed_input_source_transport.cpp +++ b/services/source/transport/src/distributed_input_source_transport.cpp @@ -39,7 +39,9 @@ namespace OHOS { namespace DistributedHardware { namespace DistributedInput { - +namespace { + const char DHID_SPLIT = '.'; +} DistributedInputSourceTransport::~DistributedInputSourceTransport() { DHLOGI("Dtor DistributedInputSourceTransport"); @@ -323,6 +325,8 @@ int32_t DistributedInputSourceTransport::StopRemoteInputDhids(int32_t srcTsrcSeI return ERR_DH_INPUT_SERVER_SOURCE_TRANSPORT_STOP_FAIL; } DHLOGI("StopRemoteInputDhids srcTsrcSeId:%d, sinkSessionId:%d.", srcTsrcSeId, sinkSessionId); + std::vector dhIdsVec = SplitDhIdString(dhids); + ResetKeyboardKeyState(dhIdsVec); nlohmann::json jsonStr; jsonStr[DINPUT_SOFTBUS_KEY_CMD_TYPE] = TRANS_SOURCE_MSG_STOP_DHID_FOR_REL; @@ -897,10 +901,17 @@ std::string DistributedInputSourceTransport::JointDhIds(const std::vector DistributedInputSourceTransport::SplitDhIdString(const std::string &dhIdsString) +{ + std::vector dhIdsVec; + SplitStringToVector(dhIdsString, DHID_SPLIT, dhIdsVec); + return dhIdsVec; +} + int32_t DistributedInputSourceTransport::SendMessage(int32_t sessionId, std::string &message) { return DistributedInputTransportBase::GetInstance().SendMsg(sessionId, message); -- Gitee