* Copyright (c) 2024 Huawei Device Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include "native_inputmethod_utils.h"
#include <map>
#include "global.h"
using namespace OHOS::MiscServices;
static const std::map<int32_t, InputMethod_ErrorCode> ERROR_CODE_MAP = {
{ ErrorCode::NO_ERROR, IME_ERR_OK },
{ ErrorCode::ERROR_CONTROLLER_INVOKING_FAILED, IME_ERR_CONTROLLER },
{ ErrorCode::ERROR_REMOTE_CLIENT_DIED, IME_ERR_IMCLIENT },
{ ErrorCode::ERROR_CLIENT_NOT_FOUND, IME_ERR_IMCLIENT },
{ ErrorCode::ERROR_CLIENT_NULL_POINTER, IME_ERR_IMCLIENT },
{ ErrorCode::ERROR_CLIENT_NOT_FOCUSED, IME_ERR_IMCLIENT },
{ ErrorCode::ERROR_CLIENT_NOT_EDITABLE, IME_ERR_EDITABLE },
{ ErrorCode::ERROR_CLIENT_NOT_BOUND, IME_ERR_DETACHED },
{ ErrorCode::ERROR_CLIENT_ADD_FAILED, IME_ERR_IMCLIENT },
{ ErrorCode::ERROR_NULL_POINTER, IME_ERR_IMMS },
{ ErrorCode::ERROR_BAD_PARAMETERS, IME_ERR_IMMS },
{ ErrorCode::ERROR_SERVICE_START_FAILED, IME_ERR_IMMS },
{ ErrorCode::ERROR_KBD_SHOW_FAILED, IME_ERR_IMMS },
{ ErrorCode::ERROR_KBD_HIDE_FAILED, IME_ERR_IMMS },
{ ErrorCode::ERROR_IME_NOT_STARTED, IME_ERR_IMMS },
{ ErrorCode::ERROR_EX_NULL_POINTER, IME_ERR_IMMS },
{ ErrorCode::ERROR_PACKAGE_MANAGER, IME_ERR_PACKAGEMANAGER },
{ ErrorCode::ERROR_EX_UNSUPPORTED_OPERATION, IME_ERR_IMMS },
{ ErrorCode::ERROR_EX_SERVICE_SPECIFIC, IME_ERR_IMMS },
{ ErrorCode::ERROR_EX_PARCELABLE, IME_ERR_IMMS },
{ ErrorCode::ERROR_EX_ILLEGAL_ARGUMENT, IME_ERR_IMMS },
{ ErrorCode::ERROR_EX_ILLEGAL_STATE, IME_ERR_IMMS },
{ ErrorCode::ERROR_IME_START_INPUT_FAILED, IME_ERR_IMMS },
{ ErrorCode::ERROR_IME, IME_ERR_IMENGINE },
{ ErrorCode::ERROR_PARAMETER_CHECK_FAILED, IME_ERR_PARAMCHECK },
{ ErrorCode::ERROR_ENABLE_IME, IME_ERR_IMMS },
{ ErrorCode::ERROR_NOT_CURRENT_IME, IME_ERR_IMMS },
{ ErrorCode::ERROR_GET_TEXT_CONFIG, IME_ERR_IMCLIENT },
{ ErrorCode::ERROR_INVALID_PRIVATE_COMMAND_SIZE, IME_ERR_PARAMCHECK },
{ ErrorCode::ERROR_TEXT_LISTENER_ERROR, IME_ERR_IMCLIENT },
{ ErrorCode::ERROR_INVALID_RANGE, IME_ERR_PARAMCHECK },
{ ErrorCode::ERROR_MSG_HANDLER_NOT_REGIST, IME_ERR_REQUEST_NOT_ACCEPT },
{ ErrorCode::ERROR_SECURITY_MODE_OFF, IME_ERR_BASIC_MODE },
{ ErrorCode::ERROR_INVALID_ARRAY_BUFFER_SIZE, IME_ERR_PARAMCHECK },
{ ErrorCode::ERROR_IMA_CHANNEL_NULLPTR, IME_ERR_IMCLIENT },
{ ErrorCode::ERROR_IPC_REMOTE_NULLPTR, IME_ERR_IMMS },
{ ErrorCode::ERROR_IMA_NULLPTR, IME_ERR_IMMS },
{ ErrorCode::ERROR_IMSA_INPUT_TYPE_NOT_FOUND, IME_ERR_IMMS },
{ ErrorCode::ERROR_IMSA_DEFAULT_IME_NOT_FOUND, IME_ERR_IMMS },
{ ErrorCode::ERROR_IMSA_CLIENT_INPUT_READY_FAILED, IME_ERR_IMMS },
{ ErrorCode::ERROR_IMSA_MALLOC_FAILED, IME_ERR_IMMS },
{ ErrorCode::ERROR_IMSA_NULLPTR, IME_ERR_IMMS },
{ ErrorCode::ERROR_IMSA_USER_SESSION_NOT_FOUND, IME_ERR_IMMS },
{ ErrorCode::ERROR_IMSA_GET_IME_INFO_FAILED, IME_ERR_IMMS },
{ ErrorCode::ERROR_IMSA_IME_TO_START_NULLPTR, IME_ERR_IMMS },
{ ErrorCode::ERROR_IMSA_REBOOT_OLD_IME_NOT_STOP, IME_ERR_IMMS },
{ ErrorCode::ERROR_IMSA_IME_EVENT_CONVERT_FAILED, IME_ERR_IMMS },
{ ErrorCode::ERROR_IMSA_IME_CONNECT_FAILED, IME_ERR_IMMS },
{ ErrorCode::ERROR_IMSA_IME_DISCONNECT_FAILED, IME_ERR_IMMS },
{ ErrorCode::ERROR_IMSA_IME_START_TIMEOUT, IME_ERR_IMMS },
{ ErrorCode::ERROR_IMSA_IME_START_MORE_THAN_EIGHT_SECOND, IME_ERR_IMMS },
{ ErrorCode::ERROR_IMSA_FORCE_STOP_IME_TIMEOUT, IME_ERR_IMMS },
{ ErrorCode::ERROR_IMC_NULLPTR, IME_ERR_IMMS },
{ ErrorCode::ERROR_ACCOUNT_LOCALID_FAILED, IME_ERR_IMMS },
{ ErrorCode::ERROR_IMA_DATA_CHANNEL_ABNORMAL, IME_ERR_IMCLIENT },
};
InputMethod_ErrorCode ErrorCodeConvert(int32_t code)
{
IMSA_HILOGD("Convert start.");
auto iter = ERROR_CODE_MAP.find(code);
if (iter != ERROR_CODE_MAP.end()) {
IMSA_HILOGE("ErrorCode: %{public}d", iter->second);
return iter->second;
}
IMSA_HILOGD("Convert end.");
return IME_ERR_UNDEFINED;
}