1 /*
2 * Copyright (c) 2022 Shenzhen Kaihong Digital Industry Development 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 
16 #include "nfc_napi_controller_adapter.h"
17 #include <vector>
18 #include "loghelper.h"
19 #include "nfc_controller.h"
20 #include "nfc_sdk_common.h"
21 #include "nfc_napi_ctrl_utils.h"
22 
23 namespace OHOS {
24 namespace NFC {
25 namespace KITS {
OpenNfc(napi_env env,napi_callback_info info)26 napi_value OpenNfc(napi_env env, napi_callback_info info)
27 {
28     NfcController nfcCtrl = OHOS::NFC::KITS::NfcController::GetInstance();
29     int status = nfcCtrl.TurnOn();
30     napi_value result;
31     napi_get_boolean(env, (status == KITS::ERR_NONE), &result);
32     return result;
33 }
34 
EnableNfc(napi_env env,napi_callback_info info)35 napi_value EnableNfc(napi_env env, napi_callback_info info)
36 {
37     NfcController nfcCtrl = OHOS::NFC::KITS::NfcController::GetInstance();
38     int status = nfcCtrl.TurnOn();
39     CheckNfcStatusCodeAndThrow(env, status, "enableNfc");
40     return CreateUndefined(env);
41 }
42 
CloseNfc(napi_env env,napi_callback_info info)43 napi_value CloseNfc(napi_env env, napi_callback_info info)
44 {
45     NfcController nfcCtrl = OHOS::NFC::KITS::NfcController::GetInstance();
46     int status = nfcCtrl.TurnOff();
47     napi_value result;
48     napi_get_boolean(env, (status == KITS::ERR_NONE), &result);
49     return result;
50 }
51 
DisableNfc(napi_env env,napi_callback_info info)52 napi_value DisableNfc(napi_env env, napi_callback_info info)
53 {
54     NfcController nfcCtrl = OHOS::NFC::KITS::NfcController::GetInstance();
55     int status = nfcCtrl.TurnOff();
56     CheckNfcStatusCodeAndThrow(env, status, "disableNfc");
57     return CreateUndefined(env);
58 }
59 
GetNfcState(napi_env env,napi_callback_info info)60 napi_value GetNfcState(napi_env env, napi_callback_info info)
61 {
62     NfcController nfcCtrl = OHOS::NFC::KITS::NfcController::GetInstance();
63     napi_value result;
64     napi_create_int32(env, nfcCtrl.GetNfcState(), &result);
65     return result;
66 }
67 
IsNfcAvailable(napi_env env,napi_callback_info info)68 napi_value IsNfcAvailable(napi_env env, napi_callback_info info)
69 {
70     NfcController nfcCtrl = OHOS::NFC::KITS::NfcController::GetInstance();
71     napi_value result;
72     napi_get_boolean(env, nfcCtrl.IsNfcAvailable(), &result);
73     return result;
74 }
75 
IsNfcOpen(napi_env env,napi_callback_info info)76 napi_value IsNfcOpen(napi_env env, napi_callback_info info)
77 {
78     NfcController nfcCtrl = OHOS::NFC::KITS::NfcController::GetInstance();
79     bool isOpen = false;
80     int statusCode = nfcCtrl.IsNfcOpen(isOpen);
81     if (statusCode != KITS::ERR_NONE) {
82         ErrorLog("IsNfcOpen, statusCode = %{public}d", statusCode);
83     }
84     napi_value result;
85     napi_get_boolean(env, isOpen, &result);
86     return result;
87 }
88 }  // namespace KITS
89 }  // namespace NFC
90 }  // namespace OHOS
91