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