1 /*
2 * Copyright (c) 2021 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
16 #include "napi/native_api.h"
17 #include "raw_file_manager.h"
18 #include "raw_file.h"
19 #include "raw_dir.h"
20 #include "hilog/log.h"
21 #include <js_native_api.h>
22 #include <js_native_api_types.h>
23 #include <vector>
24 #include "ohresmgr.h"
25 #include <string>
26 #include <sstream>
27
28 int GLOBAL_RESMGR = 0xDDD;
29 const int SUBLEN = 100;
GetFileList(napi_env env,napi_callback_info info)30 static napi_value GetFileList(napi_env env, napi_callback_info info)
31 {
32 size_t argc = 2;
33 napi_value argv[2] = { nullptr };
34
35 napi_get_cb_info(env, info, &argc, argv, nullptr, nullptr);
36
37 napi_valuetype valueType;
38 napi_typeof(env, argv[0], &valueType);
39 NativeResourceManager *mNativeResMgr = OH_ResourceManager_InitNativeResourceManager(env, argv[0]);
40 size_t strSize;
41 char strBuf[256];
42 napi_get_value_string_utf8(env, argv[1], strBuf, sizeof(strBuf), &strSize);
43 std::string filename(strBuf, strSize);
44 RawDir* rawDir = OH_ResourceManager_OpenRawDir(mNativeResMgr, filename.c_str());
45 int count = OH_ResourceManager_GetRawFileCount(rawDir);
46 std::vector<std::string> tempArray;
47 for(int i = 0; i < count; i++) {
48 std::string rawfilename = OH_ResourceManager_GetRawFileName(rawDir, i);
49 tempArray.emplace_back(rawfilename);
50 }
51
52 napi_value fileList;
53 napi_create_array(env, &fileList);
54 for (size_t i = 0; i < tempArray.size(); i++) {
55 napi_value jsString;
56 napi_create_string_utf8(env, tempArray[i].c_str(), NAPI_AUTO_LENGTH, &jsString);
57 napi_set_element(env, fileList, i, jsString);
58 }
59 OH_ResourceManager_CloseRawDir(rawDir);
60 OH_ResourceManager_ReleaseNativeResourceManager(mNativeResMgr);
61 return fileList;
62 }
63
CreateJsString(napi_env env,char * str)64 napi_value CreateJsString(napi_env env, char *str)
65 {
66 napi_value result;
67 if (napi_create_string_utf8(env, str, NAPI_AUTO_LENGTH, &result) != napi_ok) {
68 return result;
69 }
70 return result;
71 }
72
createJsFileDescriptor(napi_env env,RawFileDescriptor * descriptor)73 napi_value createJsFileDescriptor(napi_env env, RawFileDescriptor *descriptor)
74 {
75 napi_value result;
76 napi_status status = napi_create_object(env, &result);
77 if (status != napi_ok) {
78 return result;
79 }
80
81 napi_value fd;
82 status = napi_create_int32(env, descriptor->fd, &fd);
83 if (status != napi_ok) {
84 return result;
85 }
86 status = napi_set_named_property(env, result, "fd", fd);
87 if (status != napi_ok) {
88 return result;
89 }
90
91 napi_value offset;
92 status = napi_create_int32(env, descriptor->start, &offset);
93 if (status != napi_ok) {
94 return result;
95 }
96 status = napi_set_named_property(env, result, "offset", offset);
97 if (status != napi_ok) {
98 return result;
99 }
100
101 napi_value length;
102 status = napi_create_int32(env, descriptor->length, &length);
103 if (status != napi_ok) {
104 return result;
105 }
106 status = napi_set_named_property(env, result, "length", length);
107 if (status != napi_ok) {
108 return result;
109 }
110 return result;
111 }
112
CreateJsArrayValue(napi_env env,std::unique_ptr<uint8_t[]> & data,long length)113 napi_value CreateJsArrayValue(napi_env env, std::unique_ptr<uint8_t[]> &data, long length)
114 {
115 napi_value buffer;
116 napi_status status = napi_create_external_arraybuffer(env, data.get(), length,
117 [](napi_env env, void *data, void *hint) {
118 delete[] static_cast<char*>(data);
119 }, nullptr, &buffer);
120 if (status != napi_ok) {
121 return nullptr;
122 }
123 napi_value result = nullptr;
124 status = napi_create_typedarray(env, napi_uint8_array, length, buffer, 0, &result);
125 if (status != napi_ok) {
126 return nullptr;
127 }
128 data.release();
129 return result;
130 }
131
GetRawFileContent(napi_env env,napi_callback_info info)132 static napi_value GetRawFileContent(napi_env env, napi_callback_info info)
133 {
134 size_t argc = 2;
135 napi_value argv[2] = { nullptr };
136
137 napi_get_cb_info(env, info, &argc, argv, nullptr, nullptr);
138
139 napi_valuetype valueType;
140 napi_typeof(env, argv[0], &valueType);
141 NativeResourceManager *mNativeResMgr = OH_ResourceManager_InitNativeResourceManager(env, argv[0]);
142 size_t strSize;
143 char strBuf[256];
144 napi_get_value_string_utf8(env, argv[1], strBuf, sizeof(strBuf), &strSize);
145 std::string filename(strBuf, strSize);
146 RawFile *rawFile = OH_ResourceManager_OpenRawFile(mNativeResMgr, filename.c_str());
147 if (rawFile != nullptr) {
148 return nullptr;
149 }
150 long len = OH_ResourceManager_GetRawFileSize(rawFile);
151 std::unique_ptr<uint8_t[]> data = std::make_unique<uint8_t[]>(len);
152
153 long offset = OH_ResourceManager_GetRawFileOffset(rawFile);
154 if(offset == 0){
155 return nullptr;
156 }
157
158 long size = OH_ResourceManager_SeekRawFile(rawFile, 1, 0);
159 if(size == -1){
160 return nullptr;
161 }
162
163 long offset1 = 0;
164 while (OH_ResourceManager_GetRawFileRemainingLength(rawFile) > 0) {
165 OH_ResourceManager_ReadRawFile(rawFile, data.get() + offset1, SUBLEN);
166 offset1 += SUBLEN;
167 }
168
169 OH_ResourceManager_CloseRawFile(rawFile);
170 OH_ResourceManager_ReleaseNativeResourceManager(mNativeResMgr);
171 return CreateJsArrayValue(env, data, len);
172 }
173
GetRawFileContent64(napi_env env,napi_callback_info info)174 static napi_value GetRawFileContent64(napi_env env, napi_callback_info info)
175 {
176 size_t argc = 2;
177 napi_value argv[2] = {nullptr};
178 napi_get_cb_info(env, info, &argc, argv, nullptr, nullptr);
179 napi_valuetype valueType;
180 napi_typeof(env, argv[0], &valueType);
181 NativeResourceManager *mNativeResMgr = OH_ResourceManager_InitNativeResourceManager(env, argv[0]);
182 size_t strSize;
183 char strBuf[256];
184 napi_get_value_string_utf8(env, argv[1], strBuf, sizeof(strBuf), &strSize);
185 std::string filename(strBuf, strSize);
186 RawFile64 *rawFile = OH_ResourceManager_OpenRawFile64(mNativeResMgr, filename.c_str());
187 if (rawFile != nullptr) {
188 return nullptr;
189 }
190 long len = OH_ResourceManager_GetRawFileSize64(rawFile);
191 std::unique_ptr<uint8_t[]> data = std::make_unique<uint8_t[]>(len);
192
193 int64_t offset = OH_ResourceManager_GetRawFileOffset64(rawFile);
194 if (offset == 0) {
195 return nullptr;
196 }
197
198 int size = OH_ResourceManager_SeekRawFile64(rawFile, 1, 0);
199 if (size == -1) {
200 return nullptr;
201 }
202
203 int64_t offset1 = 0;
204 while (OH_ResourceManager_GetRawFileRemainingLength64(rawFile) > 0) {
205 OH_ResourceManager_ReadRawFile64(rawFile, data.get() + offset1, SUBLEN);
206 offset1 += SUBLEN;
207 }
208
209 OH_ResourceManager_CloseRawFile64(rawFile);
210 OH_ResourceManager_ReleaseNativeResourceManager(mNativeResMgr);
211 return CreateJsArrayValue(env, data, len);
212 }
213
createJsFileDescriptor(napi_env env,RawFileDescriptor & descriptor)214 napi_value createJsFileDescriptor(napi_env env, RawFileDescriptor &descriptor)
215 {
216 napi_value result;
217 napi_status status = napi_create_object(env, &result);
218 if (status != napi_ok) {
219 return result;
220 }
221
222 napi_value fd;
223 status = napi_create_int32(env, descriptor.fd, &fd);
224 if (status != napi_ok) {
225 return result;
226 }
227 status = napi_set_named_property(env, result, "fd", fd);
228 if (status != napi_ok) {
229 return result;
230 }
231
232 napi_value offset;
233 status = napi_create_int64(env, descriptor.start, &offset);
234 if (status != napi_ok) {
235 return result;
236 }
237 status = napi_set_named_property(env, result, "offset", offset);
238 if (status != napi_ok) {
239 return result;
240 }
241
242 napi_value length;
243 status = napi_create_int64(env, descriptor.length, &length);
244 if (status != napi_ok) {
245 return result;
246 }
247 status = napi_set_named_property(env, result, "length", length);
248 if (status != napi_ok) {
249 return result;
250 }
251 return result;
252 }
253
createJsFileDescriptor64(napi_env env,RawFileDescriptor64 * descriptor)254 napi_value createJsFileDescriptor64(napi_env env, RawFileDescriptor64 *descriptor)
255 {
256 napi_value result;
257 napi_status status = napi_create_object(env, &result);
258 if (status != napi_ok) {
259 return result;
260 }
261
262 napi_value fd;
263 status = napi_create_int32(env, descriptor->fd, &fd);
264 if (status != napi_ok) {
265 return result;
266 }
267 status = napi_set_named_property(env, result, "fd", fd);
268 if (status != napi_ok) {
269 return result;
270 }
271
272 napi_value offset;
273 status = napi_create_int64(env, descriptor->start, &offset);
274 if (status != napi_ok) {
275 return result;
276 }
277 status = napi_set_named_property(env, result, "offset", offset);
278 if (status != napi_ok) {
279 return result;
280 }
281
282 napi_value length;
283 status = napi_create_int64(env, descriptor->length, &length);
284 if (status != napi_ok) {
285 return result;
286 }
287 return result;
288 }
289
GetRawFileDescriptor(napi_env env,napi_callback_info info)290 static napi_value GetRawFileDescriptor(napi_env env, napi_callback_info info)
291 {
292 size_t argc = 2;
293 napi_value argv[2] = { nullptr };
294
295 napi_get_cb_info(env, info, &argc, argv, nullptr, nullptr);
296
297 napi_valuetype valueType;
298 napi_typeof(env, argv[0], &valueType);
299 NativeResourceManager *mNativeResMgr = OH_ResourceManager_InitNativeResourceManager(env, argv[0]);
300 size_t strSize;
301 char strBuf[256];
302 napi_get_value_string_utf8(env, argv[1], strBuf, sizeof(strBuf), &strSize);
303 std::string filename(strBuf, strSize);
304 RawFile *rawFile = OH_ResourceManager_OpenRawFile(mNativeResMgr, filename.c_str());
305 if (rawFile != nullptr) {
306 return nullptr;
307 }
308 RawFileDescriptor descriptor;
309 OH_ResourceManager_GetRawFileDescriptor(rawFile, descriptor);
310 OH_ResourceManager_ReleaseRawFileDescriptor(descriptor);
311
312 OH_ResourceManager_CloseRawFile(rawFile);
313 OH_ResourceManager_ReleaseNativeResourceManager(mNativeResMgr);
314 return createJsFileDescriptor(env, descriptor);
315 }
316
GetRawFileDescriptor64(napi_env env,napi_callback_info info)317 static napi_value GetRawFileDescriptor64(napi_env env, napi_callback_info info)
318 {
319 size_t argc = 2;
320 napi_value argv[2] = {nullptr};
321
322 napi_get_cb_info(env, info, &argc, argv, nullptr, nullptr);
323
324 napi_valuetype valueType;
325 napi_typeof(env, argv[0], &valueType);
326 NativeResourceManager *mNativeResMgr = OH_ResourceManager_InitNativeResourceManager(env, argv[0]);
327 size_t strSize;
328 char strBuf[256];
329 napi_get_value_string_utf8(env, argv[1], strBuf, sizeof(strBuf), &strSize);
330 std::string filename(strBuf, strSize);
331 RawFile64 *rawFile = OH_ResourceManager_OpenRawFile64(mNativeResMgr, filename.c_str());
332 if (rawFile != nullptr) {
333 return nullptr;
334 }
335 RawFileDescriptor64 *descriptor = new RawFileDescriptor64();
336 OH_ResourceManager_GetRawFileDescriptor64(rawFile, descriptor);
337 OH_ResourceManager_ReleaseRawFileDescriptor64(descriptor);
338
339 OH_ResourceManager_CloseRawFile64(rawFile);
340 OH_ResourceManager_ReleaseNativeResourceManager(mNativeResMgr);
341 return createJsFileDescriptor64(env, descriptor);
342 }
343
IsRawDir(napi_env env,napi_callback_info info)344 static napi_value IsRawDir(napi_env env, napi_callback_info info)
345 {
346 size_t argc = 2;
347 napi_value argv[2] = {nullptr};
348 napi_get_cb_info(env, info, &argc, argv, nullptr, nullptr);
349 size_t strSize;
350 char strBuf[256];
351 napi_get_value_string_utf8(env, argv[1], strBuf, sizeof(strBuf), &strSize);
352 std::string filename(strBuf, strSize);
353 NativeResourceManager *mNativeResMgr = OH_ResourceManager_InitNativeResourceManager(env, argv[0]);
354 bool result = OH_ResourceManager_IsRawDir(mNativeResMgr, filename.c_str());
355 bool flag = (result == false);
356 napi_value value = nullptr;
357 napi_get_boolean(env, flag, &value);
358 return value;
359 }
360
GetDrawableDescriptor(napi_env env,napi_callback_info info)361 static napi_value GetDrawableDescriptor(napi_env env, napi_callback_info info)
362 {
363 size_t argc = 2;
364 napi_value args[2] = {nullptr};
365 napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
366 ArkUI_DrawableDescriptor *drawable = nullptr;
367 NativeResourceManager *mNativeResMgr = OH_ResourceManager_InitNativeResourceManager(env, args[0]);
368 uint32_t id = 0;
369 napi_get_value_uint32(env, args[1], &id);
370 OH_ResourceManager_GetDrawableDescriptor(mNativeResMgr, id, &drawable);
371
372 bool flag = (drawable == nullptr);
373 napi_value value = nullptr;
374 napi_get_boolean(env, flag, &value);
375 return value;
376 }
377
GetDrawableDescriptorByName(napi_env env,napi_callback_info info)378 static napi_value GetDrawableDescriptorByName(napi_env env, napi_callback_info info)
379 {
380 size_t argc = 2;
381 napi_value args[2] = {nullptr};
382 napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
383 ArkUI_DrawableDescriptor *drawable = nullptr;
384 NativeResourceManager *mNativeResMgr = OH_ResourceManager_InitNativeResourceManager(env, args[0]);
385 OH_ResourceManager_GetDrawableDescriptorByName(mNativeResMgr, "icon", &drawable);
386
387 bool flag = (drawable != nullptr);
388 napi_value value = nullptr;
389 napi_get_boolean(env, flag, &value);
390 return value;
391 }
392
GetMediaBase64(napi_env env,napi_callback_info info)393 static napi_value GetMediaBase64(napi_env env, napi_callback_info info)
394 {
395 size_t argc = 2;
396 napi_value argv[2] = {nullptr};
397 napi_get_cb_info(env, info, &argc, argv, nullptr, nullptr);
398
399 uint32_t id = 0;
400 napi_get_value_uint32(env, argv[1], &id);
401
402 char *result = nullptr;
403 uint64_t len = 0;
404 NativeResourceManager *mNativeResMgr = OH_ResourceManager_InitNativeResourceManager(env, argv[0]);
405 OH_ResourceManager_GetMediaBase64(mNativeResMgr, id, &result, &len);
406
407 bool flag = (result != nullptr && len != 0);
408 napi_value value = nullptr;
409 napi_get_boolean(env, flag, &value);
410 return value;
411 }
412
GetMediaBase64ByName(napi_env env,napi_callback_info info)413 static napi_value GetMediaBase64ByName(napi_env env, napi_callback_info info)
414 {
415 size_t argc = 2;
416 napi_value argv[2] = {nullptr};
417 napi_get_cb_info(env, info, &argc, argv, nullptr, nullptr);
418
419 char *result = nullptr;
420 uint64_t len = 0;
421 NativeResourceManager *mNativeResMgr = OH_ResourceManager_InitNativeResourceManager(env, argv[0]);
422 OH_ResourceManager_GetMediaBase64ByName(mNativeResMgr, "icon", &result, &len);
423
424 bool flag = (result != nullptr && len != 0);
425 napi_value value = nullptr;
426 napi_get_boolean(env, flag, &value);
427 return value;
428 }
429
GetMedia(napi_env env,napi_callback_info info)430 static napi_value GetMedia(napi_env env, napi_callback_info info)
431 {
432 size_t argc = 2;
433 napi_value argv[2] = {nullptr};
434 napi_get_cb_info(env, info, &argc, argv, nullptr, nullptr);
435
436 uint32_t id = 0;
437 napi_get_value_uint32(env, argv[1], &id);
438
439 uint8_t *result = nullptr;
440 uint64_t len = 0;
441 NativeResourceManager *mNativeResMgr = OH_ResourceManager_InitNativeResourceManager(env, argv[0]);
442 OH_ResourceManager_GetMedia(mNativeResMgr, id, &result, &len);
443
444 bool flag = (result != nullptr && len != 0);
445 napi_value value = nullptr;
446 napi_get_boolean(env, flag, &value);
447 return value;
448 }
449
GetMediaByName(napi_env env,napi_callback_info info)450 static napi_value GetMediaByName(napi_env env, napi_callback_info info)
451 {
452 size_t argc = 2;
453 napi_value argv[2] = {nullptr};
454 napi_get_cb_info(env, info, &argc, argv, nullptr, nullptr);
455
456 uint8_t *result = nullptr;
457 uint64_t len = 0;
458 NativeResourceManager *mNativeResMgr = OH_ResourceManager_InitNativeResourceManager(env, argv[0]);
459 OH_ResourceManager_GetMediaByName(mNativeResMgr, "icon", &result, &len);
460
461 bool flag = (result != nullptr && len != 0);
462 napi_value value = nullptr;
463 napi_get_boolean(env, flag, &value);
464 return value;
465 }
466
GetSymbolByName(napi_env env,napi_callback_info info)467 static napi_value GetSymbolByName(napi_env env, napi_callback_info info)
468 {
469 size_t argc = 2;
470 napi_value argv[2] = {nullptr};
471 napi_get_cb_info(env, info, &argc, argv, nullptr, nullptr);
472 NativeResourceManager *mNativeResMgr = OH_ResourceManager_InitNativeResourceManager(env, argv[0]);
473 uint32_t result = 0;
474 const char *name = "symbol_test";
475 ResourceManager_ErrorCode code = OH_ResourceManager_GetSymbolByName(mNativeResMgr, name, &result);
476
477 bool flag = (code == 0 && result == 983040);
478 napi_value value = nullptr;
479 napi_get_boolean(env, flag, &value);
480 return value;
481 }
482
GetSymbol(napi_env env,napi_callback_info info)483 static napi_value GetSymbol(napi_env env, napi_callback_info info)
484 {
485 size_t argc = 2;
486 napi_value argv[2] = {nullptr};
487 napi_get_cb_info(env, info, &argc, argv, nullptr, nullptr);
488 uint32_t id = 0;
489 uint32_t result = 0;
490 napi_get_value_uint32(env, argv[1], &id);
491 NativeResourceManager *mNativeResMgr = OH_ResourceManager_InitNativeResourceManager(env, argv[0]);
492 ResourceManager_ErrorCode code = OH_ResourceManager_GetSymbol(mNativeResMgr, id, &result);
493
494 bool flag = (code == 0 && result == 983040);
495 napi_value value = nullptr;
496 napi_get_boolean(env, flag, &value);
497 return value;
498 }
499
GetBoolByName(napi_env env,napi_callback_info info)500 static napi_value GetBoolByName(napi_env env, napi_callback_info info)
501 {
502 size_t argc = 2;
503 napi_value argv[2] = {nullptr};
504 napi_get_cb_info(env, info, &argc, argv, nullptr, nullptr);
505 NativeResourceManager *mNativeResMgr = OH_ResourceManager_InitNativeResourceManager(env, argv[0]);
506 bool result = false;
507 uint32_t id = 0;
508 napi_get_value_uint32(env, argv[1], &id);
509 const char *name = "boolean_1";
510 ResourceManager_ErrorCode code = OH_ResourceManager_GetBoolByName(mNativeResMgr, name, &result);
511
512 bool flag = (code == 0 && result == true);
513 napi_value value = nullptr;
514 napi_get_boolean(env, flag, &value);
515 return value;
516 }
517
GetBool(napi_env env,napi_callback_info info)518 static napi_value GetBool(napi_env env, napi_callback_info info)
519 {
520 size_t argc = 2;
521 napi_value argv[2] = {nullptr};
522 napi_get_cb_info(env, info, &argc, argv, nullptr, nullptr);
523 uint32_t id = 0;
524 bool result = false;
525 napi_get_value_uint32(env, argv[1], &id);
526 NativeResourceManager *mNativeResMgr = OH_ResourceManager_InitNativeResourceManager(env, argv[0]);
527 ResourceManager_ErrorCode code = OH_ResourceManager_GetBool(mNativeResMgr, id, &result);
528
529 bool flag = (code == 0 && result == true);
530 napi_value value = nullptr;
531 napi_get_boolean(env, flag, &value);
532 return value;
533 }
534
GetPluralStringByName(napi_env env,napi_callback_info info)535 static napi_value GetPluralStringByName(napi_env env, napi_callback_info info)
536 {
537 size_t argc = 3;
538 napi_value argv[3] = {nullptr};
539 napi_get_cb_info(env, info, &argc, argv, nullptr, nullptr);
540 NativeResourceManager *mNativeResMgr = OH_ResourceManager_InitNativeResourceManager(env, argv[0]);
541 char *result;
542 uint32_t num = 1;
543 int second = 2;
544 napi_get_value_uint32(env, argv[second], &num);
545 const char *name = "eat_apple";
546 ResourceManager_ErrorCode code = OH_ResourceManager_GetPluralStringByName(mNativeResMgr, name, num, &result);
547
548 bool flag = (code == 0 && strcmp(result, "1 apples") == 0);
549 napi_value value = nullptr;
550 napi_get_boolean(env, flag, &value);
551 return value;
552 }
553
GetPluralString(napi_env env,napi_callback_info info)554 static napi_value GetPluralString(napi_env env, napi_callback_info info)
555 {
556 size_t argc = 3;
557 napi_value argv[3] = {nullptr};
558 napi_get_cb_info(env, info, &argc, argv, nullptr, nullptr);
559 NativeResourceManager *mNativeResMgr = OH_ResourceManager_InitNativeResourceManager(env, argv[0]);
560 char *result;
561 uint32_t resId = 0;
562 napi_get_value_uint32(env, argv[1], &resId);
563 uint32_t num = 0;
564 int second = 2;
565 napi_get_value_uint32(env, argv[second], &num);
566 ResourceManager_ErrorCode code = OH_ResourceManager_GetPluralString(mNativeResMgr, resId, num, &result);
567
568 bool flag = (code == 0 && strcmp(result, "1 apples") == 0);
569 napi_value value = nullptr;
570 napi_get_boolean(env, flag, &value);
571 return value;
572 }
573
GetColorByName(napi_env env,napi_callback_info info)574 static napi_value GetColorByName(napi_env env, napi_callback_info info)
575 {
576 size_t argc = 2;
577 napi_value argv[2] = {nullptr};
578 napi_get_cb_info(env, info, &argc, argv, nullptr, nullptr);
579 NativeResourceManager *mNativeResMgr = OH_ResourceManager_InitNativeResourceManager(env, argv[0]);
580 uint32_t result;
581 const char *name = "start_window_background_jjq";
582 OH_ResourceManager_GetColorByName(mNativeResMgr, name, &result);
583
584 napi_value jsValue = nullptr;
585 napi_create_uint32(env, result, &jsValue);
586 return jsValue;
587 }
588
GetColor(napi_env env,napi_callback_info info)589 static napi_value GetColor(napi_env env, napi_callback_info info)
590 {
591 size_t argc = 2;
592 napi_value argv[2] = {nullptr};
593 napi_get_cb_info(env, info, &argc, argv, nullptr, nullptr);
594 NativeResourceManager *mNativeResMgr = OH_ResourceManager_InitNativeResourceManager(env, argv[0]);
595 uint32_t result;
596 uint32_t resId = 0;
597 napi_get_value_uint32(env, argv[1], &resId);
598 OH_ResourceManager_GetColor(mNativeResMgr, resId, &result);
599
600 napi_value jsValue = nullptr;
601 napi_create_uint32(env, result, &jsValue);
602 return jsValue;
603 }
604
GetIntByName(napi_env env,napi_callback_info info)605 static napi_value GetIntByName(napi_env env, napi_callback_info info)
606 {
607 size_t argc = 2;
608 napi_value argv[2] = {nullptr};
609 napi_get_cb_info(env, info, &argc, argv, nullptr, nullptr);
610 NativeResourceManager *mNativeResMgr = OH_ResourceManager_InitNativeResourceManager(env, argv[0]);
611 int result;
612 const char *name = "integer_1";
613 ResourceManager_ErrorCode code = OH_ResourceManager_GetIntByName(mNativeResMgr, name, &result);
614
615 bool flag = (code == 0 && result == 100);
616 napi_value value = nullptr;
617 napi_get_boolean(env, flag, &value);
618 return value;
619 }
620
GetInt(napi_env env,napi_callback_info info)621 static napi_value GetInt(napi_env env, napi_callback_info info)
622 {
623 size_t argc = 2;
624 napi_value argv[2] = {nullptr};
625 napi_get_cb_info(env, info, &argc, argv, nullptr, nullptr);
626 NativeResourceManager *mNativeResMgr = OH_ResourceManager_InitNativeResourceManager(env, argv[0]);
627 int result;
628 uint32_t resId = 0;
629 napi_get_value_uint32(env, argv[1], &resId);
630 ResourceManager_ErrorCode code = OH_ResourceManager_GetInt(mNativeResMgr, resId, &result);
631
632 bool flag = (code == 0 && result == 100);
633 napi_value value = nullptr;
634 napi_get_boolean(env, flag, &value);
635 return value;
636 }
637
GetFloatByName(napi_env env,napi_callback_info info)638 static napi_value GetFloatByName(napi_env env, napi_callback_info info)
639 {
640 size_t argc = 2;
641 napi_value argv[2] = {nullptr};
642 napi_get_cb_info(env, info, &argc, argv, nullptr, nullptr);
643 NativeResourceManager *mNativeResMgr = OH_ResourceManager_InitNativeResourceManager(env, argv[0]);
644 float result;
645 const char *name = "float_1";
646 ResourceManager_ErrorCode code = OH_ResourceManager_GetFloatByName(mNativeResMgr, name, &result);
647
648 bool flag = (code == 0 && (fabs(result - 30.6) >= 1e-9));
649 napi_value value = nullptr;
650 napi_get_boolean(env, flag, &value);
651 return value;
652 }
653
GetFloat(napi_env env,napi_callback_info info)654 static napi_value GetFloat(napi_env env, napi_callback_info info)
655 {
656 size_t argc = 2;
657 napi_value argv[2] = {nullptr};
658 napi_get_cb_info(env, info, &argc, argv, nullptr, nullptr);
659 NativeResourceManager *mNativeResMgr = OH_ResourceManager_InitNativeResourceManager(env, argv[0]);
660 float result;
661 uint32_t resId = 0;
662 napi_get_value_uint32(env, argv[1], &resId);
663 ResourceManager_ErrorCode code = OH_ResourceManager_GetFloat(mNativeResMgr, resId, &result);
664
665 bool flag = (code == 0 && (fabs(result - 30.6) >= 1e-9));
666 napi_value value = nullptr;
667 napi_get_boolean(env, flag, &value);
668 return value;
669 }
670
GetLocales(napi_env env,napi_callback_info info)671 static napi_value GetLocales(napi_env env, napi_callback_info info)
672 {
673 size_t argc = 3;
674 napi_value argv[3] = {nullptr};
675 napi_get_cb_info(env, info, &argc, argv, nullptr, nullptr);
676 NativeResourceManager *mNativeResMgr = OH_ResourceManager_InitNativeResourceManager(env, argv[0]);
677
678 char **resultValue;
679 uint32_t resultLen;
680 bool includeSystem = false;
681 OH_ResourceManager_GetLocales(mNativeResMgr, &resultValue, &resultLen, includeSystem);
682
683 std::vector<std::string> tempArray;
684 for (uint32_t i = 0; i < resultLen; i++) {
685 tempArray.push_back(resultValue[i]);
686 }
687 napi_value jsStringArray;
688 napi_create_array(env, &jsStringArray);
689 for (size_t i = 0; i < tempArray.size(); i++) {
690 napi_value jsString;
691 napi_create_string_utf8(env, tempArray[i].c_str(), NAPI_AUTO_LENGTH, &jsString);
692 napi_set_element(env, jsStringArray, i, jsString);
693 }
694 return jsStringArray;
695 }
696
GetConfiguration(napi_env env,napi_callback_info info)697 static napi_value GetConfiguration(napi_env env, napi_callback_info info)
698 {
699 size_t argc = 1;
700 napi_value argv[1] = {nullptr};
701 ResourceManager_Configuration config;
702 napi_get_cb_info(env, info, &argc, argv, nullptr, nullptr);
703 NativeResourceManager *mNativeResMgr = OH_ResourceManager_InitNativeResourceManager(env, argv[0]);
704 ResourceManager_ErrorCode code = OH_ResourceManager_GetConfiguration(mNativeResMgr, &config);
705
706 bool flag = (code == 0 && config.direction == 0 && config.deviceType == 0 && config.screenDensity == 3 &&
707 config.colorMode == 1 && config.mcc == 0 && config.mnc == 0 && strcmp(config.locale, "zh_Hans_CN") == 0);
708 napi_value value = nullptr;
709 napi_get_boolean(env, flag, &value);
710 return value;
711 }
712
GetStringArray(napi_env env,napi_callback_info info)713 static napi_value GetStringArray(napi_env env, napi_callback_info info)
714 {
715 size_t argc = 2;
716 napi_value argv[2] = {nullptr};
717 napi_get_cb_info(env, info, &argc, argv, nullptr, nullptr);
718 NativeResourceManager *mNativeResMgr = OH_ResourceManager_InitNativeResourceManager(env, argv[0]);
719 char **resultValue;
720 uint32_t resultLen;
721 uint32_t resId = 0;
722 napi_get_value_uint32(env, argv[1], &resId);
723 OH_ResourceManager_GetStringArray(mNativeResMgr, resId, &resultValue, &resultLen);
724
725 std::vector<std::string> tempArray;
726 for (uint32_t i = 0; i < resultLen; i++) {
727 tempArray.push_back(resultValue[i]);
728 }
729 napi_value jsStringArray;
730 napi_create_array(env, &jsStringArray);
731 for (size_t i = 0; i < tempArray.size(); i++) {
732 napi_value jsString;
733 napi_create_string_utf8(env, tempArray[i].c_str(), NAPI_AUTO_LENGTH, &jsString);
734 napi_set_element(env, jsStringArray, i, jsString);
735 }
736 return jsStringArray;
737 }
738
GetStringArrayByName(napi_env env,napi_callback_info info)739 static napi_value GetStringArrayByName(napi_env env, napi_callback_info info)
740 {
741 size_t argc = 2;
742 napi_value argv[2] = {nullptr};
743 napi_get_cb_info(env, info, &argc, argv, nullptr, nullptr);
744 NativeResourceManager *mNativeResMgr = OH_ResourceManager_InitNativeResourceManager(env, argv[0]);
745 char **resultValue;
746 uint32_t resultLen;
747 const char *name = "size";
748 OH_ResourceManager_GetStringArrayByName(mNativeResMgr, name, &resultValue, &resultLen);
749
750 std::vector<std::string> tempArray;
751 for (uint32_t i = 0; i < resultLen; i++) {
752 tempArray.push_back(resultValue[i]);
753 }
754 napi_value jsStringArray;
755 napi_create_array(env, &jsStringArray);
756 for (size_t i = 0; i < tempArray.size(); i++) {
757 napi_value jsString;
758 napi_create_string_utf8(env, tempArray[i].c_str(), NAPI_AUTO_LENGTH, &jsString);
759 napi_set_element(env, jsStringArray, i, jsString);
760 }
761 return jsStringArray;
762 }
763
ReleaseStringArray(napi_env env,napi_callback_info info)764 static napi_value ReleaseStringArray(napi_env env, napi_callback_info info)
765 {
766 size_t argc = 2;
767 napi_value argv[2] = {nullptr};
768 napi_get_cb_info(env, info, &argc, argv, nullptr, nullptr);
769 NativeResourceManager *mNativeResMgr = OH_ResourceManager_InitNativeResourceManager(env, argv[0]);
770 char **resultValue;
771 char **resultValueTemp = nullptr;
772 uint32_t resultLen;
773 const char *name = "size";
774 ResourceManager_ErrorCode code;
775 OH_ResourceManager_GetStringArrayByName(mNativeResMgr, name, &resultValue, &resultLen);
776 resultValueTemp = resultValue;
777 code = OH_ResourceManager_ReleaseStringArray(&resultValue, resultLen);
778
779 bool flag = (code == 0 && resultValueTemp != nullptr && resultValue == nullptr);
780 napi_value value = nullptr;
781 napi_get_boolean(env, flag, &value);
782 return value;
783 }
784
ReleaseConfiguration(napi_env env,napi_callback_info info)785 static napi_value ReleaseConfiguration(napi_env env, napi_callback_info info)
786 {
787 size_t argc = 1;
788 napi_value argv[1] = {nullptr};
789 ResourceManager_Configuration config;
790 napi_get_cb_info(env, info, &argc, argv, nullptr, nullptr);
791 NativeResourceManager *mNativeResMgr = OH_ResourceManager_InitNativeResourceManager(env, argv[0]);
792 ResourceManager_ErrorCode code;
793 char *temp = static_cast<char *>(malloc(10 * sizeof(char)));
794 OH_ResourceManager_GetConfiguration(mNativeResMgr, &config);
795 code = OH_ResourceManager_ReleaseConfiguration(&config);
796
797 bool flag = (code == 0 && strcmp(temp, "zh_Hans_CN") == 0 && config.locale == nullptr);
798 napi_value value = nullptr;
799 napi_get_boolean(env, flag, &value);
800 return value;
801 }
802
GetStringByName(napi_env env,napi_callback_info info)803 static napi_value GetStringByName(napi_env env, napi_callback_info info)
804 {
805 size_t argc = 2;
806 napi_value argv[2] = {nullptr};
807 napi_get_cb_info(env, info, &argc, argv, nullptr, nullptr);
808 NativeResourceManager *mNativeResMgr = OH_ResourceManager_InitNativeResourceManager(env, argv[0]);
809 char *result;
810 ResourceManager_ErrorCode code = OH_ResourceManager_GetStringByName(mNativeResMgr, "entry_MainAbility", &result);
811
812 bool flag = (code == 0 && strcmp(result, "entry_MainAbility") == 0);
813 napi_value value = nullptr;
814 napi_get_boolean(env, flag, &value);
815 return value;
816 }
817
GetString(napi_env env,napi_callback_info info)818 static napi_value GetString(napi_env env, napi_callback_info info)
819 {
820 size_t argc = 2;
821 napi_value argv[2] = {nullptr};
822 napi_get_cb_info(env, info, &argc, argv, nullptr, nullptr);
823 NativeResourceManager *mNativeResMgr = OH_ResourceManager_InitNativeResourceManager(env, argv[0]);
824 char *result;
825 uint32_t resId = 0;
826 napi_get_value_uint32(env, argv[1], &resId);
827 ResourceManager_ErrorCode code = OH_ResourceManager_GetString(mNativeResMgr, resId, &result);
828
829 bool flag = (code == 0 && strcmp(result, "entry_MainAbility") == 0);
830 napi_value value = nullptr;
831 napi_get_boolean(env, flag, &value);
832 return value;
833 }
834
GetRawFileDescriptorData(napi_env env,napi_callback_info info)835 static napi_value GetRawFileDescriptorData(napi_env env, napi_callback_info info)
836 {
837 size_t argc = 2;
838 napi_value argv[2] = {nullptr};
839 napi_get_cb_info(env, info, &argc, argv, nullptr, nullptr);
840 napi_valuetype valueType;
841 napi_typeof(env, argv[0], &valueType);
842 NativeResourceManager *mNativeResMgr = OH_ResourceManager_InitNativeResourceManager(env, argv[0]);
843 size_t strSize;
844 char strBuf[256];
845
846 napi_get_value_string_utf8(env, argv[1], strBuf, sizeof(strBuf), &strSize);
847 std::string filename(strBuf, strSize);
848 RawFile *rawFile = OH_ResourceManager_OpenRawFile(mNativeResMgr, filename.c_str());
849 RawFileDescriptor *descriptor = new RawFileDescriptor();
850 OH_ResourceManager_GetRawFileDescriptorData(rawFile, descriptor);
851 OH_ResourceManager_ReleaseRawFileDescriptorData(descriptor);
852 OH_ResourceManager_GetRawFileDescriptorData(rawFile, descriptor);
853 OH_ResourceManager_CloseRawFile(rawFile);
854 OH_ResourceManager_ReleaseNativeResourceManager(mNativeResMgr);
855 return createJsFileDescriptor(env, descriptor);
856 }
857
GetLocalesData(napi_env env,napi_callback_info info)858 static napi_value GetLocalesData(napi_env env, napi_callback_info info)
859 {
860 size_t argc = 1;
861 napi_value argv[1] = {nullptr};
862 napi_get_cb_info(env, info, &argc, argv, nullptr, nullptr);
863 NativeResourceManager *mNativeResMgr = OH_ResourceManager_InitNativeResourceManager(env, argv[0]);
864 char **resultValue;
865 uint32_t resultLen;
866 OH_ResourceManager_GetLocalesData(mNativeResMgr, &resultValue, &resultLen, false);
867 char **resultValue1;
868 uint32_t resultLen1;
869 OH_ResourceManager_GetLocalesData(mNativeResMgr, &resultValue1, &resultLen1, false);
870 std::vector<std::string> tempArray;
871 for (uint32_t i = 0; i < resultLen; i++) {
872 tempArray.push_back(resultValue[i]);
873 }
874 napi_value jsStringArray;
875 napi_create_array(env, &jsStringArray);
876 for (size_t i = 0; i < tempArray.size(); i++) {
877 napi_value jsString;
878 napi_create_string_utf8(env, tempArray[i].c_str(), NAPI_AUTO_LENGTH, &jsString);
879 napi_set_element(env, jsStringArray, i, jsString);
880 }
881 return jsStringArray;
882 }
883
GetMediaBase64DataByName(napi_env env,napi_callback_info info)884 static napi_value GetMediaBase64DataByName(napi_env env, napi_callback_info info)
885 {
886 size_t argc = 2;
887 napi_value argv[2] = {nullptr};
888 napi_get_cb_info(env, info, &argc, argv, nullptr, nullptr);
889 size_t strSize;
890 char strBuf[256];
891 napi_get_value_string_utf8(env, argv[1], strBuf, sizeof(strBuf), &strSize);
892 char *result = nullptr;
893 uint64_t len = 0;
894 NativeResourceManager *mNativeResMgr = OH_ResourceManager_InitNativeResourceManager(env, argv[0]);
895 OH_ResourceManager_GetMediaBase64DataByName(mNativeResMgr, strBuf, &result, &len, 0);
896 return CreateJsString(env, result);
897 }
898
GetMediaBase64Data(napi_env env,napi_callback_info info)899 static napi_value GetMediaBase64Data(napi_env env, napi_callback_info info)
900 {
901 size_t argc = 2;
902 napi_value argv[2] = {nullptr};
903 napi_get_cb_info(env, info, &argc, argv, nullptr, nullptr);
904 uint32_t id = 0x000000;
905 napi_get_value_uint32(env, argv[1], &id);
906
907 std::stringstream ss;
908 ss << std::hex << id;
909 uint32_t hexValue;
910 ss >> hexValue;
911
912 char *result = nullptr;
913 uint64_t len = 0;
914 NativeResourceManager *mNativeResMgr = OH_ResourceManager_InitNativeResourceManager(env, argv[0]);
915 OH_ResourceManager_GetMediaBase64Data(mNativeResMgr, hexValue, &result, &len, 0);
916 return CreateJsString(env, result);
917 }
918
GetMediaData(napi_env env,napi_callback_info info)919 static napi_value GetMediaData(napi_env env, napi_callback_info info)
920 {
921 size_t argc = 2;
922 napi_value argv[2] = {nullptr};
923 napi_get_cb_info(env, info, &argc, argv, nullptr, nullptr);
924 uint32_t id = 0;
925 napi_get_value_uint32(env, argv[1], &id);
926
927 uint8_t *result = nullptr;
928 uint64_t len = 0;
929 NativeResourceManager *mNativeResMgr = OH_ResourceManager_InitNativeResourceManager(env, argv[0]);
930 OH_ResourceManager_GetMediaData(mNativeResMgr, id, &result, &len, 0);
931
932 bool flag = (result != nullptr && len != 0);
933 napi_value value = nullptr;
934 napi_get_boolean(env, flag, &value);
935 return value;
936 }
937
GetMediaDataByName(napi_env env,napi_callback_info info)938 static napi_value GetMediaDataByName(napi_env env, napi_callback_info info)
939 {
940 size_t argc = 2;
941 napi_value argv[2] = {nullptr};
942 napi_get_cb_info(env, info, &argc, argv, nullptr, nullptr);
943 size_t strSize;
944 char strBuf[256];
945 napi_get_value_string_utf8(env, argv[1], strBuf, sizeof(strBuf), &strSize);
946
947 uint8_t *result = nullptr;
948 uint64_t len = 0;
949 NativeResourceManager *mNativeResMgr = OH_ResourceManager_InitNativeResourceManager(env, argv[0]);
950 OH_ResourceManager_GetMediaDataByName(mNativeResMgr, strBuf, &result, &len, 0);
951
952 bool flag = (result != nullptr && len != 0);
953 napi_value value = nullptr;
954 napi_get_boolean(env, flag, &value);
955 return value;
956 }
957
GetDrawableDescriptorData(napi_env env,napi_callback_info info)958 static napi_value GetDrawableDescriptorData(napi_env env, napi_callback_info info)
959 {
960 size_t argc = 2;
961 napi_value argv[2] = {nullptr};
962 napi_get_cb_info(env, info, &argc, argv, nullptr, nullptr);
963 ArkUI_DrawableDescriptor *drawable = NULL;
964 NativeResourceManager *mNativeResMgr = OH_ResourceManager_InitNativeResourceManager(env, argv[0]);
965
966 uint32_t id = 0x000000;
967 napi_get_value_uint32(env, argv[1], &id);
968
969 std::stringstream ss;
970 ss << std::hex << id;
971 uint32_t hexValue;
972 ss >> hexValue;
973
974 OH_ResourceManager_GetDrawableDescriptorData(mNativeResMgr, id, &drawable, 0, 0);
975 bool flag = (drawable != NULL);
976 napi_value value = nullptr;
977 napi_get_boolean(env, flag, &value);
978 return value;
979 }
980
GetDrawableDescriptorDataByName(napi_env env,napi_callback_info info)981 static napi_value GetDrawableDescriptorDataByName(napi_env env, napi_callback_info info)
982 {
983 size_t argc = 2;
984 napi_value argv[2] = {nullptr};
985 napi_get_cb_info(env, info, &argc, argv, nullptr, nullptr);
986 size_t strSize;
987 char strBuf[256];
988 napi_get_value_string_utf8(env, argv[1], strBuf, sizeof(strBuf), &strSize);
989 ArkUI_DrawableDescriptor *drawable = NULL;
990 NativeResourceManager *mNativeResMgr = OH_ResourceManager_InitNativeResourceManager(env, argv[0]);
991
992 OH_ResourceManager_GetDrawableDescriptorDataByName(mNativeResMgr, strBuf, &drawable, 0, 0);
993 bool flag = (drawable != NULL);
994 napi_value value = nullptr;
995 napi_get_boolean(env, flag, &value);
996 return value;
997 }
998
AddResource(napi_env env,napi_callback_info info)999 static napi_value AddResource(napi_env env, napi_callback_info info)
1000 {
1001 size_t argc = 2;
1002 napi_value argv[2] = {nullptr};
1003 napi_get_cb_info(env, info, &argc, argv, nullptr, nullptr);
1004 ResourceManager_ErrorCode code = OH_ResourceManager_AddResource(nullptr, "");
1005 bool flag = (code == 401);
1006 napi_value value = nullptr;
1007 napi_get_boolean(env, flag, &value);
1008 return value;
1009 }
1010
RemoveResource(napi_env env,napi_callback_info info)1011 static napi_value RemoveResource(napi_env env, napi_callback_info info)
1012 {
1013 size_t argc = 2;
1014 napi_value argv[2] = {nullptr};
1015 napi_get_cb_info(env, info, &argc, argv, nullptr, nullptr);
1016 ResourceManager_ErrorCode code = OH_ResourceManager_RemoveResource(nullptr, "");
1017 bool flag = (code == 401);
1018 napi_value value = nullptr;
1019 napi_get_boolean(env, flag, &value);
1020 return value;
1021 }
1022
1023 EXTERN_C_START
Init(napi_env env,napi_value exports)1024 static napi_value Init(napi_env env, napi_value exports)
1025 {
1026 napi_property_descriptor desc[] = {
1027 {"GetFileList", nullptr, GetFileList, nullptr, nullptr, nullptr, napi_default, nullptr},
1028 {"GetRawFileContent", nullptr, GetRawFileContent, nullptr, nullptr, nullptr, napi_default, nullptr},
1029 {"GetRawFileDescriptor", nullptr, GetRawFileDescriptor, nullptr, nullptr, nullptr, napi_default, nullptr},
1030 {"GetRawFileContent64", nullptr, GetRawFileContent64, nullptr, nullptr, nullptr, napi_default, nullptr},
1031 {"GetRawFileDescriptor64", nullptr, GetRawFileDescriptor64, nullptr, nullptr, nullptr, napi_default, nullptr},
1032 {"IsRawDir", nullptr, IsRawDir, nullptr, nullptr, nullptr, napi_default, nullptr},
1033 {"GetDrawableDescriptor", nullptr, GetDrawableDescriptor, nullptr, nullptr, nullptr, napi_default, nullptr},
1034 {"GetDrawableDescriptorByName", nullptr, GetDrawableDescriptorByName, nullptr,
1035 nullptr, nullptr, napi_default, nullptr},
1036 {"GetMediaBase64", nullptr, GetMediaBase64, nullptr, nullptr, nullptr, napi_default, nullptr},
1037 {"GetMediaBase64ByName", nullptr, GetMediaBase64ByName, nullptr, nullptr, nullptr, napi_default, nullptr},
1038 {"GetMedia", nullptr, GetMedia, nullptr, nullptr, nullptr, napi_default, nullptr},
1039 {"GetMediaByName", nullptr, GetMediaByName, nullptr, nullptr, nullptr, napi_default, nullptr},
1040 {"GetSymbolByName", nullptr, GetSymbolByName, nullptr, nullptr, nullptr, napi_default, nullptr},
1041 {"GetSymbol", nullptr, GetSymbol, nullptr, nullptr, nullptr, napi_default, nullptr},
1042 {"GetBoolByName", nullptr, GetBoolByName, nullptr, nullptr, nullptr, napi_default, nullptr},
1043 {"GetBool", nullptr, GetBool, nullptr, nullptr, nullptr, napi_default, nullptr},
1044 {"GetPluralStringByName", nullptr, GetPluralStringByName, nullptr, nullptr, nullptr, napi_default, nullptr},
1045 {"GetPluralString", nullptr, GetPluralString, nullptr, nullptr, nullptr, napi_default, nullptr},
1046 {"GetColorByName", nullptr, GetColorByName, nullptr, nullptr, nullptr, napi_default, nullptr},
1047 {"GetColor", nullptr, GetColor, nullptr, nullptr, nullptr, napi_default, nullptr},
1048 {"GetIntByName", nullptr, GetIntByName, nullptr, nullptr, nullptr, napi_default, nullptr},
1049 {"GetInt", nullptr, GetInt, nullptr, nullptr, nullptr, napi_default, nullptr},
1050 {"GetFloatByName", nullptr, GetFloatByName, nullptr, nullptr, nullptr, napi_default, nullptr},
1051 {"GetFloat", nullptr, GetFloat, nullptr, nullptr, nullptr, napi_default, nullptr},
1052 {"GetLocales", nullptr, GetLocales, nullptr, nullptr, nullptr, napi_default, nullptr},
1053 {"GetConfiguration", nullptr, GetConfiguration, nullptr, nullptr, nullptr, napi_default, nullptr},
1054 {"GetStringArray", nullptr, GetStringArray, nullptr, nullptr, nullptr, napi_default, nullptr},
1055 {"GetStringArrayByName", nullptr, GetStringArrayByName, nullptr, nullptr, nullptr, napi_default, nullptr},
1056 {"ReleaseStringArray", nullptr, ReleaseStringArray, nullptr, nullptr, nullptr, napi_default, nullptr},
1057 {"ReleaseConfiguration", nullptr, ReleaseConfiguration, nullptr, nullptr, nullptr, napi_default, nullptr},
1058 {"GetStringByName", nullptr, GetStringByName, nullptr, nullptr, nullptr, napi_default, nullptr},
1059 {"GetString", nullptr, GetString, nullptr, nullptr, nullptr, napi_default, nullptr},
1060 {"GetRawFileDescriptorData", nullptr, GetRawFileDescriptorData, nullptr, nullptr,
1061 nullptr, napi_default, nullptr},
1062 {"GetLocalesData", nullptr, GetLocalesData, nullptr, nullptr, nullptr, napi_default, nullptr},
1063 {"GetMediaBase64DataByName", nullptr, GetMediaBase64DataByName, nullptr, nullptr,
1064 nullptr, napi_default, nullptr},
1065 {"GetMediaBase64Data", nullptr, GetMediaBase64Data, nullptr, nullptr, nullptr, napi_default, nullptr},
1066 {"GetMediaData", nullptr, GetMediaData, nullptr, nullptr, nullptr, napi_default, nullptr},
1067 {"GetMediaDataByName", nullptr, GetMediaDataByName, nullptr, nullptr, nullptr, napi_default, nullptr},
1068 {"GetDrawableDescriptorData", nullptr, GetDrawableDescriptorData, nullptr,
1069 nullptr, nullptr, napi_default, nullptr},
1070 {"GetDrawableDescriptorDataByName", nullptr, GetDrawableDescriptorDataByName, nullptr,
1071 nullptr, nullptr, napi_default, nullptr},
1072 {"AddResource", nullptr, AddResource, nullptr, nullptr, nullptr, napi_default, nullptr},
1073 {"RemoveResource", nullptr, RemoveResource, nullptr, nullptr, nullptr, napi_default, nullptr},
1074 };
1075
1076 napi_define_properties(env, exports, sizeof(desc) / sizeof(desc[0]), desc);
1077 return exports;
1078 }
1079 EXTERN_C_END
1080
1081 static napi_module demoModule = {
1082 .nm_version = 1,
1083 .nm_flags = 0,
1084 .nm_filename = nullptr,
1085 .nm_register_func = Init,
1086 .nm_modname = "resmgrndk",
1087 .nm_priv = ((void*)0),
1088 .reserved = { 0 },
1089 };
1090
RegisterEntryModule(void)1091 extern "C" __attribute__((constructor)) void RegisterEntryModule(void)
1092 {
1093 napi_module_register(&demoModule);
1094 }