1/* 2 * Copyright (c) 2024 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15#include "native_inputmethod_utils.h" 16#include <map> 17 18#include "global.h" 19using namespace OHOS::MiscServices; 20static const std::map<int32_t, InputMethod_ErrorCode> ERROR_CODE_MAP = { 21 { ErrorCode::NO_ERROR, IME_ERR_OK }, 22 { ErrorCode::ERROR_CONTROLLER_INVOKING_FAILED, IME_ERR_CONTROLLER }, 23 { ErrorCode::ERROR_REMOTE_CLIENT_DIED, IME_ERR_IMCLIENT }, 24 { ErrorCode::ERROR_CLIENT_NOT_FOUND, IME_ERR_IMCLIENT }, 25 { ErrorCode::ERROR_CLIENT_NULL_POINTER, IME_ERR_IMCLIENT }, 26 { ErrorCode::ERROR_CLIENT_NOT_FOCUSED, IME_ERR_IMCLIENT }, 27 { ErrorCode::ERROR_CLIENT_NOT_EDITABLE, IME_ERR_IMCLIENT }, 28 { ErrorCode::ERROR_CLIENT_NOT_BOUND, IME_ERR_DETACHED }, 29 { ErrorCode::ERROR_CLIENT_ADD_FAILED, IME_ERR_IMCLIENT }, 30 { ErrorCode::ERROR_NULL_POINTER, IME_ERR_IMMS }, 31 { ErrorCode::ERROR_BAD_PARAMETERS, IME_ERR_IMMS }, 32 { ErrorCode::ERROR_SERVICE_START_FAILED, IME_ERR_IMMS }, 33 { ErrorCode::ERROR_IME_START_FAILED, IME_ERR_IMMS }, 34 { ErrorCode::ERROR_KBD_SHOW_FAILED, IME_ERR_IMMS }, 35 { ErrorCode::ERROR_KBD_HIDE_FAILED, IME_ERR_IMMS }, 36 { ErrorCode::ERROR_IME_NOT_STARTED, IME_ERR_IMMS }, 37 { ErrorCode::ERROR_EX_NULL_POINTER, IME_ERR_IMMS }, 38 { ErrorCode::ERROR_PACKAGE_MANAGER, IME_ERR_PACKAGEMANAGER }, 39 { ErrorCode::ERROR_EX_UNSUPPORTED_OPERATION, IME_ERR_IMMS }, 40 { ErrorCode::ERROR_EX_SERVICE_SPECIFIC, IME_ERR_IMMS }, 41 { ErrorCode::ERROR_EX_PARCELABLE, IME_ERR_IMMS }, 42 { ErrorCode::ERROR_EX_ILLEGAL_ARGUMENT, IME_ERR_IMMS }, 43 { ErrorCode::ERROR_EX_ILLEGAL_STATE, IME_ERR_IMMS }, 44 { ErrorCode::ERROR_IME_START_INPUT_FAILED, IME_ERR_IMMS }, 45 { ErrorCode::ERROR_IME, IME_ERR_IMENGINE }, 46 { ErrorCode::ERROR_PARAMETER_CHECK_FAILED, IME_ERR_PARAMCHECK }, 47 { ErrorCode::ERROR_ENABLE_IME, IME_ERR_IMMS }, 48 { ErrorCode::ERROR_NOT_CURRENT_IME, IME_ERR_IMMS }, 49 { ErrorCode::ERROR_GET_TEXT_CONFIG, IME_ERR_IMCLIENT }, 50 { ErrorCode::ERROR_INVALID_PRIVATE_COMMAND_SIZE, IME_ERR_PARAMCHECK }, 51 { ErrorCode::ERROR_TEXT_LISTENER_ERROR, IME_ERR_IMCLIENT }, 52 { ErrorCode::ERROR_INVALID_RANGE, IME_ERR_PARAMCHECK }, 53}; 54 55InputMethod_ErrorCode ErrorCodeConvert(int32_t code) 56{ 57 IMSA_HILOGD("Convert start."); 58 auto iter = ERROR_CODE_MAP.find(code); 59 if (iter != ERROR_CODE_MAP.end()) { 60 IMSA_HILOGE("ErrorCode: %{public}d", iter->second); 61 return iter->second; 62 } 63 IMSA_HILOGD("Convert end."); 64 return IME_ERR_UNDEFINED; 65}