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"
19 using namespace OHOS::MiscServices;
20 static 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
ErrorCodeConvert(int32_t code)55 InputMethod_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 }