diff --git a/frameworks/native/inputmethod_ability/src/input_method_ability.cpp b/frameworks/native/inputmethod_ability/src/input_method_ability.cpp index b7db884dbfe12b341c0c7f69719bc703c5265100..167d3ac9b29b0cb6635f99cc7f10f7b0b85c624c 100644 --- a/frameworks/native/inputmethod_ability/src/input_method_ability.cpp +++ b/frameworks/native/inputmethod_ability/src/input_method_ability.cpp @@ -315,9 +315,17 @@ bool InputMethodAbility::IsDisplayChanged(uint64_t oldDisplayId, uint64_t newDis return false; } bool ret = false; - proxy->IsDefaultImeScreen(oldDisplayId, ret); + int32_t result = proxy->IsDefaultImeScreen(oldDisplayId, ret); + if (result != ErrorCode::NO_ERROR) { + IMSA_HILOGE("failed to get oldDisplay info , result is %{public}d!", result); + return false; + } if (!ret) { - proxy->IsDefaultImeScreen(newDisplayId, ret); + result = proxy->IsDefaultImeScreen(newDisplayId, ret); + if (result != ErrorCode::NO_ERROR) { + IMSA_HILOGE("failed to get newDisplay info , result is %{public}d!", result); + return false; + } } return ret; } diff --git a/services/include/ime_info_inquirer.h b/services/include/ime_info_inquirer.h index 9fb807384664a81eac5799d94d11c9b20e0fb088..2c8e0aa76bc9ddbe6ffd419113bc8410c4a27a5a 100644 --- a/services/include/ime_info_inquirer.h +++ b/services/include/ime_info_inquirer.h @@ -102,7 +102,7 @@ public: bool IsDefaultImeSet(int32_t userId); bool IsImeInstalled(const int32_t userId, const std::string &bundleName, const std::string &extName); bool IsInputMethodExtension(pid_t pid); - bool IsDefaultImeScreen(std::string screenName); + bool IsDefaultImeScreen(const std::string &screenName); private: ImeInfoInquirer() = default; diff --git a/services/src/ime_info_inquirer.cpp b/services/src/ime_info_inquirer.cpp index ca903adfb3655a5758dfd0cc3cd8d777266fdc52..da9d643ba64cfaaecb7f357ea7a43d813498b266 100644 --- a/services/src/ime_info_inquirer.cpp +++ b/services/src/ime_info_inquirer.cpp @@ -1231,7 +1231,7 @@ bool ImeInfoInquirer::IsInputMethodExtension(pid_t pid) return info.extensionType_ == ExtensionAbilityType::INPUTMETHOD; } -bool ImeInfoInquirer::IsDefaultImeScreen(std::string screenName) +bool ImeInfoInquirer::IsDefaultImeScreen(const std::string &screenName) { return systemConfig_.defaultImeScreenList.find(screenName) != systemConfig_.defaultImeScreenList.end(); } diff --git a/services/src/input_method_system_ability.cpp b/services/src/input_method_system_ability.cpp index fe93c09648fe25966bbc9a2fadd88451511687f2..779446f4faa057b975261547d77a19f336c374ed 100644 --- a/services/src/input_method_system_ability.cpp +++ b/services/src/input_method_system_ability.cpp @@ -755,7 +755,7 @@ bool InputMethodSystemAbility::IsDefaultImeScreen(uint64_t displayId) ErrCode InputMethodSystemAbility::IsDefaultImeScreen(uint64_t displayId, bool &resultValue) { resultValue = IsDefaultImeScreen(displayId); - return ERR_OK; + return ErrorCode::NO_ERROR; } int32_t InputMethodSystemAbility::ShowInputInner(sptr client, int32_t requestKeyboardReason)