From 76fe1f0422ef3617acd0c6ec41bd7115704c244d Mon Sep 17 00:00:00 2001 From: ma-shaoyin Date: Fri, 15 Jul 2022 12:09:16 +0800 Subject: [PATCH 1/6] Signed-off-by: ma-shaoyin Changes to be committed: modified: frameworks/inputmethod_ability/src/input_method_ability.cpp --- .../src/input_method_ability.cpp | 94 +++++++++++-------- 1 file changed, 53 insertions(+), 41 deletions(-) diff --git a/frameworks/inputmethod_ability/src/input_method_ability.cpp b/frameworks/inputmethod_ability/src/input_method_ability.cpp index 0d439bd..243df01 100644 --- a/frameworks/inputmethod_ability/src/input_method_ability.cpp +++ b/frameworks/inputmethod_ability/src/input_method_ability.cpp @@ -339,9 +339,11 @@ namespace MiscServices { } imeListener_->OnInputStart(); imeListener_->OnKeyboardStatus(true); - if (inputDataChannel) { - inputDataChannel->SendKeyboardStatus(KEYBOARD_SHOW); + sptr inputDataChannel_ = inputDataChannel; + if (!inputDataChannel_) { + IMSA_HILOGI("InputMethodAbility::ShowInputWindow inputDataChannel_ is nullptr"); } + inputDataChannel_->SendKeyboardStatus(KEYBOARD_SHOW); } void InputMethodAbility::DissmissInputWindow() @@ -352,124 +354,134 @@ namespace MiscServices { return; } imeListener_->OnKeyboardStatus(false); - if (inputDataChannel) { - inputDataChannel->SendKeyboardStatus(KEYBOARD_HIDE); + sptr inputDataChannel_ = inputDataChannel; + if (!inputDataChannel_) { + IMSA_HILOGI("InputMethodAbility::DissmissInputWindow inputDataChannel_ is nullptr"); } + inputDataChannel_->SendKeyboardStatus(KEYBOARD_HIDE); } bool InputMethodAbility::InsertText(const std::string text) { IMSA_HILOGI("InputMethodAbility::InsertText"); - if (!inputDataChannel) { - IMSA_HILOGI("InputMethodAbility::InsertText inputDataChanel is nullptr"); + sptr inputDataChannel_ = inputDataChannel; + if (!inputDataChannel_) { + IMSA_HILOGI("InputMethodAbility::InsertText inputDataChannel_ is nullptr"); return false; } - - return inputDataChannel->InsertText(Utils::to_utf16(text)); + return inputDataChannel_->InsertText(Utils::to_utf16(text)); } void InputMethodAbility::DeleteForward(int32_t length) { IMSA_HILOGI("InputMethodAbility::DeleteForward"); - if (!inputDataChannel) { - IMSA_HILOGI("InputMethodAbility::DeleteForward inputDataChanel is nullptr"); + sptr inputDataChannel_ = inputDataChannel; + if (!inputDataChannel_) { + IMSA_HILOGI("InputMethodAbility::DeleteForward inputDataChanel_ is nullptr"); return; } - inputDataChannel->DeleteForward(length); + inputDataChannel_->DeleteForward(length); } void InputMethodAbility::DeleteBackward(int32_t length) { IMSA_HILOGI("InputMethodAbility::DeleteBackward"); - if (!inputDataChannel) { - IMSA_HILOGI("InputMethodAbility::DeleteBackward inputDataChanel is nullptr"); + sptr inputDataChannel_ = inputDataChannel; + if (!inputDataChannel_) { + IMSA_HILOGI("InputMethodAbility::DeleteBackward inputDataChanel_ is nullptr"); return; } - inputDataChannel->DeleteBackward(length); + inputDataChannel_->DeleteBackward(length); } void InputMethodAbility::SendFunctionKey(int32_t funcKey) { IMSA_HILOGI("InputMethodAbility::SendFunctionKey"); - if (!inputDataChannel) { - IMSA_HILOGI("InputMethodAbility::SendFunctionKey inputDataChanel is nullptr"); + sptr inputDataChannel_ = inputDataChannel; + if (!inputDataChannel_) { + IMSA_HILOGI("InputMethodAbility::SendFunctionKey inputDataChanel_ is nullptr"); return; } - inputDataChannel->SendFunctionKey(funcKey); + inputDataChannel_->SendFunctionKey(funcKey); } void InputMethodAbility::HideKeyboardSelf() { IMSA_HILOGI("InputMethodAbility::HideKeyboardSelf"); + sptr inputControlChannel_ = inputControlChannel; + if(!inputControlChannel_) { + IMSA_HILOGI("InputMethodAbility::HideKeyboardSelf inputControlChannel_ is nullptr"); + return; + } inputControlChannel->hideKeyboardSelf(1); } std::u16string InputMethodAbility::GetTextBeforeCursor(int32_t number) { IMSA_HILOGI("InputMethodAbility::GetTextBeforeCursor"); - - if (!inputDataChannel) { - IMSA_HILOGI("InputMethodAbility::GetTextBeforeCursor inputDataChanel is nullptr"); + sptr inputDataChannel_ = inputDataChannel; + if (!inputDataChannel_) { + IMSA_HILOGI("InputMethodAbility::GetTextBeforeCursor inputDataChanel_ is nullptr"); return u""; } - return inputDataChannel->GetTextBeforeCursor(number); + return inputDataChannel_->GetTextBeforeCursor(number); } std::u16string InputMethodAbility::GetTextAfterCursor(int32_t number) { IMSA_HILOGI("InputMethodAbility::GetTextAfterCursor"); - - if (!inputDataChannel) { - IMSA_HILOGI("InputMethodAbility::GetTextAfterCursor inputDataChanel is nullptr"); + sptr inputDataChannel_ = inputDataChannel; + if (!inputDataChannel_) { + IMSA_HILOGI("InputMethodAbility::GetTextAfterCursor inputDataChanel_ is nullptr"); return u""; } - return inputDataChannel->GetTextAfterCursor(number); + return inputDataChannel_->GetTextAfterCursor(number); } void InputMethodAbility::MoveCursor(int32_t keyCode) { IMSA_HILOGI("InputMethodAbility::MoveCursor"); - - if (!inputDataChannel) { - IMSA_HILOGI("InputMethodAbility::MoveCursor inputDataChanel is nullptr"); + sptr inputDataChannel_ = inputDataChannel; + if (!inputDataChannel_) { + IMSA_HILOGI("InputMethodAbility::MoveCursor inputDataChanel_ is nullptr"); return; } - inputDataChannel->MoveCursor(keyCode); + inputDataChannel_->MoveCursor(keyCode); return; } int32_t InputMethodAbility::GetEnterKeyType() { IMSA_HILOGI("InputMethodAbility::GetEnterKeyType"); - - if (!inputDataChannel) { - IMSA_HILOGI("InputMethodAbility::GetEnterKeyType inputDataChanel is nullptr"); + sptr inputDataChannel_ = inputDataChannel; + if (!inputDataChannel_) { + IMSA_HILOGI("InputMethodAbility::GetEnterKeyType inputDataChanel_ is nullptr"); return 0; } - return inputDataChannel->GetEnterKeyType(); + return inputDataChannel_->GetEnterKeyType(); } int32_t InputMethodAbility::GetInputPattern() { IMSA_HILOGI("InputMethodAbility::GetInputPattern"); - - if (!inputDataChannel) { - IMSA_HILOGI("InputMethodAbility::GetInputPattern inputDataChanel is nullptr"); + sptr inputDataChannel_ = inputDataChannel; + if (!inputDataChannel_) { + IMSA_HILOGI("InputMethodAbility::GetInputPattern inputDataChanel_ is nullptr"); return 0; } - return inputDataChannel->GetInputPattern(); + return inputDataChannel_->GetInputPattern(); } void InputMethodAbility::StopInput() { IMSA_HILOGI("InputMethodAbility::StopInput"); - - if (!inputDataChannel) { - IMSA_HILOGI("InputMethodAbility::StopInput inputDataChanel is nullptr"); + sptr inputDataChannel_ = inputDataChannel; + if (!inputDataChannel_) { + IMSA_HILOGI("InputMethodAbility::StopInput inputDataChanel_ is nullptr"); return; } - inputDataChannel->StopInput(); + inputDataChannel_->StopInput(); } } // namespace MiscServices } // namespace OHOS From 0a33ec66af83f529df3da22aaa0bd1b74fe469c5 Mon Sep 17 00:00:00 2001 From: ma-shaoyin Date: Fri, 15 Jul 2022 12:11:25 +0800 Subject: [PATCH 2/6] Signed-off-by: ma-shaoyin ` Changes to be committed: --- frameworks/inputmethod_ability/src/input_method_ability.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frameworks/inputmethod_ability/src/input_method_ability.cpp b/frameworks/inputmethod_ability/src/input_method_ability.cpp index 243df01..cf06fd5 100644 --- a/frameworks/inputmethod_ability/src/input_method_ability.cpp +++ b/frameworks/inputmethod_ability/src/input_method_ability.cpp @@ -413,7 +413,7 @@ namespace MiscServices { IMSA_HILOGI("InputMethodAbility::HideKeyboardSelf inputControlChannel_ is nullptr"); return; } - inputControlChannel->hideKeyboardSelf(1); + inputControlChannel_->hideKeyboardSelf(1); } std::u16string InputMethodAbility::GetTextBeforeCursor(int32_t number) From 04ee5d6b3116ad156306dc829bb4c8f0df9e1900 Mon Sep 17 00:00:00 2001 From: ma-shaoyin Date: Fri, 15 Jul 2022 14:54:10 +0800 Subject: [PATCH 3/6] Signed-off-by: ma-shaoyin Changes to be committed: --- frameworks/inputmethod_ability/src/input_method_ability.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frameworks/inputmethod_ability/src/input_method_ability.cpp b/frameworks/inputmethod_ability/src/input_method_ability.cpp index cf06fd5..eea5ef4 100644 --- a/frameworks/inputmethod_ability/src/input_method_ability.cpp +++ b/frameworks/inputmethod_ability/src/input_method_ability.cpp @@ -409,7 +409,7 @@ namespace MiscServices { { IMSA_HILOGI("InputMethodAbility::HideKeyboardSelf"); sptr inputControlChannel_ = inputControlChannel; - if(!inputControlChannel_) { + if (!inputControlChannel_) { IMSA_HILOGI("InputMethodAbility::HideKeyboardSelf inputControlChannel_ is nullptr"); return; } From b3d00cc35b3d736386cbf1bdfd075a7966510ea4 Mon Sep 17 00:00:00 2001 From: ma-shaoyin Date: Fri, 15 Jul 2022 18:37:29 +0800 Subject: [PATCH 4/6] Signed-off-by: ma-shaoyin Changes to be committed: --- .../src/input_method_ability.cpp | 133 +++++++++--------- 1 file changed, 68 insertions(+), 65 deletions(-) diff --git a/frameworks/inputmethod_ability/src/input_method_ability.cpp b/frameworks/inputmethod_ability/src/input_method_ability.cpp index eea5ef4..bcef293 100644 --- a/frameworks/inputmethod_ability/src/input_method_ability.cpp +++ b/frameworks/inputmethod_ability/src/input_method_ability.cpp @@ -202,12 +202,12 @@ namespace MiscServices { IMSA_HILOGI("InputMethodAbility::OnInitialInput channelObject is nullptr"); return; } - sptr channelProxy = new InputControlChannelProxy(channelObject); - inputControlChannel = channelProxy; - if (!inputControlChannel) { + sptr channelProxy = new (std::nothrow) InputControlChannelProxy(channelObject); + if (channelProxy == nullptr) { IMSA_HILOGI("InputMethodAbility::OnInitialInput inputControlChannel is nullptr"); return; } + inputControlChannel = channelProxy; } void InputMethodAbility::OnInitInputControlChannel(Message *msg) @@ -219,23 +219,24 @@ namespace MiscServices { IMSA_HILOGI("InputMethodAbility::OnInitInputControlChannel channelObject is nullptr"); return; } - sptr channelProxy = new InputControlChannelProxy(channelObject); - inputControlChannel = channelProxy; - if (!inputControlChannel) { + sptr channelProxy = new (std::nothrow) InputControlChannelProxy(channelObject); + if (channelProxy == nullptr) { IMSA_HILOGI("InputMethodAbility::OnInitInputControlChannel inputControlChannel is nullptr"); + return; } + inputControlChannel = channelProxy; } void InputMethodAbility::OnStartInput(Message *msg) { IMSA_HILOGI("InputMethodAbility::OnStartInput"); MessageParcel *data = msg->msgContent_; - sptr channalProxy = new InputDataChannelProxy(data->ReadRemoteObject()); - inputDataChannel = channalProxy; - if (!inputDataChannel) { + sptr channalProxy = new (std::nothrow) InputDataChannelProxy(data->ReadRemoteObject()); + if (channalProxy == nullptr) { IMSA_HILOGI("InputMethodAbility::OnStartInput inputDataChannel is nullptr"); return; } + inputDataChannel = channalProxy; editorAttribute = data->ReadParcelable(); if (!editorAttribute) { IMSA_HILOGI("InputMethodAbility::OnStartInput editorAttribute is nullptr"); @@ -247,10 +248,10 @@ namespace MiscServices { { IMSA_HILOGI("InputMethodAbility::OnShowKeyboard"); MessageParcel *data = msg->msgContent_; - sptr channalProxy = new InputDataChannelProxy(data->ReadRemoteObject()); - inputDataChannel = channalProxy; - if (!inputDataChannel) { - IMSA_HILOGI("InputMethodAbility::OnShowKeyboard inputDataChannel is nullptr"); + sptr channalProxy = new (std::nothrow) InputDataChannelProxy(data->ReadRemoteObject()); + if (inputDataChannel) { + inputDataChannel = channalProxy; + IMSA_HILOGI("InputMethodAbility::OnShowKeyboard inputDataChannel is not nullptr"); } ShowInputWindow(); } @@ -339,11 +340,12 @@ namespace MiscServices { } imeListener_->OnInputStart(); imeListener_->OnKeyboardStatus(true); - sptr inputDataChannel_ = inputDataChannel; - if (!inputDataChannel_) { - IMSA_HILOGI("InputMethodAbility::ShowInputWindow inputDataChannel_ is nullptr"); + sptr channel = inputDataChannel; + if (channel == nullptr) { + IMSA_HILOGI("InputMethodAbility::ShowInputWindow channel is nullptr"); + return; } - inputDataChannel_->SendKeyboardStatus(KEYBOARD_SHOW); + channel->SendKeyboardStatus(KEYBOARD_SHOW); } void InputMethodAbility::DissmissInputWindow() @@ -354,134 +356,135 @@ namespace MiscServices { return; } imeListener_->OnKeyboardStatus(false); - sptr inputDataChannel_ = inputDataChannel; - if (!inputDataChannel_) { - IMSA_HILOGI("InputMethodAbility::DissmissInputWindow inputDataChannel_ is nullptr"); + sptr channel = inputDataChannel; + if (channel == nullptr) { + IMSA_HILOGI("InputMethodAbility::DissmissInputWindow channel is nullptr"); + return; } - inputDataChannel_->SendKeyboardStatus(KEYBOARD_HIDE); + channel->SendKeyboardStatus(KEYBOARD_HIDE); } bool InputMethodAbility::InsertText(const std::string text) { IMSA_HILOGI("InputMethodAbility::InsertText"); - sptr inputDataChannel_ = inputDataChannel; - if (!inputDataChannel_) { - IMSA_HILOGI("InputMethodAbility::InsertText inputDataChannel_ is nullptr"); + sptr channel = inputDataChannel; + if (channel == nullptr) { + IMSA_HILOGI("InputMethodAbility::InsertText channel is nullptr"); return false; } - return inputDataChannel_->InsertText(Utils::to_utf16(text)); + return channel->InsertText(Utils::to_utf16(text)); } void InputMethodAbility::DeleteForward(int32_t length) { IMSA_HILOGI("InputMethodAbility::DeleteForward"); - sptr inputDataChannel_ = inputDataChannel; - if (!inputDataChannel_) { - IMSA_HILOGI("InputMethodAbility::DeleteForward inputDataChanel_ is nullptr"); + sptr channel = inputDataChannel; + if (channel == nullptr) { + IMSA_HILOGI("InputMethodAbility::DeleteForward channel is nullptr"); return; } - inputDataChannel_->DeleteForward(length); + channel->DeleteForward(length); } void InputMethodAbility::DeleteBackward(int32_t length) { IMSA_HILOGI("InputMethodAbility::DeleteBackward"); - sptr inputDataChannel_ = inputDataChannel; - if (!inputDataChannel_) { - IMSA_HILOGI("InputMethodAbility::DeleteBackward inputDataChanel_ is nullptr"); + sptr channel = inputDataChannel; + if (channel == nullptr) { + IMSA_HILOGI("InputMethodAbility::DeleteBackward channel is nullptr"); return; } - inputDataChannel_->DeleteBackward(length); + channel->DeleteBackward(length); } void InputMethodAbility::SendFunctionKey(int32_t funcKey) { IMSA_HILOGI("InputMethodAbility::SendFunctionKey"); - sptr inputDataChannel_ = inputDataChannel; - if (!inputDataChannel_) { - IMSA_HILOGI("InputMethodAbility::SendFunctionKey inputDataChanel_ is nullptr"); + sptr channel = inputDataChannel; + if (channel == nullptr) { + IMSA_HILOGI("InputMethodAbility::SendFunctionKey channel is nullptr"); return; } - inputDataChannel_->SendFunctionKey(funcKey); + channel->SendFunctionKey(funcKey); } void InputMethodAbility::HideKeyboardSelf() { IMSA_HILOGI("InputMethodAbility::HideKeyboardSelf"); - sptr inputControlChannel_ = inputControlChannel; - if (!inputControlChannel_) { - IMSA_HILOGI("InputMethodAbility::HideKeyboardSelf inputControlChannel_ is nullptr"); + sptr controlChannel = inputControlChannel; + if(controlChannel == nullptr) { + IMSA_HILOGI("InputMethodAbility::HideKeyboardSelf controlChannel is nullptr"); return; } - inputControlChannel_->hideKeyboardSelf(1); + controlChannel->hideKeyboardSelf(1); } std::u16string InputMethodAbility::GetTextBeforeCursor(int32_t number) { IMSA_HILOGI("InputMethodAbility::GetTextBeforeCursor"); - sptr inputDataChannel_ = inputDataChannel; - if (!inputDataChannel_) { - IMSA_HILOGI("InputMethodAbility::GetTextBeforeCursor inputDataChanel_ is nullptr"); + sptr channel = inputDataChannel; + if (channel == nullptr) { + IMSA_HILOGI("InputMethodAbility::GetTextBeforeCursor channel is nullptr"); return u""; } - return inputDataChannel_->GetTextBeforeCursor(number); + return channel->GetTextBeforeCursor(number); } std::u16string InputMethodAbility::GetTextAfterCursor(int32_t number) { IMSA_HILOGI("InputMethodAbility::GetTextAfterCursor"); - sptr inputDataChannel_ = inputDataChannel; - if (!inputDataChannel_) { - IMSA_HILOGI("InputMethodAbility::GetTextAfterCursor inputDataChanel_ is nullptr"); + sptr channel = inputDataChannel; + if (channel == nullptr) { + IMSA_HILOGI("InputMethodAbility::GetTextAfterCursor channel is nullptr"); return u""; } - return inputDataChannel_->GetTextAfterCursor(number); + return channel->GetTextAfterCursor(number); } void InputMethodAbility::MoveCursor(int32_t keyCode) { IMSA_HILOGI("InputMethodAbility::MoveCursor"); - sptr inputDataChannel_ = inputDataChannel; - if (!inputDataChannel_) { - IMSA_HILOGI("InputMethodAbility::MoveCursor inputDataChanel_ is nullptr"); + sptr channel = inputDataChannel; + if (channel == nullptr) { + IMSA_HILOGI("InputMethodAbility::MoveCursor channel is nullptr"); return; } - inputDataChannel_->MoveCursor(keyCode); + channel->MoveCursor(keyCode); return; } int32_t InputMethodAbility::GetEnterKeyType() { IMSA_HILOGI("InputMethodAbility::GetEnterKeyType"); - sptr inputDataChannel_ = inputDataChannel; - if (!inputDataChannel_) { - IMSA_HILOGI("InputMethodAbility::GetEnterKeyType inputDataChanel_ is nullptr"); + sptr channel = inputDataChannel; + if (channel == nullptr) { + IMSA_HILOGI("InputMethodAbility::GetEnterKeyType channel is nullptr"); return 0; } - return inputDataChannel_->GetEnterKeyType(); + return channel->GetEnterKeyType(); } int32_t InputMethodAbility::GetInputPattern() { IMSA_HILOGI("InputMethodAbility::GetInputPattern"); - sptr inputDataChannel_ = inputDataChannel; - if (!inputDataChannel_) { - IMSA_HILOGI("InputMethodAbility::GetInputPattern inputDataChanel_ is nullptr"); + sptr channel = inputDataChannel; + if (channel == nullptr) { + IMSA_HILOGI("InputMethodAbility::GetInputPattern channel is nullptr"); return 0; } - return inputDataChannel_->GetInputPattern(); + return channel->GetInputPattern(); } void InputMethodAbility::StopInput() { IMSA_HILOGI("InputMethodAbility::StopInput"); - sptr inputDataChannel_ = inputDataChannel; - if (!inputDataChannel_) { - IMSA_HILOGI("InputMethodAbility::StopInput inputDataChanel_ is nullptr"); + sptr channel = inputDataChannel; + if (channel == nullptr) { + IMSA_HILOGI("InputMethodAbility::StopInput channel is nullptr"); return; } - inputDataChannel_->StopInput(); + channel->StopInput(); } } // namespace MiscServices } // namespace OHOS From 84bab657752c9938af333cac011191d84f74fa95 Mon Sep 17 00:00:00 2001 From: ma-shaoyin Date: Fri, 15 Jul 2022 19:13:30 +0800 Subject: [PATCH 5/6] Signed-off-by: ma-shaoyin Changes to be committed: --- frameworks/inputmethod_ability/src/input_method_ability.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frameworks/inputmethod_ability/src/input_method_ability.cpp b/frameworks/inputmethod_ability/src/input_method_ability.cpp index bcef293..fb96345 100644 --- a/frameworks/inputmethod_ability/src/input_method_ability.cpp +++ b/frameworks/inputmethod_ability/src/input_method_ability.cpp @@ -412,7 +412,7 @@ namespace MiscServices { { IMSA_HILOGI("InputMethodAbility::HideKeyboardSelf"); sptr controlChannel = inputControlChannel; - if(controlChannel == nullptr) { + if (controlChannel == nullptr) { IMSA_HILOGI("InputMethodAbility::HideKeyboardSelf controlChannel is nullptr"); return; } From edcdd5eb7773dfd3916525a18a8c0de368383d9b Mon Sep 17 00:00:00 2001 From: ma-shaoyin Date: Fri, 15 Jul 2022 22:12:09 +0800 Subject: [PATCH 6/6] Signed-off-by: ma-shaoyin Changes to be committed: --- frameworks/inputmethod_ability/src/input_method_ability.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frameworks/inputmethod_ability/src/input_method_ability.cpp b/frameworks/inputmethod_ability/src/input_method_ability.cpp index fb96345..5003cc1 100644 --- a/frameworks/inputmethod_ability/src/input_method_ability.cpp +++ b/frameworks/inputmethod_ability/src/input_method_ability.cpp @@ -249,7 +249,7 @@ namespace MiscServices { IMSA_HILOGI("InputMethodAbility::OnShowKeyboard"); MessageParcel *data = msg->msgContent_; sptr channalProxy = new (std::nothrow) InputDataChannelProxy(data->ReadRemoteObject()); - if (inputDataChannel) { + if (channalProxy != nullptr) { inputDataChannel = channalProxy; IMSA_HILOGI("InputMethodAbility::OnShowKeyboard inputDataChannel is not nullptr"); }