• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2022 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 <map>
16 #include <string>
17 #include "napi_settings.h"
18 #include "napi_settings_log.h"
19 
20 namespace OHOS {
21 namespace Settings {
22 class Date
23 {
24 public:
25     static const std::string DATE_FORMAT;
26     static const std::string TIME_FORMAT;
27     static const std::string AUTO_GAIN_TIME;
28     static const std::string AUTO_GAIN_TIME_ZONE;
29 };
30 
31 class Display
32 {
33 public:
34     static const std::string FONT_SCALE;
35     static const std::string SCREEN_BRIGHTNESS_STATUS;
36     static const std::string AUTO_SCREEN_BRIGHTNESS;
37     static const int AUTO_SCREEN_BRIGHTNESS_MODE;
38     static const int MANUAL_SCREEN_BRIGHTNESS_MODE;
39     static const std::string SCREEN_OFF_TIMEOUT;
40     static const std::string DEFAULT_SCREEN_ROTATION;
41     static const std::string ANIMATOR_DURATION_SCALE;
42     static const std::string TRANSITION_ANIMATION_SCALE;
43     static const std::string WINDOW_ANIMATION_SCALE;
44     static const std::string DISPLAY_INVERSION_STATUS;
45 };
46 
47 class General
48 {
49 public:
50     static const std::string SETUP_WIZARD_FINISHED;
51     static const std::string END_BUTTON_ACTION;
52     static const std::string AIRPLANE_MODE_STATUS;
53     static const std::string ACCELEROMETER_ROTATION_STATUS;
54     static const std::string DEVICE_PROVISION_STATUS;
55     static const std::string HDC_STATUS;
56     static const std::string BOOT_COUNTING;
57     static const std::string CONTACT_METADATA_SYNC_STATUS;
58     static const std::string DEVELOPMENT_SETTINGS_STATUS;
59     static const std::string DEVICE_NAME;
60     static const std::string USB_STORAGE_STATUS;
61     static const std::string DEBUGGER_WAITING;
62     static const std::string DEBUG_APP_PACKAGE;
63     static const std::string ACCESSIBILITY_STATUS;
64     static const std::string ACTIVATED_ACCESSIBILITY_SERVICES;
65     static const std::string GEOLOCATION_ORIGINS_ALLOWED;
66     static const std::string SKIP_USE_HINTS;
67     static const std::string TOUCH_EXPLORATION_STATUS;
68 };
69 
70 class Input
71 {
72 public:
73     static const std::string DEFAULT_INPUT_METHOD;
74     static const std::string ACTIVATED_INPUT_METHOD_SUB_MODE;
75     static const std::string ACTIVATED_INPUT_METHODS;
76     static const std::string SELECTOR_VISIBILITY_FOR_INPUT_METHOD;
77     static const std::string AUTO_CAPS_TEXT_INPUT;
78     static const std::string AUTO_PUNCTUATE_TEXT_INPUT;
79     static const std::string AUTO_REPLACE_TEXT_INPUT;
80     static const std::string SHOW_PASSWORD_TEXT_INPUT;
81 };
82 
83 class Network
84 {
85 public:
86     static const std::string DATA_ROAMING_STATUS;
87     static const std::string HTTP_PROXY_CFG;
88     static const std::string NETWORK_PREFERENCE_USAGE;
89 };
90 
91 class Phone
92 {
93 public:
94     static const std::string RTT_CALLING_STATUS;
95 };
96 
97 class Sound
98 {
99 public:
100     static const std::string VIBRATE_WHILE_RINGING;
101     static const std::string DEFAULT_ALARM_ALERT;
102     static const std::string DTMF_TONE_TYPE_WHILE_DIALING;
103     static const std::string DTMF_TONE_WHILE_DIALING;
104     static const std::string HAPTIC_FEEDBACK_STATUS;
105     static const std::string AFFECTED_MODE_RINGER_STREAMS;
106     static const std::string AFFECTED_MUTE_STREAMS;
107     static const std::string DEFAULT_NOTIFICATION_SOUND;
108     static const std::string DEFAULT_RINGTONE;
109     static const std::string SOUND_EFFECTS_STATUS;
110     static const std::string VIBRATE_STATUS;
111     // temp audio key, it will be modify in the feature
112     static const std::string AUDIO_RINGTONE;
113     static const std::string AUDIO_MEDIA;
114     static const std::string AUDIO_VOICECALL;
115 };
116 
117 class TTS
118 {
119 public:
120     static const std::string DEFAULT_TTS_PITCH;
121     static const std::string DEFAULT_TTS_RATE;
122     static const std::string DEFAULT_TTS_SYNTH;
123     static const std::string ENABLED_TTS_PLUGINS;
124 };
125 
126 class Wireless
127 {
128 public:
129     static const std::string BLUETOOTH_RADIO;
130     static const std::string CELL_RADIO;
131     static const std::string NFC_RADIO;
132     static const std::string AIRPLANE_MODE_RADIOS;
133     static const std::string BLUETOOTH_STATUS;
134     static const std::string BLUETOOTH_DISCOVER_ABILITY_STATUS;
135     static const std::string BLUETOOTH_DISCOVER_TIMEOUT;
136     static const std::string WIFI_DHCP_MAX_RETRY_COUNT;
137     static const std::string WIFI_TO_MOBILE_DATA_AWAKE_TIMEOUT;
138     static const std::string WIFI_STATUS;
139     static const std::string WIFI_WATCHDOG_STATUS;
140     static const std::string WIFI_RADIO;
141     static const std::string OWNER_LOCKDOWN_WIFI_CFG;
142 };
143 
144 const std::string Date::DATE_FORMAT = "settings.date.date_format";
145 const std::string Date::TIME_FORMAT = "settings.date.time_format";
146 const std::string Date::AUTO_GAIN_TIME = "settings.date.auto_gain_time";
147 const std::string Date::AUTO_GAIN_TIME_ZONE = "settings.date.auto_gain_time_zone";
148 
149 const std::string Display::FONT_SCALE = "settings.display.font_scale";
150 const std::string Display::SCREEN_BRIGHTNESS_STATUS = "settings.display.screen_brightness_status";
151 const std::string Display::AUTO_SCREEN_BRIGHTNESS = "settings.display.auto_screen_brightness";
152 const int Display::AUTO_SCREEN_BRIGHTNESS_MODE = 1;
153 const int Display::MANUAL_SCREEN_BRIGHTNESS_MODE = 0;
154 const std::string Display::SCREEN_OFF_TIMEOUT = "settings.display.screen_off_timeout";
155 const std::string Display::DEFAULT_SCREEN_ROTATION = "settings.display.default_screen_rotation";
156 const std::string Display::ANIMATOR_DURATION_SCALE = "settings.display.animator_duration_scale";
157 const std::string Display::TRANSITION_ANIMATION_SCALE = "settings.display.transition_animation_scale";
158 const std::string Display::WINDOW_ANIMATION_SCALE = "settings.display.window_animation_scale";
159 const std::string Display::DISPLAY_INVERSION_STATUS = "settings.display.display_inversion_status";
160 
161 const std::string General::SETUP_WIZARD_FINISHED = "settings.general.setup_wizard_finished";
162 const std::string General::END_BUTTON_ACTION = "settings.general.end_button_action";
163 const std::string General::AIRPLANE_MODE_STATUS = "settings.general.airplane_mode_status";
164 const std::string General::ACCELEROMETER_ROTATION_STATUS = "settings.general.accelerometer_rotation_status";
165 const std::string General::DEVICE_PROVISION_STATUS = "settings.general.device_provision_status";
166 const std::string General::HDC_STATUS = "settings.general.hdc_status";
167 const std::string General::BOOT_COUNTING = "settings.general.boot_counting";
168 const std::string General::CONTACT_METADATA_SYNC_STATUS = "settings.general.contact_metadata_sync_status";
169 const std::string General::DEVELOPMENT_SETTINGS_STATUS = "settings.general.development_settings_status";
170 const std::string General::DEVICE_NAME = "settings.general.device_name";
171 const std::string General::USB_STORAGE_STATUS = "settings.general.usb_storage_status";
172 const std::string General::DEBUGGER_WAITING = "settings.general.debugger_waiting";
173 const std::string General::DEBUG_APP_PACKAGE = "settings.general.debug_app_package";
174 const std::string General::ACCESSIBILITY_STATUS = "settings.general.accessibility_status";
175 const std::string General::ACTIVATED_ACCESSIBILITY_SERVICES = "settings.general.activated_accessibility_services";
176 const std::string General::GEOLOCATION_ORIGINS_ALLOWED = "settings.general.geolocation_origins_allowed";
177 const std::string General::SKIP_USE_HINTS = "settings.general.skip_use_hints";
178 const std::string General::TOUCH_EXPLORATION_STATUS = "settings.general.touch_exploration_status";
179 
180 const std::string Input::DEFAULT_INPUT_METHOD = "settings.input.default_input_method";
181 const std::string Input::ACTIVATED_INPUT_METHOD_SUB_MODE = "settings.input.activated_input_method_submode";
182 const std::string Input::ACTIVATED_INPUT_METHODS = "settings.input.activated_input_methods";
183 const std::string Input::SELECTOR_VISIBILITY_FOR_INPUT_METHOD = "settings.input.selector_visibility_for_input_method";
184 const std::string Input::AUTO_CAPS_TEXT_INPUT = "settings.input.auto_caps_text_input";
185 const std::string Input::AUTO_PUNCTUATE_TEXT_INPUT = "settings.input.auto_punctuate_text_input";
186 const std::string Input::AUTO_REPLACE_TEXT_INPUT = "settings.input.auto_replace_text_input";
187 const std::string Input::SHOW_PASSWORD_TEXT_INPUT = "settings.input.show_password_text_input";
188 
189 const std::string Network::DATA_ROAMING_STATUS = "settings.network.data_roaming_status";
190 const std::string Network::HTTP_PROXY_CFG = "settings.network.http_proxy_cfg";
191 const std::string Network::NETWORK_PREFERENCE_USAGE = "settings.network.network_preference_usage";
192 
193 const std::string Phone::RTT_CALLING_STATUS = "settings.phone.rtt_calling_status";
194 
195 const std::string Sound::VIBRATE_WHILE_RINGING = "settings.sound.vibrate_while_ringing";
196 const std::string Sound::DEFAULT_ALARM_ALERT = "settings.sound.default_alarm_alert";
197 const std::string Sound::DTMF_TONE_TYPE_WHILE_DIALING = "settings.sound.dtmf_tone_type_while_dialing";
198 const std::string Sound::DTMF_TONE_WHILE_DIALING = "settings.sound.dtmf_tone_while_dialing";
199 const std::string Sound::HAPTIC_FEEDBACK_STATUS = "settings.sound.haptic_feedback_status";
200 const std::string Sound::AFFECTED_MODE_RINGER_STREAMS = "settings.sound.affected_mode_ringer_streams";
201 const std::string Sound::AFFECTED_MUTE_STREAMS = "settings.sound.affected_mute_streams";
202 const std::string Sound::DEFAULT_NOTIFICATION_SOUND = "settings.sound.default_notification_sound";
203 const std::string Sound::DEFAULT_RINGTONE = "settings.sound.default_ringtone";
204 const std::string Sound::SOUND_EFFECTS_STATUS = "settings.sound.sound_effects_status";
205 const std::string Sound::VIBRATE_STATUS = "settings.sound.vibrate_status";
206 
207 const std::string TTS::DEFAULT_TTS_PITCH = "settings.tts.default_tts_pitch";
208 const std::string TTS::DEFAULT_TTS_RATE = "settings.tts.default_tts_rate";
209 const std::string TTS::DEFAULT_TTS_SYNTH = "settings.tts.default_tts_synth";
210 const std::string TTS::ENABLED_TTS_PLUGINS = "settings.tts.enabled_tts_plugins";
211 
212 const std::string Wireless::BLUETOOTH_RADIO = "settings.wireless.bluetooth_radio";
213 const std::string Wireless::CELL_RADIO = "settings.wireless.cell_radio";
214 const std::string Wireless::NFC_RADIO = "settings.wireless.nfc_radio";
215 const std::string Wireless::AIRPLANE_MODE_RADIOS = "settings.wireless.airplane_mode_radios";
216 const std::string Wireless::BLUETOOTH_STATUS = "settings.wireless.bluetooth_status";
217 const std::string Wireless::BLUETOOTH_DISCOVER_ABILITY_STATUS = "settings.wireless.bluetooth_discoverability_status";
218 const std::string Wireless::BLUETOOTH_DISCOVER_TIMEOUT = "settings.wireless.bluetooth_discover_timeout";
219 const std::string Wireless::WIFI_DHCP_MAX_RETRY_COUNT = "settings.wireless.wifi_dhcp_max_retry_count";
220 const std::string Wireless::WIFI_TO_MOBILE_DATA_AWAKE_TIMEOUT = "settings.wireless.wifi_to_mobile_data_awake_timeout";
221 const std::string Wireless::WIFI_STATUS = "settings.wireless.wifi_status";
222 const std::string Wireless::WIFI_WATCHDOG_STATUS = "settings.wireless.wifi_watchdog_status";
223 const std::string Wireless::WIFI_RADIO = "settings.wireless.wifi_radio";
224 const std::string Wireless::OWNER_LOCKDOWN_WIFI_CFG = "settings.wireless.owner_lockdown_wifi_cfg";
225 
226 const std::string DATE_CLASS_NAME = "date";
227 const std::string DISPLAY_CLASS_NAME = "display";
228 const std::string GENERAL_CLASS_NAME = "general";
229 const std::string INPUT_CLASS_NAME = "input";
230 const std::string NETWORK_CLASS_NAME = "network";
231 const std::string PHONE_CLASS_NAME = "phone";
232 const std::string SOUND_CLASS_NAME = "sound";
233 const std::string TTS_CLASS_NAME = "tts";
234 const std::string WIRELESS_CLASS_NAME = "wireless";
235 
ClassConstructor(napi_env env,napi_callback_info info)236 napi_value ClassConstructor(napi_env env, napi_callback_info info)
237 {
238     SETTING_LOG_INFO("%{public}s is called", __FUNCTION__);
239     size_t argc = 0;
240     napi_value argv = nullptr;
241     napi_value thisArg = nullptr;
242     void* data = nullptr;
243     napi_get_cb_info(env, info, &argc, &argv, &thisArg, &data);
244 
245     napi_value global = 0;
246     napi_get_global(env, &global);
247     SETTING_LOG_INFO("%{public}s is end", __FUNCTION__);
248     return thisArg;
249 }
250 
InitDateMap(napi_env env,std::map<const char *,napi_value> & paramMap)251 void InitDateMap(napi_env env, std::map<const char*, napi_value>& paramMap)
252 {
253     napi_value dateFormat = nullptr;
254     napi_create_string_utf8(env,
255         Date::DATE_FORMAT.c_str(), NAPI_AUTO_LENGTH, &dateFormat);
256     paramMap["DATE_FORMAT"] = dateFormat;
257 
258     napi_value timeFormat = nullptr;
259     napi_create_string_utf8(env,
260         Date::TIME_FORMAT.c_str(), NAPI_AUTO_LENGTH, &timeFormat);
261     paramMap["TIME_FORMAT"] = timeFormat;
262 
263     napi_value autoGainTime = nullptr;
264     napi_create_string_utf8(env,
265         Date::AUTO_GAIN_TIME.c_str(), NAPI_AUTO_LENGTH, &autoGainTime);
266     paramMap["AUTO_GAIN_TIME"] = autoGainTime;
267 
268     napi_value autoGainTimeZone = nullptr;
269     napi_create_string_utf8(env,
270         Date::AUTO_GAIN_TIME_ZONE.c_str(), NAPI_AUTO_LENGTH, &autoGainTimeZone);
271     paramMap["AUTO_GAIN_TIME_ZONE"] = autoGainTimeZone;
272 }
273 
InitDisplayMap(napi_env env,std::map<const char *,napi_value> & paramMap)274 void InitDisplayMap(napi_env env, std::map<const char*, napi_value>& paramMap)
275 {
276     napi_value fontScale = nullptr;
277     napi_create_string_utf8(env,
278         Display::FONT_SCALE.c_str(), NAPI_AUTO_LENGTH, &fontScale);
279     paramMap["FONT_SCALE"] = fontScale;
280 
281     napi_value brightnessStatus = nullptr;
282     napi_create_string_utf8(env,
283         Display::SCREEN_BRIGHTNESS_STATUS.c_str(), NAPI_AUTO_LENGTH, &brightnessStatus);
284     paramMap["SCREEN_BRIGHTNESS_STATUS"] = brightnessStatus;
285 
286     napi_value autoScreenStatus = nullptr;
287     napi_create_string_utf8(env,
288         Display::AUTO_SCREEN_BRIGHTNESS.c_str(), NAPI_AUTO_LENGTH, &autoScreenStatus);
289     paramMap["AUTO_SCREEN_BRIGHTNESS"] = autoScreenStatus;
290 
291     napi_value autoMode = nullptr;
292     napi_create_int32(env,
293         Display::AUTO_SCREEN_BRIGHTNESS_MODE, &autoMode);
294     paramMap["AUTO_SCREEN_BRIGHTNESS_MODE"] = autoMode;
295 
296     napi_value manualMode = nullptr;
297     napi_create_int32(env,
298         Display::MANUAL_SCREEN_BRIGHTNESS_MODE, &manualMode);
299     paramMap["MANUAL_SCREEN_BRIGHTNESS_MODE"] = manualMode;
300 
301     napi_value screenOffTimeout = nullptr;
302     napi_create_string_utf8(env,
303         Display::SCREEN_OFF_TIMEOUT.c_str(), NAPI_AUTO_LENGTH, &screenOffTimeout);
304     paramMap["SCREEN_OFF_TIMEOUT"] = screenOffTimeout;
305 
306     napi_value defScreenRotation = nullptr;
307     napi_create_string_utf8(env,
308         Display::DEFAULT_SCREEN_ROTATION.c_str(), NAPI_AUTO_LENGTH, &defScreenRotation);
309     paramMap["DEFAULT_SCREEN_ROTATION"] = defScreenRotation;
310 
311     napi_value animatorDurationScale = nullptr;
312     napi_create_string_utf8(env,
313         Display::ANIMATOR_DURATION_SCALE.c_str(), NAPI_AUTO_LENGTH, &animatorDurationScale);
314     paramMap["ANIMATOR_DURATION_SCALE"] = animatorDurationScale;
315 
316     napi_value transiAnimationScale = nullptr;
317     napi_create_string_utf8(env,
318         Display::TRANSITION_ANIMATION_SCALE.c_str(), NAPI_AUTO_LENGTH, &transiAnimationScale);
319     paramMap["TRANSITION_ANIMATION_SCALE"] = transiAnimationScale;
320 
321     napi_value windowAnimationScale = nullptr;
322     napi_create_string_utf8(env,
323         Display::WINDOW_ANIMATION_SCALE.c_str(), NAPI_AUTO_LENGTH, &windowAnimationScale);
324     paramMap["WINDOW_ANIMATION_SCALE"] = windowAnimationScale;
325 
326     napi_value displayInversionStatus = nullptr;
327     napi_create_string_utf8(env,
328         Display::DISPLAY_INVERSION_STATUS.c_str(), NAPI_AUTO_LENGTH, &displayInversionStatus);
329     paramMap["DISPLAY_INVERSION_STATUS"] = displayInversionStatus;
330 }
331 
InitGeneralMap(napi_env env,std::map<const char *,napi_value> & paramMap)332 void InitGeneralMap(napi_env env, std::map<const char*, napi_value>& paramMap)
333 {
334     napi_value setupWizFinished = nullptr;
335     napi_create_string_utf8(env,
336         General::SETUP_WIZARD_FINISHED.c_str(), NAPI_AUTO_LENGTH, &setupWizFinished);
337     paramMap["SETUP_WIZARD_FINISHED"] = setupWizFinished;
338 
339     napi_value endButtonAction = nullptr;
340     napi_create_string_utf8(env,
341         General::END_BUTTON_ACTION.c_str(), NAPI_AUTO_LENGTH, &endButtonAction);
342     paramMap["END_BUTTON_ACTION"] = endButtonAction;
343 
344     napi_value airplaneModeStatus = nullptr;
345     napi_create_string_utf8(env,
346         General::AIRPLANE_MODE_STATUS.c_str(), NAPI_AUTO_LENGTH, &airplaneModeStatus);
347     paramMap["AIRPLANE_MODE_STATUS"] = airplaneModeStatus;
348 
349     napi_value acceleRotationStatus = nullptr;
350     napi_create_string_utf8(env,
351         General::ACCELEROMETER_ROTATION_STATUS.c_str(), NAPI_AUTO_LENGTH, &acceleRotationStatus);
352     paramMap["ACCELEROMETER_ROTATION_STATUS"] = acceleRotationStatus;
353 
354     napi_value devProvisionStatus = nullptr;
355     napi_create_string_utf8(env,
356         General::DEVICE_PROVISION_STATUS.c_str(), NAPI_AUTO_LENGTH, &devProvisionStatus);
357     paramMap["DEVICE_PROVISION_STATUS"] = devProvisionStatus;
358 
359     napi_value hdcStatus = nullptr;
360     napi_create_string_utf8(env,
361         General::HDC_STATUS.c_str(), NAPI_AUTO_LENGTH, &hdcStatus);
362     paramMap["HDC_STATUS"] = hdcStatus;
363 
364     napi_value bootCounting = nullptr;
365     napi_create_string_utf8(env,
366         General::BOOT_COUNTING.c_str(), NAPI_AUTO_LENGTH, &bootCounting);
367     paramMap["BOOT_COUNTING"] = bootCounting;
368 
369     napi_value contactMetaSyncStatus = nullptr;
370     napi_create_string_utf8(env,
371         General::CONTACT_METADATA_SYNC_STATUS.c_str(), NAPI_AUTO_LENGTH, &contactMetaSyncStatus);
372     paramMap["CONTACT_METADATA_SYNC_STATUS"] = contactMetaSyncStatus;
373 
374     napi_value developSettingStatus = nullptr;
375     napi_create_string_utf8(env,
376         General::DEVELOPMENT_SETTINGS_STATUS.c_str(), NAPI_AUTO_LENGTH, &developSettingStatus);
377     paramMap["DEVELOPMENT_SETTINGS_STATUS"] = developSettingStatus;
378 
379     napi_value deviceName = nullptr;
380     napi_create_string_utf8(env,
381         General::DEVICE_NAME.c_str(), NAPI_AUTO_LENGTH, &deviceName);
382     paramMap["DEVICE_NAME"] = deviceName;
383 
384     napi_value usbStorageStatus = nullptr;
385     napi_create_string_utf8(env,
386         General::USB_STORAGE_STATUS.c_str(), NAPI_AUTO_LENGTH, &usbStorageStatus);
387     paramMap["USB_STORAGE_STATUS"] = usbStorageStatus;
388 
389     napi_value debuggerWaiting = nullptr;
390     napi_create_string_utf8(env,
391         General::DEBUGGER_WAITING.c_str(), NAPI_AUTO_LENGTH, &debuggerWaiting);
392     paramMap["DEBUGGER_WAITING"] = debuggerWaiting;
393 
394     napi_value debugAppPackage = nullptr;
395     napi_create_string_utf8(env,
396         General::DEBUG_APP_PACKAGE.c_str(), NAPI_AUTO_LENGTH, &debugAppPackage);
397     paramMap["DEBUG_APP_PACKAGE"] = debugAppPackage;
398 
399     napi_value accessibilityStatus = nullptr;
400     napi_create_string_utf8(env,
401         General::ACCESSIBILITY_STATUS.c_str(), NAPI_AUTO_LENGTH, &accessibilityStatus);
402     paramMap["ACCESSIBILITY_STATUS"] = accessibilityStatus;
403 
404     napi_value activAccessServices = nullptr;
405     napi_create_string_utf8(env,
406         General::ACTIVATED_ACCESSIBILITY_SERVICES.c_str(), NAPI_AUTO_LENGTH, &activAccessServices);
407     paramMap["ACTIVATED_ACCESSIBILITY_SERVICES"] = activAccessServices;
408 
409     napi_value geoOriginsAllowed = nullptr;
410     napi_create_string_utf8(env,
411         General::GEOLOCATION_ORIGINS_ALLOWED.c_str(), NAPI_AUTO_LENGTH, &geoOriginsAllowed);
412     paramMap["GEOLOCATION_ORIGINS_ALLOWED"] = geoOriginsAllowed;
413 
414     napi_value skipUseHints = nullptr;
415     napi_create_string_utf8(env,
416         General::SKIP_USE_HINTS.c_str(), NAPI_AUTO_LENGTH, &skipUseHints);
417     paramMap["SKIP_USE_HINTS"] = skipUseHints;
418 
419     napi_value touchExplorationStatus = nullptr;
420     napi_create_string_utf8(env,
421         General::TOUCH_EXPLORATION_STATUS.c_str(), NAPI_AUTO_LENGTH, &touchExplorationStatus);
422     paramMap["TOUCH_EXPLORATION_STATUS"] = touchExplorationStatus;
423 }
424 
InitInputMap(napi_env env,std::map<const char *,napi_value> & paramMap)425 void InitInputMap(napi_env env, std::map<const char*, napi_value>& paramMap)
426 {
427     napi_value defInputMethod = nullptr;
428     napi_create_string_utf8(env,
429             Input::DEFAULT_INPUT_METHOD.c_str(), NAPI_AUTO_LENGTH, &defInputMethod);
430     paramMap["DEFAULT_INPUT_METHOD"] = defInputMethod;
431 
432     napi_value activeSubMode = nullptr;
433     napi_create_string_utf8(env,
434             Input::ACTIVATED_INPUT_METHOD_SUB_MODE.c_str(), NAPI_AUTO_LENGTH, &activeSubMode);
435     paramMap["ACTIVATED_INPUT_METHOD_SUB_MODE"] = activeSubMode;
436 
437     napi_value activatedInputMethod = nullptr;
438     napi_create_string_utf8(env,
439             Input::ACTIVATED_INPUT_METHODS.c_str(), NAPI_AUTO_LENGTH, &activatedInputMethod);
440     paramMap["ACTIVATED_INPUT_METHODS"] = activatedInputMethod;
441 
442     napi_value selectorVisibility = nullptr;
443     napi_create_string_utf8(env,
444             Input::SELECTOR_VISIBILITY_FOR_INPUT_METHOD.c_str(), NAPI_AUTO_LENGTH, &selectorVisibility);
445     paramMap["SELECTOR_VISIBILITY_FOR_INPUT_METHOD"] = selectorVisibility;
446 
447     napi_value autoCapsTextInput = nullptr;
448     napi_create_string_utf8(env,
449             Input::AUTO_CAPS_TEXT_INPUT.c_str(), NAPI_AUTO_LENGTH, &autoCapsTextInput);
450     paramMap["AUTO_CAPS_TEXT_INPUT"] = autoCapsTextInput;
451 
452     napi_value autoPunctuate = nullptr;
453     napi_create_string_utf8(env,
454             Input::AUTO_PUNCTUATE_TEXT_INPUT.c_str(), NAPI_AUTO_LENGTH, &autoPunctuate);
455     paramMap["AUTO_PUNCTUATE_TEXT_INPUT"] = autoPunctuate;
456 
457     napi_value autoReplace = nullptr;
458     napi_create_string_utf8(env,
459             Input::AUTO_REPLACE_TEXT_INPUT.c_str(), NAPI_AUTO_LENGTH, &autoReplace);
460     paramMap["AUTO_REPLACE_TEXT_INPUT"] = autoReplace;
461 
462     napi_value showPassword = nullptr;
463     napi_create_string_utf8(env,
464             Input::SHOW_PASSWORD_TEXT_INPUT.c_str(), NAPI_AUTO_LENGTH, &showPassword);
465     paramMap["SHOW_PASSWORD_TEXT_INPUT"] = showPassword;
466 }
467 
InitNetworkMap(napi_env env,std::map<const char *,napi_value> & paramMap)468 void InitNetworkMap(napi_env env, std::map<const char*, napi_value>& paramMap)
469 {
470     SETTING_LOG_INFO("%{public}s is called", __FUNCTION__);
471 
472     napi_value dataRoamingStatus = nullptr;
473     napi_create_string_utf8(env,
474             Network::DATA_ROAMING_STATUS.c_str(), NAPI_AUTO_LENGTH, &dataRoamingStatus);
475     paramMap["DATA_ROAMING_STATUS"] = dataRoamingStatus;
476 
477     napi_value httpProxyCfg = nullptr;
478     napi_create_string_utf8(env,
479             Network::HTTP_PROXY_CFG.c_str(), NAPI_AUTO_LENGTH, &httpProxyCfg);
480     paramMap["HTTP_PROXY_CFG"] = httpProxyCfg;
481 
482     napi_value networkPrefUsage = nullptr;
483     napi_create_string_utf8(env,
484             Network::NETWORK_PREFERENCE_USAGE.c_str(), NAPI_AUTO_LENGTH, &networkPrefUsage);
485     paramMap["NETWORK_PREFERENCE_USAGE"] = networkPrefUsage;
486 
487     SETTING_LOG_INFO("%{public}s is end", __FUNCTION__);
488 }
489 
InitPhoneMap(napi_env env,std::map<const char *,napi_value> & paramMap)490 void InitPhoneMap(napi_env env, std::map<const char*, napi_value>& paramMap)
491 {
492     SETTING_LOG_INFO("%{public}s is called", __FUNCTION__);
493 
494     napi_value rttCallingStatus = nullptr;
495     napi_create_string_utf8(env,
496         Phone::RTT_CALLING_STATUS.c_str(), NAPI_AUTO_LENGTH, &rttCallingStatus);
497     paramMap["RTT_CALLING_STATUS"] = rttCallingStatus;
498 
499     SETTING_LOG_INFO("%{public}s is end", __FUNCTION__);
500 }
501 
InitSoundMap(napi_env env,std::map<const char *,napi_value> & paramMap)502 void InitSoundMap(napi_env env, std::map<const char*, napi_value>& paramMap)
503 {
504 
505     napi_value vibrateWhileRinging = nullptr;
506     napi_create_string_utf8(env,
507         Sound::VIBRATE_WHILE_RINGING.c_str(), NAPI_AUTO_LENGTH, &vibrateWhileRinging);
508     paramMap["VIBRATE_WHILE_RINGING"] = vibrateWhileRinging;
509 
510     napi_value defAlarmAlert = nullptr;
511     napi_create_string_utf8(env,
512         Sound::DEFAULT_ALARM_ALERT.c_str(), NAPI_AUTO_LENGTH, &defAlarmAlert);
513     paramMap["DEFAULT_ALARM_ALERT"] = defAlarmAlert;
514 
515     napi_value dtmfToneType = nullptr;
516     napi_create_string_utf8(env,
517         Sound::DTMF_TONE_TYPE_WHILE_DIALING.c_str(), NAPI_AUTO_LENGTH, &dtmfToneType);
518     paramMap["DTMF_TONE_TYPE_WHILE_DIALING"] = dtmfToneType;
519 
520     napi_value dtmfTone = nullptr;
521     napi_create_string_utf8(env,
522         Sound::DTMF_TONE_WHILE_DIALING.c_str(), NAPI_AUTO_LENGTH, &dtmfTone);
523     paramMap["DTMF_TONE_WHILE_DIALING"] = dtmfTone;
524 
525     napi_value hapticFeedbackStatus = nullptr;
526     napi_create_string_utf8(env,
527         Sound::HAPTIC_FEEDBACK_STATUS.c_str(), NAPI_AUTO_LENGTH, &hapticFeedbackStatus);
528     paramMap["HAPTIC_FEEDBACK_STATUS"] = hapticFeedbackStatus;
529 
530     napi_value affectedModeRingerStreams = nullptr;
531     napi_create_string_utf8(env,
532         Sound::AFFECTED_MODE_RINGER_STREAMS.c_str(), NAPI_AUTO_LENGTH, &affectedModeRingerStreams);
533     paramMap["AFFECTED_MODE_RINGER_STREAMS"] = affectedModeRingerStreams;
534 
535     napi_value affectedMuteStreams = nullptr;
536     napi_create_string_utf8(env,
537         Sound::AFFECTED_MUTE_STREAMS.c_str(), NAPI_AUTO_LENGTH, &affectedMuteStreams);
538     paramMap["AFFECTED_MUTE_STREAMS"] = affectedMuteStreams;
539 
540     napi_value defNotificationSound = nullptr;
541     napi_create_string_utf8(env,
542         Sound::DEFAULT_NOTIFICATION_SOUND.c_str(), NAPI_AUTO_LENGTH, &defNotificationSound);
543     paramMap["DEFAULT_NOTIFICATION_SOUND"] = defNotificationSound;
544 
545     napi_value defRingtone = nullptr;
546     napi_create_string_utf8(env,
547         Sound::DEFAULT_RINGTONE.c_str(), NAPI_AUTO_LENGTH, &defRingtone);
548     paramMap["DEFAULT_RINGTONE"] = defRingtone;
549 
550     napi_value soundEffectsStatus = nullptr;
551     napi_create_string_utf8(env,
552         Sound::SOUND_EFFECTS_STATUS.c_str(), NAPI_AUTO_LENGTH, &soundEffectsStatus);
553     paramMap["SOUND_EFFECTS_STATUS"] = soundEffectsStatus;
554 
555     napi_value vibrateStatus = nullptr;
556     napi_create_string_utf8(env,
557         Sound::VIBRATE_STATUS.c_str(), NAPI_AUTO_LENGTH, &vibrateStatus);
558     paramMap["VIBRATE_STATUS"] = vibrateStatus;
559 }
560 
InitTTSMap(napi_env env,std::map<const char *,napi_value> & paramMap)561 void InitTTSMap(napi_env env, std::map<const char*, napi_value>& paramMap)
562 {
563     napi_value defTTSPitch = nullptr;
564     napi_create_string_utf8(env,
565         TTS::DEFAULT_TTS_PITCH.c_str(), NAPI_AUTO_LENGTH, &defTTSPitch);
566     paramMap["DEFAULT_TTS_PITCH"] = defTTSPitch;
567 
568     napi_value defTTSRate = nullptr;
569     napi_create_string_utf8(env,
570         TTS::DEFAULT_TTS_RATE.c_str(), NAPI_AUTO_LENGTH, &defTTSRate);
571     paramMap["DEFAULT_TTS_RATE"] = defTTSRate;
572 
573     napi_value defTTSSynth = nullptr;
574     napi_create_string_utf8(env,
575         TTS::DEFAULT_TTS_SYNTH.c_str(), NAPI_AUTO_LENGTH, &defTTSSynth);
576     paramMap["DEFAULT_TTS_SYNTH"] = defTTSSynth;
577 
578     napi_value enableTTSPlugins = nullptr;
579     napi_create_string_utf8(env,
580         TTS::ENABLED_TTS_PLUGINS.c_str(), NAPI_AUTO_LENGTH, &enableTTSPlugins);
581     paramMap["ENABLED_TTS_PLUGINS"] = enableTTSPlugins;
582 }
583 
InitWirelessMap(napi_env env,std::map<const char *,napi_value> & paramMap)584 void InitWirelessMap(napi_env env, std::map<const char*, napi_value>& paramMap)
585 {
586     napi_value bluetoothRadio = nullptr;
587     napi_create_string_utf8(env,
588         Wireless::BLUETOOTH_RADIO.c_str(), NAPI_AUTO_LENGTH, &bluetoothRadio);
589     paramMap["BLUETOOTH_RADIO"] = bluetoothRadio;
590 
591     napi_value cellRadio = nullptr;
592     napi_create_string_utf8(env,
593         Wireless::CELL_RADIO.c_str(), NAPI_AUTO_LENGTH, &cellRadio);
594     paramMap["CELL_RADIO"] = cellRadio;
595 
596     napi_value nfcRadio = nullptr;
597     napi_create_string_utf8(env,
598         Wireless::NFC_RADIO.c_str(), NAPI_AUTO_LENGTH, &nfcRadio);
599     paramMap["NFC_RADIO"] = nfcRadio;
600 
601     napi_value airplaneModeRadios = nullptr;
602     napi_create_string_utf8(env,
603         Wireless::AIRPLANE_MODE_RADIOS.c_str(), NAPI_AUTO_LENGTH, &airplaneModeRadios);
604     paramMap["AIRPLANE_MODE_RADIOS"] = airplaneModeRadios;
605 
606     napi_value bluetoothStatus = nullptr;
607     napi_create_string_utf8(env,
608         Wireless::BLUETOOTH_STATUS.c_str(), NAPI_AUTO_LENGTH, &bluetoothStatus);
609     paramMap["BLUETOOTH_STATUS"] = bluetoothStatus;
610 
611     napi_value blDiscoverAbilityStatus = nullptr;
612     napi_create_string_utf8(env,
613         Wireless::BLUETOOTH_DISCOVER_ABILITY_STATUS.c_str(), NAPI_AUTO_LENGTH, &blDiscoverAbilityStatus);
614     paramMap["BLUETOOTH_DISCOVER_ABILITY_STATUS"] = blDiscoverAbilityStatus;
615 
616     napi_value blDiscoverTimeout = nullptr;
617     napi_create_string_utf8(env,
618         Wireless::BLUETOOTH_DISCOVER_TIMEOUT.c_str(), NAPI_AUTO_LENGTH, &blDiscoverTimeout);
619     paramMap["BLUETOOTH_DISCOVER_TIMEOUT"] = blDiscoverTimeout;
620 
621     napi_value wifiDHCPMaxRetryCount = nullptr;
622     napi_create_string_utf8(env,
623         Wireless::WIFI_DHCP_MAX_RETRY_COUNT.c_str(), NAPI_AUTO_LENGTH, &wifiDHCPMaxRetryCount);
624     paramMap["WIFI_DHCP_MAX_RETRY_COUNT"] = wifiDHCPMaxRetryCount;
625 
626     napi_value wifiToMobileDataAwakeTimeout = nullptr;
627     napi_create_string_utf8(env,
628         Wireless::WIFI_TO_MOBILE_DATA_AWAKE_TIMEOUT.c_str(), NAPI_AUTO_LENGTH, &wifiToMobileDataAwakeTimeout);
629     paramMap["WIFI_TO_MOBILE_DATA_AWAKE_TIMEOUT"] = wifiToMobileDataAwakeTimeout;
630 
631     napi_value wifiStatus = nullptr;
632     napi_create_string_utf8(env,
633         Wireless::WIFI_STATUS.c_str(), NAPI_AUTO_LENGTH, &wifiStatus);
634     paramMap["WIFI_STATUS"] = wifiStatus;
635 
636     napi_value wifiWatchDogStatus = nullptr;
637     napi_create_string_utf8(env,
638         Wireless::WIFI_WATCHDOG_STATUS.c_str(), NAPI_AUTO_LENGTH, &wifiWatchDogStatus);
639     paramMap["WIFI_WATCHDOG_STATUS"] = wifiWatchDogStatus;
640 
641     napi_value wifiRadio = nullptr;
642     napi_create_string_utf8(env,
643         Wireless::WIFI_RADIO.c_str(), NAPI_AUTO_LENGTH, &wifiRadio);
644     paramMap["WIFI_RADIO"] = wifiRadio;
645 
646     napi_value ownerLockdownWifiCfg = nullptr;
647     napi_create_string_utf8(env,
648         Wireless::OWNER_LOCKDOWN_WIFI_CFG.c_str(), NAPI_AUTO_LENGTH, &ownerLockdownWifiCfg);
649     paramMap["OWNER_LOCKDOWN_WIFI_CFG"] = ownerLockdownWifiCfg;
650 }
651 
InitConstClassByName(napi_env env,napi_value exports,std::string name)652 void InitConstClassByName(napi_env env, napi_value exports, std::string name)
653 {
654     std::map<const char*, napi_value> propertyMap;
655     if (name == DATE_CLASS_NAME) {
656         InitDateMap(env, propertyMap);
657     } else if (name == DISPLAY_CLASS_NAME) {
658         InitDisplayMap(env, propertyMap);
659     } else if (name == GENERAL_CLASS_NAME) {
660         InitGeneralMap(env, propertyMap);
661     } else if (name == INPUT_CLASS_NAME) {
662         InitInputMap(env, propertyMap);
663     } else if (name == NETWORK_CLASS_NAME) {
664         InitNetworkMap(env, propertyMap);
665     } else if (name == PHONE_CLASS_NAME) {
666         InitPhoneMap(env, propertyMap);
667     } else if (name == SOUND_CLASS_NAME) {
668         InitSoundMap(env, propertyMap);
669     } else if (name == TTS_CLASS_NAME) {
670         InitTTSMap(env, propertyMap);
671     } else if (name == WIRELESS_CLASS_NAME) {
672         InitWirelessMap(env, propertyMap);
673     } else {
674         return;
675     }
676 
677     int i = 0;
678     napi_property_descriptor descriptors[propertyMap.size()];
679     for (auto it : propertyMap) {
680         descriptors[i++] = DECLARE_NAPI_STATIC_PROPERTY(it.first, it.second);
681     }
682 
683     napi_value result = nullptr;
684     napi_define_class(env, name.c_str(), NAPI_AUTO_LENGTH, ClassConstructor, nullptr,
685         sizeof(descriptors) / sizeof(*descriptors), descriptors, &result);
686     napi_set_named_property(env, exports, name.c_str(), result);
687 }
688 
InitNapiClass(napi_env env,napi_value exports)689 napi_value InitNapiClass(napi_env env, napi_value exports)
690 {
691     SETTING_LOG_INFO("%{public}s is called", __FUNCTION__);
692     InitConstClassByName(env, exports, DATE_CLASS_NAME);
693     InitConstClassByName(env, exports, DISPLAY_CLASS_NAME);
694     InitConstClassByName(env, exports, GENERAL_CLASS_NAME);
695     InitConstClassByName(env, exports, INPUT_CLASS_NAME);
696     InitConstClassByName(env, exports, NETWORK_CLASS_NAME);
697     InitConstClassByName(env, exports, PHONE_CLASS_NAME);
698     InitConstClassByName(env, exports, SOUND_CLASS_NAME);
699     InitConstClassByName(env, exports, TTS_CLASS_NAME);
700     InitConstClassByName(env, exports, WIRELESS_CLASS_NAME);
701     SETTING_LOG_INFO("%{public}s is end", __FUNCTION__);
702     return exports;
703 }
704 
705 } // Settings
706 } // OHOS