2 // Open Service Platform
3 // Copyright (c) 2012 Samsung Electronics Co., Ltd.
5 // Licensed under the Apache License, Version 2.0 (the License);
6 // you may not use this file except in compliance with the License.
7 // You may obtain a copy of the License at
9 // http://www.apache.org/licenses/LICENSE-2.0
11 // Unless required by applicable law or agreed to in writing, software
12 // distributed under the License is distributed on an "AS IS" BASIS,
13 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 // See the License for the specific language governing permissions and
15 // limitations under the License.
19 * @file FSys_SettingManager.cpp
20 * @brief This is the implementation file for _SettingManager class.
24 #include <unique_ptr.h>
27 #include <unicode/ustring.h>
28 #include <unicode/uloc.h>
29 #include <unicode/utypes.h>
30 #include <unicode/udat.h>
31 #include <unicode/udatpg.h>
32 #include <unicode/locid.h>
34 #include <telephony_network.h>
36 #include <tethering.h>
40 #include <FBaseColIMapEnumerator.h>
41 #include <FBaseInteger.h>
42 #include <FBaseRtIEventArg.h>
43 #include <FBaseSysLog.h>
44 #include <FBaseUtilStringUtil.h>
45 #include <FLclLocale.h>
46 #include <FLclDateTimeFormatter.h>
48 #include <FSysIBatteryEventListener.h>
49 #include <FSysIChargingEventListener.h>
50 #include <FSysIDeviceEventListener.h>
51 #include <FSysIScreenEventListener.h>
52 #include <FSysSystemInfo.h>
54 #include <FApp_AppInfo.h>
55 #include <FBase_NativeError.h>
56 #include <FBase_StringConverter.h>
57 #include <FBaseColAllElementsDeleter.h>
58 #include <FIo_AppServiceIpcMessages.h>
59 #include <FIo_RegistryImpl.h>
60 #include <FLcl_LocaleImpl.h>
61 #include <FLcl_LocaleManagerImpl.h>
62 #include <FSys_SettingManager.h>
63 #include <FSys_SystemInfoImpl.h>
65 using namespace Tizen::App;
66 using namespace Tizen::Base;
67 using namespace Tizen::Base::Collection;
68 using namespace Tizen::Base::Runtime;
69 using namespace Tizen::Base::Utility;
70 using namespace Tizen::Io;
71 using namespace Tizen::Locales;
73 namespace Tizen { namespace System
77 static const wchar_t* _BATTERY_FORMAT_PERCENTAGE = L"http://tizen.org/setting/battery.format.percentage";
79 static const wchar_t* _ENABLE_MOTION = L"EnableMotion";
82 static const wchar_t* _FONT_SIZE = L"http://tizen.org/setting/font.size";
83 static const wchar_t* _FONT_SIZE_GIANT = L"Giant";
84 static const wchar_t* _FONT_SIZE_HUGE = L"Huge";
85 static const wchar_t* _FONT_SIZE_LARGE = L"Large";
86 static const wchar_t* _FONT_SIZE_MEDIUM = L"Medium";
87 static const wchar_t* _FONT_SIZE_SMALL = L"Small";
88 static const wchar_t* _FONT_SIZE_GIANT_LOWERCASE = L"giant";
89 static const wchar_t* _FONT_SIZE_HUGE_LOWERCASE = L"huge";
90 static const wchar_t* _FONT_SIZE_LARGE_LOWERCASE = L"large";
91 static const wchar_t* _FONT_SIZE_MEDIUM_LOWERCASE = L"medium";
92 static const wchar_t* _FONT_SIZE_SMALL_LOWERCASE = L"small";
93 static const int _FONT_SIZE_GIANT_VCONF = 4;
94 static const int _FONT_SIZE_HUGE_VCONF = 3;
95 static const int _FONT_SIZE_LARGE_VCONF = 2;
96 static const int _FONT_SIZE_MEDIUM_VCONF = 1;
97 static const int _FONT_SIZE_SMALL_VCONF = 0;
98 static const wchar_t* _FONTSIZE = L"FontSize";
99 static const wchar_t* _FONTTYPE = L"FontType";
100 static const wchar_t* _FONT_TYPE = L"http://tizen.org/setting/font.type";
101 static const wchar_t* _GPS_ENABLED = L"GPSEnabled";
102 static const wchar_t* _HOUR_FORMAT_SELECTED = L"24HourFormatSelected";
106 static const wchar_t* _LOCALE_COUNTRY = L"http://tizen.org/setting/locale.country";
107 static const wchar_t* _LOCALE_COUNTRY_LATIN_AMERICA = L"419";
108 static const wchar_t* _COUNTRY = L"Country";
111 static const wchar_t* _LOCALE_DATE_FORMAT = L"http://tizen.org/setting/locale.date.format";
112 static const wchar_t* _LOCALE_DATETIME_FORMAT = L"http://tizen.org/setting/locale.date_time.format";
113 static const wchar_t* _LOCALE_TIME_FORMAT = L"http://tizen.org/setting/locale.time.format";
114 static const wchar_t* _LOCALE_TIME_FORMAT_24HOUR = L"http://tizen.org/setting/locale.time.format.24hour";
115 static const wchar_t* _DATE_FORMAT = L"DateFormat";
116 static const wchar_t* _TIME_FORMAT = L"TimeFormat";
119 static const wchar_t* _LOCALE_LANGUAGE = L"http://tizen.org/setting/locale.language";
120 static const wchar_t* _LANGUAGE = L"Language";
123 static const wchar_t* _LOCALE_TIMEZONE = L"http://tizen.org/setting/locale.time_zone";
124 static const wchar_t* _LOCALE_UPDATE_AUTO= L"http://tizen.org/setting/locale.update.auto";
125 static const char* _LOCALE_TIMEZONE_ROOT_PATH = "/usr/share/zoneinfo/";
126 static const char* _LOCALE_TIMEZONE_LINK = "/opt/etc/localtime";
127 static const int _LOCALE_TIMEZONE_ROOT_PATH_LENGTH = 20;
128 static const wchar_t* _LOCALE_WEEK_FORMAT_FIRSTDAY = L"http://tizen.org/setting/locale.week.format.firstday";
129 static const wchar_t* _LOCALE_WEEK_FORMAT_FIRSTDAY_MONDAY = L"Monday";
130 static const wchar_t* _LOCALE_WEEK_FORMAT_FIRSTDAY_SUNDAY = L"Sunday";
131 static const int _LOCALE_WEEK_FORMAT_VCONF_SUNDAY = 0;
132 static const int _LOCALE_WEEK_FORMAT_VCONF_MONDAY = 1;
133 static const wchar_t* _DATE_TIME_FORMAT = L"DateTimeFormat";
135 static const wchar_t* _LOCALE_DATE = L"http://tizen.org/setting/locale.date";
136 static const wchar_t* _LOCALE_TIME = L"http://tizen.org/setting/locale.time";
137 static const wchar_t* _LOCALE_DATETIME = L"http://tizen.org/setting/locale.date_time";
140 static const wchar_t* _LOCATION_GPS = L"http://tizen.org/setting/location.gps";
141 static const wchar_t* _LOCATION_GPS_ADVANCED = L"http://tizen.org/setting/location.gps.advanced";
142 static const wchar_t* _LOCATION_WPS = L"http://tizen.org/setting/location.wps";
143 static const wchar_t* _MEDIA_SOUND_VOLUME = L"MediaSoundVolume";
144 static const wchar_t* _WPS_ENABLED = L"WPSEnabled";
147 static const wchar_t* _NETWORK_FLIGHTMODE = L"http://tizen.org/setting/network.flight_mode";
148 static const wchar_t* _FLIGHT_MODE_ENABLED = L"FlightModeEnabled";
151 static const wchar_t* _NETWORK_TELEPHONY_MODE = L"http://tizen.org/setting/network.telephony.mode";
152 String _tmpNetworkTelephonyMode = L"UMTS";
153 static const wchar_t* _NETWORK_TELEPHONY_PACKETSERVICE = L"http://tizen.org/setting/network.telephony.packet_service";
154 static const wchar_t* _NETWORK_TELEPHONY_PROVIDER = L"http://tizen.org/setting/network.telephony.provider";
155 String _tmpNetworkTelephonyProvider = L"Tizen";
156 static const wchar_t* _NETWORK_TELEPHONY_ROAMING = L"http://tizen.org/setting/network.telephony.roaming";
157 static const wchar_t* _DATA_ROAMING_ENABLED = L"DataRoamingEnabled";
158 static const wchar_t* _SYSTEM_NETWORK_TELEPHONY = L"http://tizen.org/feature/network.telephony";
161 static const wchar_t* _NETWORK_WIFI = L"http://tizen.org/setting/network.wifi";
162 static const wchar_t* _NETWORK_WIFI_NOTIFICATION = L"http://tizen.org/setting/network.wifi.notification";
163 static const wchar_t* _NETWORK_WIFI_TETHERING = L"http://tizen.org/setting/network.wifi.tethering";
164 static const wchar_t* _NETWORK_WIFI_TETHERING_HIDE = L"http://tizen.org/setting/network.wifi.tethering.hide";
165 static const wchar_t* _NETWORK_WIFI_TETHERING_SECURITY = L"http://tizen.org/setting/network.wifi.tethering.security";
166 static const wchar_t* _NETWORK_WIFI_TETHERING_SECURITY_PASSWORD = L"http://tizen.org/setting/network.wifi.tethering.security.password";
167 static const wchar_t* _NETWORK_WIFI_DIRECT = L"http://tizen.org/setting/network.wifi.direct";
168 static const wchar_t* _SYSTEM_NETWORK_WIFI_DIRECT = L"http://tizen.org/feature/network.wifi.direct";
169 static const wchar_t* _SYSTEM_NETWORK_WIFI = L"http://tizen.org/feature/network.wifi";
172 static const wchar_t* _NETWORK_BLUETOOTH = L"http://tizen.org/setting/network.bluetooth";
173 static const wchar_t* _NETWORK_BLUETOOTH_TETHERING = L"http://tizen.org/setting/network.bluetooth.tethering";
174 static const wchar_t* _SYSTEM_NETWORK_BLUETOOTH = L"http://tizen.org/feature/network.bluetooth";
177 static const wchar_t* _NOTIFICATION_SOUND_VOLUME = L"NotificationSoundVolume";
178 static const wchar_t* _PACKET_SERVICE_ALLOWED = L"PacketServiceAllowed";
179 static const wchar_t* _RINGTONE = L"Ringtone";
180 static const wchar_t* _RINGTONE_SOUND_VOLUME = L"RingtoneSoundVolume";
181 static const wchar_t* _SILENT_MODE = L"SilentMode";
182 static const wchar_t* _SOUND_MEDIA_VOLUME = L"http://tizen.org/setting/sound.media.volume";
183 static const wchar_t* _SOUND_NOTIFICATION_VOLUME = L"http://tizen.org/setting/sound.notification.volume";
184 static const wchar_t* _SOUND_RINGTONE = L"http://tizen.org/setting/sound.ringtone";
185 static const wchar_t* _SOUND_RINGTONE_VOLUME = L"http://tizen.org/setting/sound.ringtone.volume";
186 static const wchar_t* _SOUND_SILENTMODE = L"http://tizen.org/setting/sound.silent_mode";
187 static const wchar_t* _SOUND_SYSTEM_VOLUME = L"http://tizen.org/setting/sound.system.volume";
188 static const wchar_t* _SOUND_TOUCH = L"http://tizen.org/setting/sound.touch";
189 static const wchar_t* _SOUND_LOCK = L"http://tizen.org/setting/sound.lock";
192 static const wchar_t* _SCREEN_WALLPAPER = L"http://tizen.org/setting/screen.wallpaper";
193 static const wchar_t* _SCREEN_WALLPAPER_LOCK = L"http://tizen.org/setting/screen.wallpaper.lock";
194 static const wchar_t* _WALLPAPER = L"Wallpaper";
195 static const wchar_t* _SCREEN_BRIGHTNESS = L"http://tizen.org/setting/screen.brightness";
196 static const wchar_t* _SCREEN_BRIGHTNESS_AUTO = L"http://tizen.org/setting/screen.brightness.auto";
197 static const wchar_t* _SCREEN_BACKLIGHT_TIME = L"http://tizen.org/setting/screen.backlight.time";
198 static const wchar_t* _SCREEN_ROTATION_AUTO = L"http://tizen.org/setting/screen.rotation.auto";
199 static const wchar_t* _SCREEN_MODE = L"http://tizen.org/setting/screen.mode";
200 static const wchar_t* _SCREEN_MODE_DYNAMIC = L"Dynamic";
201 static const wchar_t* _SCREEN_MODE_STANDARD = L"Standard";
202 static const wchar_t* _SCREEN_MODE_NATURAL = L"Natural";
203 static const wchar_t* _SCREEN_MODE_MOVIE = L"Movie";
204 static const char* _SCREEN_MODE_VCONFKEY = VCONFKEY_SETAPPL_PREFIX"/screenmode/selected_name";
207 static const wchar_t* _STORAGE_DIRECTORY_WAP_DOWNLOAD = L"http://tizen.org/setting/storage.directory.wap.download";
208 String _tmpStorageDirectoryWapDownload = L"";
209 static const wchar_t* _STORAGE_DIRECTORY_BLUETOOTH_DOWNLOAD = L"http://tizen.org/setting/storage.directory.bluetooth.download";
210 String _tmpStorageDirectoryBluetoothDownload = L"";
211 static const wchar_t* _STORAGE_DIRECTORY_CAMERA_RECORD = L"http://tizen.org/setting/storage.directory.camera.record";
212 String _tmpStorageDirectoryCameraRecord = L"";
213 static const wchar_t* _STORAGE_DIRECTORY_VOICE_RECORD = L"http://tizen.org/setting/storage.directory.voice.record";
214 String _tmpStorageDirectoryVoiceRecord = L"";
215 static const wchar_t* _STORAGE_DIRECTORY_RADIO_BROADCAST = L"http://tizen.org/setting/storage.directory.radio.broadcast";
216 String _tmpStorageDirectoryRadioBroadcast = L"";
217 static const wchar_t* _STORAGE_DIRECTORY_VIDEO_BROADCAST = L"http://tizen.org/setting/storage.directory.video.broadcast";
218 String _tmpStorageDirectoryVideoBroadcast = L"";
219 static const wchar_t* _SYSTEM_SOUND_VOLUME = L"SystemSoundVolume";
222 static const wchar_t* _DEVICE_NAME = L"http://tizen.org/setting/device_name";
225 static const wchar_t* _TOUCH_VIBRATION_LEVEL = L"TouchVibrationLevel";
226 static const wchar_t* _VIBRATOR = L"http://tizen.org/setting/vibrator";
227 static const wchar_t* _VIBRATOR_LEVEL = L"http://tizen.org/setting/vibrator.level";
229 static const wchar_t* _VIBRATOR_LEVEL_NOTIFICATION = L"http://tizen.org/setting/vibrator.level.notification";
232 static const wchar_t* _USBMODE = L"UsbMode";
233 static const wchar_t* _USBMODE_MTP = L"MTP";
234 static const wchar_t* _USB_TETHERING = L"http://tizen.org/setting/usb.tethering";
237 static const wchar_t* _WEB_APPLICATION_COOKIE_SHARE = L"http://tizen.org/setting/web.application.cookie.share";
238 bool _tmpWebApplicationCookieShare = false;
241 static const wchar_t* _MOTION_UI = L"http://tizen.org/setting/motion.ui";
244 static const wchar_t* _CONTACT_ORDER_FIRSTNAME = L"http://tizen.org/setting/contacts.order.firstname";
245 static const int _CONTACT_ORDER_FIRSTNAME_FIRSTLAST = 0;
246 static const int _CONTACT_ORDER_FIRSTNAME_LASTFIRST = 1;
249 static const wchar_t* _DEVELOPER_USBDEBUGGING = L"http://tizen.org/setting/developer.usb_debugging";
251 static const int _MAX_COUNTRY_LENTH = 2;
252 static const int _LANGUAGE_START_INDEX = 0;
253 static const int _MAX_LANGUAGE_LENTH = 2;
254 static const int _TOUCH_FEEDBACK_RESOLUTION = 20;
256 static const int _OSP_USB_DEFAULT_MODE = 0;
259 static const char* _ICU_DATE_FORMAT = "yMMMMEEEEd";
260 static const char* _ICU_TIME_24_FORMAT = "Hms";
261 static const char* _ICU_TIME_12_FORMAT = "hms";
263 static const int _DEVELOPER_USBDEBUGGING_ON = 1;
264 static const int _DEVELOPER_USBDEBUGGING_OFF = 0;
267 static const char* _WIFI_DIRECT_LIBRARY_NAME = "libosp-wifi.so";
268 static const char* _BLUETOOTH_LIBRARY_NAME = "libosp-bluetooth.so";
270 static result (*pWifiDirectDeviceImpl_Activate)(void) = null;
271 static result (*pWifiDirectDeviceImpl_Deactivate)(void) = null;
272 static bool (*pWifiDirectDeviceImpl_IsActivated)(void) = null;
273 static result (*pWifiManagerImpl_Activate)(void) = null;
274 static result (*pWifiManagerImpl_Deactivate)(void) = null;
275 static result (*pBluetoothManagerImpl_Activate)(void) = null;
276 static result (*pBluetoothManagerImpl_Deactivate)(void) = null;
278 _SettingManager* _SettingManager::__pSettingManager = null;
280 class _SettingEventArg : public IEventArg
286 class _SettingEvent : public Event
289 virtual void FireImpl(IEventListener& listener, const IEventArg& arg)
291 ISettingEventListener* pListener = dynamic_cast<ISettingEventListener*> (&listener);
292 const _SettingEventArg* pArg = dynamic_cast<const _SettingEventArg*>(&arg);
294 if(pListener == null || pArg == null)
296 SysLogException(NID_SYS, E_SYSTEM, "It is failed to get listner or arguemnt");
300 String value =pArg->KeyName;
301 pListener->OnSettingChanged(value);
305 class _SettingAsyncEventArg : public IEventArg
312 class _SettingAsyncEvent : public Event
315 virtual void FireImpl(IEventListener& listener, const IEventArg& arg)
317 ISettingInfoSetValueAsyncResultListener* pListener = dynamic_cast<ISettingInfoSetValueAsyncResultListener*> (&listener);
318 const _SettingAsyncEventArg* pArg = dynamic_cast<const _SettingAsyncEventArg*>(&arg);
320 if(pListener == null || pArg == null)
322 SysLogException(NID_SYS, E_SYSTEM, "It is failed to get listner or arguemnt");
326 result r = pArg->errorCode;
327 pListener->OnResultReceivedForSetValueAsync(pArg->Key, r);
328 RemoveListener(listener);
334 _SettingManager::InitSettingManager(void)
336 static _SettingManager settingManager;
337 __pSettingManager = &settingManager;
341 _SettingManager::GetInstance(void)
343 static pthread_once_t once_block = PTHREAD_ONCE_INIT;
344 if(__pSettingManager == null)
346 pthread_once(&once_block, InitSettingManager);
348 return __pSettingManager;
351 _SettingManager::_SettingManager()
352 : __pSettingEventListener(null)
353 , __pSettingEvent(null)
355 , __registeredSettingEvents(false)
357 , __pSettingAsyncEvent(null)
358 , __pSettingEventForInternal(null)
359 , __listenerInternalCount(0)
360 , __registeredSettingEventsForInternal(false)
361 , __pWifiDllHandle(null)
363 __pSettingEvent = new (std::nothrow) _SettingEvent();
364 __pSettingEventForInternal = new (std::nothrow) _SettingEvent();
366 tethering_create(&__tetheringHandle);
369 _SettingManager::~_SettingManager()
372 if(__registeredSettingEvents == true)
375 StopSettingEventListen();
378 delete __pSettingEvent;
380 if(__tetheringHandle != null)
382 tethering_destroy(__tetheringHandle);
385 if(__pSettingAsyncEvent != null)
387 delete __pSettingAsyncEvent;
389 __pSettingManager = null;
393 _SettingManager::GetValue(const String& key, String& value)
395 result r = E_SUCCESS;
400 char* pCountry = null;
403 ret = runtime_info_get_value_string(RUNTIME_INFO_KEY_REGION, &pCountry);
404 SysTryReturnResult(NID_SYS, ret == RUNTIME_INFO_ERROR_NONE && pCountry != null, E_SYSTEM, "[E_SYSTEM] runtime_info_get_value_string RUNTIME_INFO_KEY_LANGUAGE failed");
406 Tizen::Locales::Locale ospLoc = _LocaleImpl(pCountry).GetOspLocale();
407 value = ospLoc.GetCountryCodeString();
410 else if (key == _LOCALE_COUNTRY)
413 char* pCountry = null;
416 ret = runtime_info_get_value_string(RUNTIME_INFO_KEY_REGION, &pCountry);
417 SysTryReturnResult(NID_SYS, ret == RUNTIME_INFO_ERROR_NONE && pCountry != null, E_SYSTEM, "[E_SYSTEM] runtime_info_get_value_string RUNTIME_INFO_KEY_LANGUAGE failed");
419 Tizen::Locales::Locale ospLoc = _LocaleImpl(pCountry).GetOspLocale();
420 value = ospLoc.GetLocaleCodeString();
423 else if (key == _DEVICE_NAME)
425 std::unique_ptr<char> pDeviceName (vconf_get_str(VCONFKEY_SETAPPL_DEVICE_NAME_STR));
427 r = StringUtil::Utf8ToString(pDeviceName.get(), deviceName);
428 SysTryReturn(NID_SYS, !IsFailed(r), E_SYSTEM, r, "[%s] StringUtil::Utf8ToString failed", GetErrorMessage(r));
432 else if (key == _LOCALE_DATE)
434 DateTime currentTime;
435 SystemTime::GetCurrentTime(TIME_MODE_WALL, currentTime);
436 String currentFormat;
437 GetValue(_LOCALE_DATE_FORMAT, currentFormat);
439 std::unique_ptr<DateTimeFormatter> pFormatter(DateTimeFormatter::CreateTimeFormatterN());
440 SysTryReturnResult(NID_SYS, pFormatter != null, E_OUT_OF_MEMORY, "Failed to create DateTimeFomatter");
441 pFormatter->ApplyPattern(currentFormat);
443 pFormatter->Format(currentTime, value);
445 else if (key == _LANGUAGE)
448 char* pLanguage = null;
450 LanguageCode langCode = LANGUAGE_ENG;
452 ret = runtime_info_get_value_string(RUNTIME_INFO_KEY_LANGUAGE, &pLanguage);
454 SysTryReturnResult(NID_SYS, ret == RUNTIME_INFO_ERROR_NONE && pLanguage != null, E_SYSTEM, "[E_SYSTEM] runtime_info_get_value_string RUNTIME_INFO_KEY_LANGUAGE failed");
456 r = StringUtil::Utf8ToString(pLanguage, langValue);
458 SysTryReturn(NID_SYS, !IsFailed(r), E_SYSTEM, r, "[%s] StringUtil::Utf8ToString failed", GetErrorMessage(r));
460 if (langValue.GetLength() > 2)
462 langValue.SubString(0, 2, langValue);
465 langCode = Tizen::Locales::Locale::TwoLetterLanguageCodeStringToLanguageCode(langValue);
466 langValue = Tizen::Locales::Locale::LanguageCodeToString(langCode);
467 SysTryReturnResult(NID_SYS, langValue.GetLength() == 3, E_SYSTEM, "[E_SYSTEM] _LANGUAGEcode transform failed. value is \"%ls\"", langValue.GetPointer());
471 else if (key == _LOCALE_LANGUAGE)
474 char* pCountry = null;
477 LanguageCode langCode = LANGUAGE_ENG;
479 ret = runtime_info_get_value_string(RUNTIME_INFO_KEY_LANGUAGE, &pCountry);
480 SysTryReturnResult(NID_SYS, ret == RUNTIME_INFO_ERROR_NONE && pCountry != null, E_SYSTEM, "[E_SYSTEM] runtime_info_get_value_string RUNTIME_INFO_KEY_LANGUAGE failed");
482 r = StringUtil::Utf8ToString(pCountry, countryValue);
483 SysTryReturn(NID_SYS, !IsFailed(r), E_SYSTEM, r, "[%s] StringUtil::Utf8ToString failed", GetErrorMessage(r));
487 countryValue.SubString(0, 2, langValue);
488 countryValue.SubString(3, 2, countryValue);
490 langCode = Tizen::Locales::Locale::TwoLetterLanguageCodeStringToLanguageCode(langValue);
491 langValue = Tizen::Locales::Locale::LanguageCodeToString(langCode);
492 SysTryReturnResult(NID_SYS, langValue.GetLength() == 3, E_SYSTEM, "[E_SYSTEM] _LANGUAGEcode transform failed. value is \"%ls\"", langValue.GetPointer());
494 value.Append(langValue);
496 value.Append(countryValue);
498 else if (key == _DATE_FORMAT || key == _LOCALE_DATE_FORMAT)
500 char* pDateFormat = __settingIcu.GetDateTimeFormatN(_ICU_DATE_FORMAT);
501 SysTryReturnResult(NID_SYS, pDateFormat != null, E_SYSTEM, "Failed to get date format");
502 r = StringUtil::Utf8ToString(pDateFormat, value);
505 else if (key == _LOCALE_DATETIME)
507 DateTime currentTime;
508 SystemTime::GetCurrentTime(TIME_MODE_WALL, currentTime);
509 String currentFormat;
510 GetValue(_LOCALE_DATETIME_FORMAT, currentFormat);
512 std::unique_ptr<DateTimeFormatter> pFormatter(DateTimeFormatter::CreateTimeFormatterN());
513 pFormatter->ApplyPattern(currentFormat);
515 pFormatter->Format(currentTime, value);
517 else if (key == _DATE_TIME_FORMAT || key == _LOCALE_DATETIME_FORMAT)
519 char* pDateFormat = __settingIcu.GetDateTimeFormatN(_ICU_DATE_FORMAT);
520 char* pTimeFormat = null;
522 bool selected24Format = false;
524 SysLog(NID_SYS, "Date Time format");
525 SysTryReturnResult(NID_SYS, pDateFormat != null, E_SYSTEM, "Failed to get date format");
527 r = GetValue(_HOUR_FORMAT_SELECTED, selected24Format);
531 SysLogException(NID_SYS, E_SYSTEM, "Failed to get 24 hour select state");
534 SysLog(NID_SYS, "24hour format, %d", selected24Format);
535 SysLog(NID_SYS, "%s", pDateFormat);
537 if (selected24Format == true)
539 pTimeFormat = __settingIcu.GetDateTimeFormatN(_ICU_TIME_24_FORMAT);
543 pTimeFormat = __settingIcu.GetDateTimeFormatN(_ICU_TIME_12_FORMAT);
546 if(pTimeFormat == null)
549 SysLogException(NID_SYS, E_SYSTEM, "Failed to get date time format");
553 r = StringUtil::Utf8ToString(pDateFormat, value);
554 r = StringUtil::Utf8ToString(pTimeFormat, timeFormat);
557 value.Append(timeFormat);
561 else if (key == _LOCALE_TIME)
563 DateTime currentTime;
564 SystemTime::GetCurrentTime(TIME_MODE_WALL, currentTime);
565 String currentFormat;
566 GetValue(_LOCALE_TIME_FORMAT, currentFormat);
568 std::unique_ptr<DateTimeFormatter> pFormatter(DateTimeFormatter::CreateTimeFormatterN());
569 pFormatter->ApplyPattern(currentFormat);
571 pFormatter->Format(currentTime, value);
573 else if (key == _LOCALE_TIMEZONE)
575 char pTZPath[256] = {0,};
576 ssize_t nLen = readlink(_LOCALE_TIMEZONE_LINK, pTZPath, sizeof(pTZPath)-1);
579 pTZPath[nLen] = '\0';
583 SysLogException(NID_SYS, E_SYSTEM, "Failed to get timezone");
586 value.Append(&pTZPath[_LOCALE_TIMEZONE_ROOT_PATH_LENGTH]);
588 else if (key == _LOCALE_WEEK_FORMAT_FIRSTDAY)
593 ret = vconf_get_int(VCONFKEY_SETAPPL_WEEKOFDAY_FORMAT_INT, &firstDay);
594 SysTryReturnResult(NID_SYS, ret == 0, E_SYSTEM, "Failed to get on VCONFKEY_SETAPPL_WEEKOFDAY_FORMAT_INT vconf");
596 if (firstDay == _LOCALE_WEEK_FORMAT_VCONF_SUNDAY)
598 value = _LOCALE_WEEK_FORMAT_FIRSTDAY_SUNDAY;
600 else if (firstDay == _LOCALE_WEEK_FORMAT_VCONF_MONDAY)
602 value = _LOCALE_WEEK_FORMAT_FIRSTDAY_MONDAY;
609 else if (key == _NETWORK_TELEPHONY_MODE)
611 value = _tmpNetworkTelephonyMode;
613 else if (key == _NETWORK_TELEPHONY_PROVIDER)
615 value = _tmpNetworkTelephonyProvider;
617 else if (key == _NETWORK_WIFI_TETHERING_SECURITY_PASSWORD)
620 char* password = null;
621 bool supported = false;
622 _SystemInfoImpl::GetSysInfo(_SYSTEM_NETWORK_WIFI, supported);
623 SysTryReturnResult(NID_SYS, supported == true, E_UNSUPPORTED_OPERATION, "Current device does not support Wi-Fi feature.");
625 SysTryReturnResult(NID_SYS, __tetheringHandle != null, E_UNSUPPORTED_OPERATION, "Current device does not support tethering feature");
626 ret = tethering_wifi_get_passphrase(__tetheringHandle, &password);
627 SysTryReturnResult(NID_SYS, ret == TETHERING_ERROR_NONE, E_SYSTEM, "It is failed to get password");
630 value.Append(password);
633 else if (key == _SCREEN_MODE)
635 std::unique_ptr<char> curmode(vconf_get_str(_SCREEN_MODE_VCONFKEY));
637 value.Append(curmode.get());
639 else if (key == _STORAGE_DIRECTORY_WAP_DOWNLOAD)
641 value = _tmpStorageDirectoryWapDownload;
643 else if (key == _STORAGE_DIRECTORY_BLUETOOTH_DOWNLOAD)
645 value = _tmpStorageDirectoryBluetoothDownload;
647 else if (key == _STORAGE_DIRECTORY_CAMERA_RECORD)
649 value = _tmpStorageDirectoryCameraRecord;
651 else if (key == _STORAGE_DIRECTORY_VOICE_RECORD)
653 value = _tmpStorageDirectoryVoiceRecord;
655 else if (key == _STORAGE_DIRECTORY_RADIO_BROADCAST)
657 value = _tmpStorageDirectoryRadioBroadcast;
659 else if (key == _STORAGE_DIRECTORY_VIDEO_BROADCAST)
661 value = _tmpStorageDirectoryVideoBroadcast;
663 else if (key == _FONTTYPE || key == _FONT_TYPE)
665 char* pFontType = null;
667 res = system_settings_get_value_string(SYSTEM_SETTINGS_KEY_FONT_TYPE, &pFontType);
668 SysTryReturnResult(NID_SYS, res == SYSTEM_SETTINGS_ERROR_NONE, E_SYSTEM, "Failed to get font type");
669 r = StringUtil::Utf8ToString(pFontType, value);
670 SysTryReturn(NID_SYS, r == E_SUCCESS, E_SYSTEM, r, "[%s] StringUtil::Utf8ToString failed", GetErrorMessage(r));
673 else if (key == _FONT_SIZE || key == _FONTSIZE)
677 res = system_settings_get_value_int(SYSTEM_SETTINGS_KEY_FONT_SIZE, &fontSize);
678 SysTryReturnResult(NID_SYS, res == SYSTEM_SETTINGS_ERROR_NONE, E_SYSTEM, "Failed to get font size");
682 case _FONT_SIZE_GIANT_VCONF:
683 if(!(_AppInfo::GetApiVersion() == _API_VERSION_2_0 && _AppInfo::IsOspCompat()))
685 value.Append(_FONT_SIZE_GIANT);
688 case _FONT_SIZE_HUGE_VCONF:
689 if(!(_AppInfo::GetApiVersion() == _API_VERSION_2_0 && _AppInfo::IsOspCompat()))
691 value.Append(_FONT_SIZE_HUGE);
694 case _FONT_SIZE_LARGE_VCONF:
695 value.Append(_FONT_SIZE_LARGE);
697 case _FONT_SIZE_MEDIUM_VCONF:
698 value.Append(_FONT_SIZE_MEDIUM);
700 case _FONT_SIZE_SMALL_VCONF:
701 value.Append(_FONT_SIZE_SMALL);
707 if(!(_AppInfo::GetApiVersion() == _API_VERSION_2_0 && _AppInfo::IsOspCompat()))
712 else if (key == _RINGTONE || key == _SOUND_RINGTONE)
714 char* pRingtone = null;
716 res = system_settings_get_value_string(SYSTEM_SETTINGS_KEY_INCOMING_CALL_RINGTONE, &pRingtone);
717 SysTryReturnResult(NID_SYS, res == SYSTEM_SETTINGS_ERROR_NONE, E_SYSTEM, "Failed to get ringtone");
719 r = StringUtil::Utf8ToString(pRingtone, value);
720 SysTryReturn(NID_SYS, r == E_SUCCESS, E_SYSTEM, r, "[%s] StringUtil::Utf8ToString failed", GetErrorMessage(r));
725 else if (key == _TIME_FORMAT || key == _LOCALE_TIME_FORMAT)
727 char* pTimeFormat = null;
728 bool selected24Format = false;
730 r = GetValue(_HOUR_FORMAT_SELECTED, selected24Format);
732 if (selected24Format == true)
734 pTimeFormat = __settingIcu.GetDateTimeFormatN(_ICU_TIME_24_FORMAT);
738 pTimeFormat = __settingIcu.GetDateTimeFormatN(_ICU_TIME_12_FORMAT);
740 SysTryReturnResult(NID_SYS, pTimeFormat != null, E_SYSTEM, "Failed to get time format");
741 r = StringUtil::Utf8ToString(pTimeFormat, value);
744 else if (key == _WALLPAPER || key == _SCREEN_WALLPAPER)
747 char* pWallpaper = null;
749 ret = system_settings_get_value_string(SYSTEM_SETTINGS_KEY_WALLPAPER_HOME_SCREEN, &pWallpaper);
750 SysTryReturn(NID_SYS, ret == 0, E_SYSTEM, E_SYSTEM, "[E_SYSTEM] Failed to get wallpaper of home screen");
752 r = StringUtil::Utf8ToString(pWallpaper, value);
753 SysTryReturn(NID_SYS, r == E_SUCCESS, E_SYSTEM, r, "[%s] StringUtil::Utf8ToString failed", GetErrorMessage(r));
757 else if (key == _SCREEN_WALLPAPER_LOCK)
760 char* pWallpaper = null;
762 ret = system_settings_get_value_string(SYSTEM_SETTINGS_KEY_WALLPAPER_LOCK_SCREEN, &pWallpaper);
763 SysTryReturn(NID_SYS, ret == 0, E_SYSTEM, E_SYSTEM, "[E_SYSTEM] Failed to get wallpaper of lock screen");
765 r = StringUtil::Utf8ToString(pWallpaper, value);
766 SysTryReturn(NID_SYS, r == E_SUCCESS, E_SYSTEM, r, "[%s] StringUtil::Utf8ToString failed", GetErrorMessage(r));
770 else if (key == _USBMODE)
772 value = _USBMODE_MTP;
782 _SettingManager::GetValue(const String& key, int& value)
784 result r = E_SUCCESS;
785 if (key == _TOUCH_VIBRATION_LEVEL || key == _VIBRATOR_LEVEL)
789 ret = runtime_info_get_value_int(RUNTIME_INFO_KEY_VIBRATION_LEVEL_HAPTIC_FEEDBACK, &vibLevel);
790 SysTryReturnResult(NID_SYS, ret == RUNTIME_INFO_ERROR_NONE, E_SYSTEM, "runtime_info_get_value_int(RUNTIME_INFO_KEY_VIBRATION_LEVEL_HAPTIC_FEEDBACK) is Failed");
792 value = vibLevel * _TOUCH_FEEDBACK_RESOLUTION;
794 else if (key == _MEDIA_SOUND_VOLUME || key == _SOUND_MEDIA_VOLUME)
799 int ret = sound_manager_get_max_volume(SOUND_TYPE_MEDIA, &maxVolume);
800 SysTryReturnResult(NID_SYS, ret == SOUND_MANAGER_ERROR_NONE, E_SYSTEM, "sound_manager_get_max_volume Failed");
802 ret = sound_manager_get_volume(SOUND_TYPE_MEDIA, &volume);
803 SysTryReturnResult(NID_SYS, ret == SOUND_MANAGER_ERROR_NONE, E_SYSTEM, "sound_manager_get_volume Failed");
807 else if (key == _NOTIFICATION_SOUND_VOLUME || key == _SOUND_NOTIFICATION_VOLUME)
812 int ret = sound_manager_get_max_volume(SOUND_TYPE_NOTIFICATION, &maxVolume);
813 SysTryReturnResult(NID_SYS, ret == SOUND_MANAGER_ERROR_NONE, E_SYSTEM, "sound_manager_get_max_volume Failed");
815 ret = sound_manager_get_volume(SOUND_TYPE_NOTIFICATION, &volume);
816 SysTryReturnResult(NID_SYS, ret == SOUND_MANAGER_ERROR_NONE, E_SYSTEM, "sound_manager_get_volume Failed");
820 else if (key == _RINGTONE_SOUND_VOLUME || key == _SOUND_RINGTONE_VOLUME)
825 int ret = sound_manager_get_max_volume(SOUND_TYPE_RINGTONE, &maxVolume);
826 SysTryReturnResult(NID_SYS, ret == SOUND_MANAGER_ERROR_NONE, E_SYSTEM, "sound_manager_get_max_volume Failed");
828 ret = sound_manager_get_volume(SOUND_TYPE_RINGTONE, &volume);
829 SysTryReturnResult(NID_SYS, ret == SOUND_MANAGER_ERROR_NONE, E_SYSTEM, "sound_manager_get_volume Failed");
833 else if (key == _SYSTEM_SOUND_VOLUME || key == _SOUND_SYSTEM_VOLUME)
838 int ret = sound_manager_get_max_volume(SOUND_TYPE_SYSTEM, &maxVolume);
839 SysTryReturnResult(NID_SYS, ret == SOUND_MANAGER_ERROR_NONE, E_SYSTEM, "sound_manager_get_max_volume Failed");
841 ret = sound_manager_get_volume(SOUND_TYPE_SYSTEM, &volume);
842 SysTryReturnResult(NID_SYS, ret == SOUND_MANAGER_ERROR_NONE, E_SYSTEM, "sound_manager_get_volume Failed");
846 else if (key == _SCREEN_BRIGHTNESS)
849 int ret = vconf_get_int(VCONFKEY_SETAPPL_LCD_BRIGHTNESS, &brightness);
850 SysTryReturnResult(NID_SYS, ret == 0, E_SYSTEM, "Failed to get on VCONFKEY_SETAPPL_LCD_BRIGHTNESS vconf");
853 else if (key == _SCREEN_BACKLIGHT_TIME)
856 int ret = vconf_get_int(VCONFKEY_SETAPPL_LCD_TIMEOUT_NORMAL, &timeout);
857 SysTryReturnResult(NID_SYS, ret == 0, E_SYSTEM, "Failed to get on VCONFKEY_SETAPPL_TIMEOUT_NORMAL vconf");
860 else if (key == _VIBRATOR_LEVEL_NOTIFICATION)
863 int ret = vconf_get_int(VCONFKEY_SETAPPL_NOTI_VIBRATION_LEVEL_INT, &level);
864 SysTryReturnResult(NID_SYS, ret == 0, E_SYSTEM, "Failed to get on VCONFKEY_SETAPPL_NOTI_VIBRATION_LEVEL_INT vconf");
875 _SettingManager::GetValue(const String& originalKey, long long& value)
877 return E_OBJ_NOT_FOUND;
881 _SettingManager::GetValue(const String& originalKey, double& value)
883 return E_OBJ_NOT_FOUND;
887 _SettingManager::GetValue(const String& key, bool& value)
889 result r = E_SUCCESS;
893 if (key == _BATTERY_FORMAT_PERCENTAGE)
895 ret = vconf_get_bool(VCONFKEY_SETAPPL_BATTERY_PERCENTAGE_BOOL, &vconf_bool);
896 SysTryReturnResult(NID_SYS, ret == 0, E_SYSTEM, "Failed to get on VCONFKEY_SETAPPL_BATTERY_PERCENTAGE_BOOL vconf");
907 else if (key == _LOCALE_UPDATE_AUTO)
909 ret = vconf_get_bool(VCONFKEY_SETAPPL_STATE_AUTOMATIC_TIME_UPDATE_BOOL, &vconf_bool);
910 SysTryReturnResult(NID_SYS, ret == 0, E_SYSTEM, "Failed to get on VCONFKEY_SETAPPL_STATE_AUTOMATIC_TIME_UPDATE_BOOL vconf");
911 value = vconf_bool ? true : false;
913 else if (key == _NETWORK_WIFI)
915 bool supported = false;
916 _SystemInfoImpl::GetSysInfo(_SYSTEM_NETWORK_WIFI, supported);
917 SysTryReturnResult(NID_SYS, supported == true, E_UNSUPPORTED_OPERATION, "Current device does not support Wi-Fi feature.");
920 ret = vconf_get_int(VCONFKEY_WIFI_STATE, &wifiState);
921 SysTryReturnResult(NID_SYS, ret == 0, E_SYSTEM, "Failed to get on VCONFKEY_WIFI_STATE vconf");
922 if(wifiState== VCONFKEY_WIFI_OFF)
932 else if (key == _NETWORK_WIFI_NOTIFICATION)
935 bool supported = false;
936 _SystemInfoImpl::GetSysInfo(_SYSTEM_NETWORK_WIFI, supported);
937 SysTryReturnResult(NID_SYS, supported == true, E_UNSUPPORTED_OPERATION, "Current device does not support Wi-Fi feature.");
939 ret = vconf_get_int(VCONFKEY_WIFI_ENABLE_QS, &wifiQSState);
940 SysTryReturnResult(NID_SYS, ret != -1, E_UNSUPPORTED_OPERATION, "Current device does not support %ls key.", key.GetPointer());
941 SysTryReturnResult(NID_SYS, ret == 0, E_SYSTEM, "Failed to get on VCONFKEY_WIFI_ENABLE_QS vconf");
943 if(wifiQSState == VCONFKEY_WIFI_QS_DISABLE)
953 else if (key == _NETWORK_WIFI_TETHERING)
955 bool supported = false;
956 _SystemInfoImpl::GetSysInfo(_SYSTEM_NETWORK_WIFI, supported);
957 SysTryReturnResult(NID_SYS, supported == true, E_UNSUPPORTED_OPERATION, "Current device does not support Wi-Fi feature.");
959 SysTryReturnResult(NID_SYS, __tetheringHandle != null, E_UNSUPPORTED_OPERATION, "Current device does not support tethering feature");
960 value = tethering_is_enabled(__tetheringHandle, TETHERING_TYPE_WIFI);
963 else if (key == _NETWORK_WIFI_TETHERING_HIDE)
965 bool supported = false;
966 _SystemInfoImpl::GetSysInfo(_SYSTEM_NETWORK_WIFI, supported);
967 SysTryReturnResult(NID_SYS, supported == true, E_UNSUPPORTED_OPERATION, "Current device does not support Wi-Fi feature.");
969 SysTryReturnResult(NID_SYS, __tetheringHandle != null, E_UNSUPPORTED_OPERATION, "Current device does not support tethering feature");
970 ret = tethering_wifi_get_ssid_visibility(__tetheringHandle, &value);
971 SysTryReturnResult(NID_SYS, ret == TETHERING_ERROR_NONE, E_SYSTEM, "Failed to get wifi tethering visibility state");
974 else if (key == _NETWORK_WIFI_TETHERING_SECURITY)
976 bool supported = false;
977 _SystemInfoImpl::GetSysInfo(_SYSTEM_NETWORK_WIFI, supported);
978 SysTryReturnResult(NID_SYS, supported == true, E_UNSUPPORTED_OPERATION, "Current device does not support Wi-Fi feature.");
980 SysTryReturnResult(NID_SYS, __tetheringHandle != null, E_UNSUPPORTED_OPERATION, "Current device does not support tethering feature");
981 tethering_wifi_security_type_e securityType;
982 ret = tethering_wifi_get_security_type(__tetheringHandle, &securityType);
983 SysTryReturnResult(NID_SYS, ret == TETHERING_ERROR_NONE, E_SYSTEM, "Failed to get wifi tethering securiy state");
984 if(securityType == TETHERING_WIFI_SECURITY_TYPE_NONE)
994 else if (key == _NETWORK_WIFI_DIRECT)
996 bool supported = false;
997 _SystemInfoImpl::GetSysInfo(_SYSTEM_NETWORK_WIFI_DIRECT, supported);
998 SysTryReturnResult(NID_SYS, supported == true, E_UNSUPPORTED_OPERATION, "Current device does not support WiFi direct feature");
999 SysTryReturnResult(NID_SYS, LoadWifiDll() == E_SUCCESS, E_SYSTEM, "Failed to open wifi so");
1001 bool isActivated = false;
1002 isActivated = pWifiDirectDeviceImpl_IsActivated();
1005 SysTryReturnResult(NID_SYS, GetLastResult() == E_SUCCESS, E_SYSTEM, "Failed to get wifi direct state");
1006 value = isActivated;
1009 else if (key == _NETWORK_BLUETOOTH)
1011 int bluetoothStatus = VCONFKEY_BT_STATUS_OFF;
1012 ret = vconf_get_int(VCONFKEY_BT_STATUS, &bluetoothStatus);
1013 SysTryReturnResult(NID_SYS, ret == 0, E_SYSTEM, "It is failed to read bluetooth status.");
1015 if(bluetoothStatus == VCONFKEY_BT_STATUS_OFF)
1026 else if (key == _NETWORK_BLUETOOTH_TETHERING)
1028 SysTryReturnResult(NID_SYS, __tetheringHandle != null, E_UNSUPPORTED_OPERATION, "Current device does not support tethering feature");
1029 value = tethering_is_enabled(__tetheringHandle, TETHERING_TYPE_BT);
1032 else if (key == _SCREEN_BRIGHTNESS_AUTO)
1034 int brightnessAuto = 0;
1035 int ret = vconf_get_int(VCONFKEY_SETAPPL_BRIGHTNESS_AUTOMATIC_INT, &brightnessAuto);
1036 SysTryReturnResult(NID_SYS, ret == 0, E_SYSTEM, "Failed to get on VCONFKEY_SETAPPL_BATTERY_PERCENTAGE_BOOL vconf");
1038 if(brightnessAuto == 0)
1048 else if (key == _SOUND_LOCK)
1051 int ret = vconf_get_bool(VCONFKEY_SETAPPL_SOUND_LOCK_BOOL, &soundLock);
1052 SysTryReturnResult(NID_SYS, ret == 0, E_SYSTEM, "Failed to get on VCONFKEY_SETAPPL_SOUND_LOCK_BOO vconf");
1063 else if (key == _SOUND_TOUCH)
1066 int ret = vconf_get_bool(VCONFKEY_SETAPPL_TOUCH_SOUNDS_BOOL, &soundTouch);
1067 SysTryReturnResult(NID_SYS, ret == 0, E_SYSTEM, "Failed to get on VCONFKEY_SETAPPL_TOUCH_SOUNDS_BOOL vconf");
1078 else if (key == _VIBRATOR)
1080 ret = vconf_get_bool(VCONFKEY_SETAPPL_VIBRATION_STATUS_BOOL, &vconf_bool);
1081 SysTryReturnResult(NID_SYS, ret == 0, E_SYSTEM, "Failed to get on VCONFKEY_SETAPPL_VIBRATION_STATUS_BOOL vconf");
1082 value = vconf_bool ? true : false;
1085 else if (key == _USB_TETHERING)
1087 SysTryReturnResult(NID_SYS, __tetheringHandle != null, E_UNSUPPORTED_OPERATION, "Current device does not support tethering feature");
1088 value = tethering_is_enabled(__tetheringHandle, TETHERING_TYPE_USB);
1091 else if (key == _WEB_APPLICATION_COOKIE_SHARE)
1093 value = _tmpWebApplicationCookieShare;
1096 else if (key == _LOCATION_GPS_ADVANCED)
1099 ret = vconf_get_int(VCONFKEY_LOCATION_AGPS_ENABLED, &agps);
1100 SysTryReturnResult(NID_SYS, ret == 0, E_SYSTEM, "Failed to get on VCONFKEY_SETAPPL_BATTERY_PERCENTAGE_BOOL vconf");
1113 else if (key == _SCREEN_ROTATION_AUTO)
1115 ret = vconf_get_bool(VCONFKEY_SETAPPL_AUTO_ROTATE_SCREEN_BOOL, &vconf_bool);
1116 SysTryReturnResult(NID_SYS, ret == 0, E_SYSTEM, "Failed to get on VCONFKEY_SETAPPL_AUTO_ROTATE_SCREEN_BOOL vconf");
1119 else if (key == _HOUR_FORMAT_SELECTED || key == _LOCALE_TIME_FORMAT_24HOUR)
1121 bool is24HoueEnabled = false;
1122 ret = runtime_info_get_value_bool(RUNTIME_INFO_KEY_24HOUR_CLOCK_FORMAT_ENABLED, &is24HoueEnabled);
1123 SysTryReturnResult(NID_SYS, ret == RUNTIME_INFO_ERROR_NONE, E_SYSTEM, "Failed to get the SYSTEM_INFO_KEY__WIFI_SUPPORTED");
1124 value = is24HoueEnabled;
1128 else if (key == _ENABLE_MOTION || key == _MOTION_UI)
1130 bool enableMotion = false;
1131 ret = system_settings_get_value_bool(SYSTEM_SETTINGS_KEY_MOTION_ACTIVATION, &enableMotion);
1132 SysTryReturnResult(NID_SYS, ret == 0, E_SYSTEM, "Failed to get the SYSTEM_SETTINGS_KEY_MOTION_ACTIVIATION");
1133 value = enableMotion;
1137 else if (key == _DATA_ROAMING_ENABLED || key == _NETWORK_TELEPHONY_ROAMING)
1139 bool dataRoamingEnabled = false;
1140 ret = runtime_info_get_value_bool(RUNTIME_INFO_KEY_DATA_ROAMING_ENABLED, &dataRoamingEnabled);
1141 SysTryReturnResult(NID_SYS, ret == RUNTIME_INFO_ERROR_NONE, E_SYSTEM, "Failed to get the RUNTIME_INFO_KEY_DATA_ROAMING_ENABLED");
1142 value = dataRoamingEnabled;
1146 else if (key == _GPS_ENABLED || key == _LOCATION_GPS)
1149 ret = vconf_get_int(VCONFKEY_LOCATION_ENABLED, &gps_value);
1150 SysTryReturnResult(NID_SYS, ret == 0, E_SYSTEM, "Failed to get the VCONFKEY_LOCATION_ENABLED");
1160 else if (key == _PACKET_SERVICE_ALLOWED || key == _NETWORK_TELEPHONY_PACKETSERVICE)
1162 bool packetServiceAllowed = false;
1163 ret = runtime_info_get_value_bool(RUNTIME_INFO_KEY_PACKET_DATA_ENABLED, &packetServiceAllowed);
1164 SysTryReturnResult(NID_SYS, ret == RUNTIME_INFO_ERROR_NONE, E_SYSTEM, "Failed to get the RUNTIME_INFO_KEY_PACKET_DATA_ENABLED");
1165 value = packetServiceAllowed;
1169 else if (key == _SILENT_MODE || key == _SOUND_SILENTMODE)
1171 bool silentModeEnabled = false;
1172 ret = runtime_info_get_value_bool(RUNTIME_INFO_KEY_SILENT_MODE_ENABLED, &silentModeEnabled);
1173 SysTryReturnResult(NID_SYS, ret == RUNTIME_INFO_ERROR_NONE, E_SYSTEM, "Failed to get the RUNTIME_INFO_KEY_SILENT_MODE_ENABLED");
1174 value = !silentModeEnabled;
1178 else if (key == _WPS_ENABLED || key == _LOCATION_WPS)
1181 ret = vconf_get_int(VCONFKEY_LOCATION_NETWORK_ENABLED, &wps_value);
1182 SysTryReturnResult(NID_SYS, ret == 0, E_SYSTEM, "Failed to get the VCONFKEY_LOCATION_NETWORK_ENABLED");
1193 else if (key == _FLIGHT_MODE_ENABLED || key == _NETWORK_FLIGHTMODE)
1195 bool flightModeEnabled = false;
1196 ret = runtime_info_get_value_bool(RUNTIME_INFO_KEY_FLIGHT_MODE_ENABLED, &flightModeEnabled);
1197 SysTryReturnResult(NID_SYS, ret == RUNTIME_INFO_ERROR_NONE, E_SYSTEM, "Failed to get the RUNTIME_INFO_KEY_FLIGHT_MODE_ENABLED");
1198 value = flightModeEnabled;
1202 else if (key == _DEVELOPER_USBDEBUGGING)
1205 ret = vconf_get_bool(VCONFKEY_SETAPPL_USB_DEBUG_MODE_BOOL, &usbMode);
1206 SysTryReturnResult(NID_SYS, ret == RUNTIME_INFO_ERROR_NONE, E_SYSTEM, "Failed to get the VCONFKEY_SETAPPL_USB_DEBUG_MODE_BOOL");
1207 value = usbMode == _DEVELOPER_USBDEBUGGING_ON;
1209 else if (key == _NETWORK_TELEPHONY_ROAMING)
1211 ret = vconf_get_bool(VCONFKEY_SETAPPL_STATE_DATA_ROAMING_BOOL, &vconf_bool);
1212 SysTryReturnResult(NID_SYS, ret == RUNTIME_INFO_ERROR_NONE, E_SYSTEM, "Failed to get the VCONFKEY_SETAPPL_STATE_DATA_ROAMING_BOOL");
1213 value = vconf_bool ? true : false;
1215 else if (key == _CONTACT_ORDER_FIRSTNAME)
1217 int contactOrder = 0;
1218 ret = vconf_get_int(VCONFKEY_CONTACTS_SVC_NAME_DISPLAY_ORDER, &contactOrder);
1219 SysTryReturnResult(NID_SYS, ret == RUNTIME_INFO_ERROR_NONE, E_SYSTEM, "Failed to get the VCONFKEY_CONTACTS_SVC_NAME_DISPLAY_ORDER");
1221 if (contactOrder == _CONTACT_ORDER_FIRSTNAME_FIRSTLAST)
1225 else if (contactOrder == _CONTACT_ORDER_FIRSTNAME_LASTFIRST)
1236 r = E_OBJ_NOT_FOUND;
1243 _SettingManager::GetValue(const String& originalKey, UuId& value)
1245 return E_OBJ_NOT_FOUND;
1249 _SettingManager::GetValueForPrivilegedKey(const String& originalKey, bool& value)
1251 return E_OBJ_NOT_FOUND;
1255 _SettingManager::SetValue(const String& key, const bool& value)
1259 if(key == _LOCALE_TIME_FORMAT_24HOUR)
1261 ret = vconf_set_int(VCONFKEY_REGIONFORMAT_TIME1224, value ? VCONFKEY_TIME_FORMAT_24 : VCONFKEY_TIME_FORMAT_12);
1262 SysTryReturnResult(NID_SYS, ret == 0, E_SYSTEM, "Failed to set on VCONFKEY_REGIONFORMAT_TIME1224 vconf");
1264 else if(key == _BATTERY_FORMAT_PERCENTAGE)
1266 ret = vconf_set_bool(VCONFKEY_SETAPPL_BATTERY_PERCENTAGE_BOOL, value);
1267 SysTryReturnResult(NID_SYS, ret == 0, E_SYSTEM, "Failed to set on VCONFKEY_SETAPPL_BATTERY_PERCENTAGE_BOOL vconf");
1269 else if(key == _LOCALE_UPDATE_AUTO)
1271 ret = vconf_set_bool(VCONFKEY_SETAPPL_STATE_AUTOMATIC_TIME_UPDATE_BOOL, value);
1272 SysTryReturnResult(NID_SYS, ret == 0, E_SYSTEM, "Failed to set on VCONFKEY_SETAPPL_STATE_AUTOMATIC_TIME_UPDATE_BOOL vconf");
1274 else if(key == _NETWORK_WIFI_NOTIFICATION)
1276 bool supported = false;
1277 _SystemInfoImpl::GetSysInfo(_SYSTEM_NETWORK_WIFI, supported);
1278 SysTryReturnResult(NID_SYS, supported == true, E_UNSUPPORTED_OPERATION, "Current device does not support Wi-Fi feature.");
1280 int currentValue = 0;
1281 ret = vconf_get_int(VCONFKEY_WIFI_ENABLE_QS, ¤tValue);
1282 SysTryReturnResult(NID_SYS, ret != -1, E_UNSUPPORTED_OPERATION, "This device does not support %ls key.", key.GetPointer());
1286 ret = vconf_set_int(VCONFKEY_WIFI_ENABLE_QS, VCONFKEY_WIFI_QS_ENABLE);
1290 ret = vconf_set_int(VCONFKEY_WIFI_ENABLE_QS, VCONFKEY_WIFI_QS_DISABLE);
1292 SysTryReturnResult(NID_SYS, ret == 0, E_SYSTEM, "Failed to set on VCONFKEY_WIFI_ENABLE_QS vconf");
1294 else if(key == _NETWORK_WIFI_TETHERING)
1296 result r = E_SUCCESS;
1298 bool supported = false;
1299 _SystemInfoImpl::GetSysInfo(_SYSTEM_NETWORK_WIFI, supported);
1300 SysTryReturnResult(NID_SYS, supported == true, E_UNSUPPORTED_OPERATION, "Current device does not support Wi-Fi feature.");
1302 sim_state_e simState;
1303 ret = sim_get_state(&simState);
1305 SysTryReturnResult(NID_SYS, ret == 0, E_SYSTEM, "Failed to get the SIM state");
1306 SysTryReturnResult(NID_SYS, simState != SIM_STATE_UNAVAILABLE, E_INVALID_STATE, "SIM is not available");
1307 SysTryReturnResult(NID_SYS, __tetheringHandle != null, E_UNSUPPORTED_OPERATION, "Current device does not support tethering feature");
1310 r = GetValue(_NETWORK_WIFI, state);
1311 SysTryReturnResult(NID_SYS, r == E_SUCCESS, E_SYSTEM, "Failed to get the WIFI state");
1312 SysTryReturnResult(NID_SYS, state == true, E_INVALID_STATE, "WIFI is not activated");
1316 if(tethering_is_enabled(__tetheringHandle, TETHERING_TYPE_WIFI) == false)
1318 ret = tethering_enable(__tetheringHandle, TETHERING_TYPE_WIFI);
1323 if(tethering_is_enabled(__tetheringHandle, TETHERING_TYPE_WIFI) == true)
1325 ret = tethering_disable(__tetheringHandle, TETHERING_TYPE_WIFI);
1328 SysTryReturnResult(NID_SYS, ret == TETHERING_ERROR_NONE, E_SYSTEM, "Failed to change tethering option");
1330 else if(key == _NETWORK_WIFI_TETHERING_HIDE)
1332 bool supported = false;
1333 _SystemInfoImpl::GetSysInfo(_SYSTEM_NETWORK_WIFI, supported);
1334 SysTryReturnResult(NID_SYS, supported == true, E_UNSUPPORTED_OPERATION, "Current device does not support Wi-Fi feature.");
1336 bool currentState = false;
1337 SysTryReturnResult(NID_SYS, __tetheringHandle != null, E_UNSUPPORTED_OPERATION, "Current device does not support tethering feature");
1338 ret = tethering_wifi_get_ssid_visibility(__tetheringHandle, ¤tState);
1339 SysTryReturnResult(NID_SYS, ret == TETHERING_ERROR_NONE, E_SYSTEM, "Failed to current wifi tethering visibility setting");
1341 if(value == true && currentState == false)
1343 ret = tethering_wifi_set_ssid_visibility(__tetheringHandle, true);
1345 else if(value == false && currentState == true)
1347 ret = tethering_wifi_set_ssid_visibility(__tetheringHandle, false);
1350 SysTryReturnResult(NID_SYS, ret == TETHERING_ERROR_NONE, E_SYSTEM, "Failed to change wifi tethering visibility setting");
1352 else if(key == _NETWORK_WIFI_TETHERING_SECURITY)
1354 bool supported = false;
1355 _SystemInfoImpl::GetSysInfo(_SYSTEM_NETWORK_WIFI, supported);
1356 SysTryReturnResult(NID_SYS, supported == true, E_UNSUPPORTED_OPERATION, "Current device does not support Wi-Fi feature.");
1358 tethering_wifi_security_type_e securityType;
1359 SysTryReturnResult(NID_SYS, __tetheringHandle != null, E_UNSUPPORTED_OPERATION, "Current device does not support tethering feature");
1360 ret = tethering_wifi_get_security_type(__tetheringHandle, &securityType);
1361 SysTryReturnResult(NID_SYS, ret == TETHERING_ERROR_NONE, E_SYSTEM, "Failed to get wifi tethering securiy state");
1363 if(value == true && securityType == TETHERING_WIFI_SECURITY_TYPE_NONE)
1365 ret = tethering_wifi_set_security_type(__tetheringHandle, TETHERING_WIFI_SECURITY_TYPE_WPA2_PSK);
1367 else if(value == false && securityType == TETHERING_WIFI_SECURITY_TYPE_WPA2_PSK)
1369 ret = tethering_wifi_set_security_type(__tetheringHandle, TETHERING_WIFI_SECURITY_TYPE_NONE);
1371 SysTryReturnResult(NID_SYS, ret == TETHERING_ERROR_NONE, E_SYSTEM, "Failed to change wifi tethering visibility setting");
1373 else if(key == _NETWORK_BLUETOOTH)
1375 bool supported = false;
1376 int bluetoothStatus = VCONFKEY_BT_STATUS_OFF;
1377 result r = E_SUCCESS;
1378 r = _SystemInfoImpl::GetSysInfo(_SYSTEM_NETWORK_BLUETOOTH, supported);
1379 SysTryReturnResult(NID_SYS, supported == true && r == E_SUCCESS, E_UNSUPPORTED_OPERATION, "Current device does not support Wi-Fi feature.");
1380 SysTryReturnResult(NID_SYS, LoadBluetoothDll() == E_SUCCESS, E_SYSTEM, "It is failed to load bluetooth library.");
1382 ret = vconf_get_int(VCONFKEY_BT_STATUS, &bluetoothStatus);
1383 SysTryReturnResult(NID_SYS, ret == 0, E_SYSTEM, "It is failed to read bluetooth status.");
1387 if(bluetoothStatus == VCONFKEY_BT_STATUS_OFF)
1389 r = pBluetoothManagerImpl_Activate();
1394 if(bluetoothStatus != VCONFKEY_BT_STATUS_OFF)
1396 r = pBluetoothManagerImpl_Deactivate();
1400 UnloadBluetoothDll();
1401 SysTryReturnResult(NID_SYS, r == E_SUCCESS, E_SYSTEM, "It is failed to change bluetooth state.");
1403 else if(key == _NETWORK_BLUETOOTH_TETHERING)
1405 result r = E_SUCCESS;
1406 sim_state_e simState;
1407 ret = sim_get_state(&simState);
1409 SysTryReturnResult(NID_SYS, ret == 0, E_SYSTEM, "Failed to get the SIM state");
1410 SysTryReturnResult(NID_SYS, simState != SIM_STATE_UNAVAILABLE, E_INVALID_STATE, "SIM is not available");
1411 SysTryReturnResult(NID_SYS, __tetheringHandle != null, E_UNSUPPORTED_OPERATION, "Current device does not support tethering feature");
1414 r = GetValue(_NETWORK_BLUETOOTH, state);
1415 SysTryReturnResult(NID_SYS, r == E_SUCCESS, E_SYSTEM, "Failed to get the Bluetooth state");
1416 SysTryReturnResult(NID_SYS, state == true, E_INVALID_STATE, "Bluetooth is not activated");
1420 if(tethering_is_enabled(__tetheringHandle, TETHERING_TYPE_BT) == false)
1422 ret = tethering_enable(__tetheringHandle, TETHERING_TYPE_BT);
1427 if(tethering_is_enabled(__tetheringHandle, TETHERING_TYPE_BT) == true)
1429 ret = tethering_disable(__tetheringHandle, TETHERING_TYPE_BT);
1432 SysTryReturnResult(NID_SYS, ret == TETHERING_ERROR_NONE, E_SYSTEM, "Failed to change tethering option");
1434 else if(key == _SCREEN_BRIGHTNESS_AUTO)
1438 ret = vconf_set_int(VCONFKEY_SETAPPL_BRIGHTNESS_AUTOMATIC_INT, SETTING_BRIGHTNESS_AUTOMATIC_ON);
1442 ret = vconf_set_int(VCONFKEY_SETAPPL_BRIGHTNESS_AUTOMATIC_INT, SETTING_BRIGHTNESS_AUTOMATIC_OFF);
1444 SysTryReturnResult(NID_SYS, ret == 0, E_SYSTEM, "Failed to set on VCONFKEY_SETAPPL_BATTERY_PERCENTAGE_BOOL vconf");
1446 else if(key == _SOUND_LOCK)
1448 ret = vconf_set_bool(VCONFKEY_SETAPPL_SOUND_LOCK_BOOL, value);
1449 SysTryReturnResult(NID_SYS, ret == 0, E_SYSTEM, "Failed to get on VCONFKEY_SETAPPL_SOUND_LOCK_BOOL vconf");
1451 else if(key == _SOUND_TOUCH)
1453 ret = vconf_set_bool(VCONFKEY_SETAPPL_TOUCH_SOUNDS_BOOL, value);
1454 SysTryReturnResult(NID_SYS, ret == 0, E_SYSTEM, "Failed to get on VCONFKEY_SETAPPL_TOUCH_SOUNDS_BOOL vconf");
1456 else if(key == _USB_TETHERING)
1458 sim_state_e simState;
1459 ret = sim_get_state(&simState);
1461 SysTryReturnResult(NID_SYS, ret == 0, E_SYSTEM, "Failed to get the SIM state");
1462 SysTryReturnResult(NID_SYS, simState != SIM_STATE_UNAVAILABLE, E_INVALID_STATE, "SIM is not available");
1463 SysTryReturnResult(NID_SYS, __tetheringHandle != null, E_UNSUPPORTED_OPERATION, "Current device does not support tethering feature");
1467 if(tethering_is_enabled(__tetheringHandle, TETHERING_TYPE_USB) == false)
1469 ret = tethering_enable(__tetheringHandle, TETHERING_TYPE_USB);
1474 if(tethering_is_enabled(__tetheringHandle, TETHERING_TYPE_USB) == true)
1476 ret = tethering_disable(__tetheringHandle, TETHERING_TYPE_USB);
1479 SysTryReturnResult(NID_SYS, ret == TETHERING_ERROR_NONE, E_SYSTEM, "Failed to change tethering option");
1481 else if(key == _WEB_APPLICATION_COOKIE_SHARE)
1483 _tmpWebApplicationCookieShare = value;
1485 else if(key == _VIBRATOR)
1489 ret = haptic_open(HAPTIC_DEVICE_0, &__hapticHandle);
1490 SysTryReturnResult(NID_SYS, ret == HAPTIC_ERROR_NONE, E_SYSTEM, "It is failed to open haptic library");
1491 haptic_stop_all_effects(__hapticHandle);
1492 ret = haptic_close(__hapticHandle);
1493 SysTryReturnResult(NID_SYS, ret == HAPTIC_ERROR_NONE, E_SYSTEM, "It is failed to close haptic library");
1494 __hapticHandle = null;
1496 ret = vconf_set_bool(VCONFKEY_SETAPPL_VIBRATION_STATUS_BOOL, value);
1497 SysTryReturnResult(NID_SYS, ret == 0, E_SYSTEM, "Failed to set on VCONFKEY_SETAPPL_VIBRATION_STATUS_BOOL vconf");
1499 else if(key == _SCREEN_ROTATION_AUTO)
1501 ret = vconf_set_bool(VCONFKEY_SETAPPL_AUTO_ROTATE_SCREEN_BOOL, value);
1502 SysTryReturnResult(NID_SYS, ret == 0, E_SYSTEM, "Failed to set on VCONFKEY_SETAPPL_AUTO_ROTATE_SCREEN_BOOL vconf");
1504 else if(key == _SOUND_SILENTMODE)
1506 bool silentMode = !value;
1507 ret = vconf_set_bool(VCONFKEY_SETAPPL_SOUND_STATUS_BOOL, silentMode);
1508 SysTryReturnResult(NID_SYS, ret == 0, E_SYSTEM, "Failed to set on VCONFKEY_SETAPPL_SOUND_STATUS_BOOL vconf");
1510 else if (key == _CONTACT_ORDER_FIRSTNAME)
1512 int contactOrder = 0;
1516 contactOrder = _CONTACT_ORDER_FIRSTNAME_FIRSTLAST;
1520 contactOrder = _CONTACT_ORDER_FIRSTNAME_LASTFIRST;
1522 ret = vconf_set_int(VCONFKEY_CONTACTS_SVC_NAME_DISPLAY_ORDER, contactOrder);
1523 SysTryReturnResult(NID_SYS, ret == 0, E_SYSTEM, "Failed to set on VCONFKEY_CONTACTS_SVC_NAME_DISPLAY_ORDER vconf");
1525 else if(key == _MOTION_UI)
1527 ret = system_settings_set_value_bool(SYSTEM_SETTINGS_KEY_MOTION_ACTIVATION, value);
1528 SysTryReturnResult(NID_SYS, ret == 0, E_SYSTEM, "Failed to set the SYSTEM_SETTINGS_KEY_MOTION_ACTIVIATION");
1532 return E_OBJ_NOT_FOUND;
1538 _SettingManager::SetValue(const String& key, const int& value)
1540 if(key == _VIBRATOR_LEVEL)
1542 SysTryReturnResult(NID_SYS, value >= 0 && value <= 100, E_INVALID_ARG, "Speicified value is not valid");
1543 int ret = vconf_set_int(VCONFKEY_SETAPPL_TOUCH_FEEDBACK_VIBRATION_LEVEL_INT, value);
1544 SysTryReturnResult(NID_SYS, ret == 0, E_SYSTEM, "Failed to set on VCONFKEY_SETAPPL_TOUCH_FEEDBACK_VIBRATION_LEVEL_INT vconf");
1546 else if(key == _VIBRATOR_LEVEL_NOTIFICATION)
1548 SysTryReturnResult(NID_SYS, value >= 0 && value <= 100, E_INVALID_ARG, "Speicified value is not valid");
1549 int ret = vconf_set_int(VCONFKEY_SETAPPL_NOTI_VIBRATION_LEVEL_INT, value);
1550 SysTryReturnResult(NID_SYS, ret == 0, E_SYSTEM, "Failed to set on VCONFKEY_SETAPPL_NOTI_VIBRATION_LEVEL_INT vconf");
1552 else if(key == _SCREEN_BRIGHTNESS)
1554 SysTryReturnResult(NID_SYS, value > 0 && value <= 100, E_INVALID_ARG, "Out of range");
1556 int ret = vconf_set_int(VCONFKEY_SETAPPL_LCD_BRIGHTNESS, value);
1557 SysTryReturnResult(NID_SYS, ret == 0, E_SYSTEM, "Failed to set on VCONFKEY_SETAPPL_TIMEOUT_NORMAL vconf");
1558 ret = device_set_brightness(0, value);
1559 SysTryReturnResult(NID_SYS, ret == 0, E_SYSTEM, "Failed to update on Screen Brightness vconf");
1561 else if(key == _SCREEN_BACKLIGHT_TIME)
1563 SysTryReturnResult(NID_SYS, value == 15 || value == 30 || value == 60 || value == 120 || value == 300 || value == 600, E_INVALID_ARG, "Out of range");
1565 int ret = vconf_set_int(VCONFKEY_SETAPPL_LCD_TIMEOUT_NORMAL, value);
1566 SysTryReturnResult(NID_SYS, ret == 0, E_SYSTEM, "Failed to set on VCONFKEY_SETAPPL_LCD_TIMEOUT_NORMAL vconf");
1568 else if (key == _SOUND_SYSTEM_VOLUME)
1570 return SetVolume(_SYSTEM_SOUND_VOLUME, value);
1572 else if (key == _SOUND_MEDIA_VOLUME)
1574 return SetVolume(_MEDIA_SOUND_VOLUME, value);
1576 else if (key ==_SOUND_RINGTONE_VOLUME)
1578 return SetVolume(_RINGTONE_SOUND_VOLUME, value);
1580 else if (key == _SOUND_NOTIFICATION_VOLUME)
1582 return SetVolume(_NOTIFICATION_SOUND_VOLUME, value);
1586 return E_OBJ_NOT_FOUND;
1592 _SettingManager::SetValue(const String& key, const String& value)
1594 result r = E_SUCCESS;
1596 if (key == _LOCALE_DATE_FORMAT
1597 || key == _LOCALE_DATETIME_FORMAT
1598 || key == _LOCALE_TIME_FORMAT )
1601 else if(key == _DEVICE_NAME)
1603 char* deviceName = _StringConverter::CopyToCharArrayN(value);
1604 SysTryReturnResult(NID_SYS, deviceName != null, E_SYSTEM, "Failed to convert String to string");
1606 int err = vconf_set_str(VCONFKEY_SETAPPL_DEVICE_NAME_STR, deviceName);
1607 delete [] deviceName;
1608 SysTryReturnResult(NID_SYS, err == 0, E_SYSTEM, "Failed to set on VCONFKEY_SETAPPL_DEVICE_NAME_STR vconf");
1610 else if(key == _LOCALE_COUNTRY)
1613 std::unique_ptr<char> lang (_StringConverter::CopyToCharArrayN(value));
1614 SysTryReturnResult(NID_SYS, lang != null, E_SYSTEM, "Failed to convert String to string");
1616 icu::Locale locale(lang.get());
1617 err = locale.isBogus();
1618 SysTryReturnResult(NID_SYS, err == 0, E_INVALID_ARG, "Unknown language format");
1620 std::string localeCode(locale.getLanguage());
1621 localeCode.append("_");
1622 localeCode.append(locale.getCountry());
1623 localeCode.append(".utf8");
1625 err = vconf_set_str(VCONFKEY_REGIONFORMAT, localeCode.c_str());
1626 SysTryReturnResult(NID_SYS, err == 0, E_SYSTEM, "Failed to set on VCONFKEY_REGIONFORMAT vconf");
1628 else if(key == _LOCALE_LANGUAGE)
1631 std::unique_ptr<char> lang (_StringConverter::CopyToCharArrayN(value));
1632 SysTryReturnResult(NID_SYS, lang != null, E_SYSTEM, "Failed to convert String to string");
1634 icu::Locale locale(lang.get());
1635 err = locale.isBogus();
1636 SysTryReturnResult(NID_SYS, err == 0, E_INVALID_ARG, "Unknown language format");
1638 std::string localeCode(locale.getLanguage());
1639 localeCode.append("_");
1640 localeCode.append(locale.getCountry());
1641 localeCode.append(".utf8");
1643 err = vconf_set_str(VCONFKEY_LANGSET, localeCode.c_str());
1644 SysTryReturnResult(NID_SYS, err == 0, E_SYSTEM, "Failed to set on VCONFKEY_LANGSET vconf");
1646 else if(key == _LOCALE_WEEK_FORMAT_FIRSTDAY)
1651 if (value == _LOCALE_WEEK_FORMAT_FIRSTDAY_SUNDAY)
1653 firstDay = _LOCALE_WEEK_FORMAT_VCONF_SUNDAY;
1655 else if (value == _LOCALE_WEEK_FORMAT_FIRSTDAY_MONDAY)
1657 firstDay = _LOCALE_WEEK_FORMAT_VCONF_MONDAY;
1661 return E_INVALID_ARG;
1664 ret = vconf_set_int(VCONFKEY_SETAPPL_WEEKOFDAY_FORMAT_INT, firstDay);
1665 SysTryReturnResult(NID_SYS, ret == 0, E_SYSTEM, "Failed to set on VCONFKEY_SETAPPL_WEEKOFDAY_FORMAT_INT vconf");
1667 else if (key == _FONT_SIZE)
1672 if (value == _FONT_SIZE_GIANT_LOWERCASE)
1674 fontSize = _FONT_SIZE_GIANT_VCONF;
1676 else if (value == _FONT_SIZE_HUGE_LOWERCASE)
1678 fontSize = _FONT_SIZE_HUGE_VCONF;
1680 else if (value == _FONT_SIZE_LARGE_LOWERCASE)
1682 fontSize = _FONT_SIZE_LARGE_VCONF;
1684 else if (value == _FONT_SIZE_MEDIUM_LOWERCASE)
1686 fontSize = _FONT_SIZE_MEDIUM_VCONF;
1688 else if (value == _FONT_SIZE_SMALL_LOWERCASE)
1690 fontSize = _FONT_SIZE_SMALL_VCONF;
1694 return E_UNSUPPORTED_OPERATION;
1696 res = system_settings_set_value_int(SYSTEM_SETTINGS_KEY_FONT_SIZE, fontSize);
1697 SysTryReturnResult(NID_SYS, res == SYSTEM_SETTINGS_ERROR_NONE, E_SYSTEM, "Failed to set font size");
1699 else if(key == _LOCALE_TIMEZONE)
1702 std::unique_ptr<IMap, AllElementsDeleter> pSupportedTimeZoneList(_LocaleManagerImpl::GetAvailableTimeZonesN());
1704 SysTryReturnResult(NID_SYS, pSupportedTimeZoneList != null, E_SYSTEM, "It is failed to get supported timezone list.");
1705 SysTryReturnResult(NID_SYS, pSupportedTimeZoneList->ContainsKey(value) == true, E_INVALID_ARG, "Specified timezone id[%S] is not valid", value.GetPointer());
1707 std::unique_ptr<char> tzpath (_StringConverter::CopyToCharArrayN(value));
1708 SysTryReturnResult(NID_SYS, tzpath != null, E_SYSTEM, "It is failed to convert String to string");
1709 std::string tzStr(_LOCALE_TIMEZONE_ROOT_PATH);
1710 tzStr.append(tzpath.get());
1711 std::unique_ptr<char> cstrTzpath (strdup(tzStr.c_str()));
1712 int ret = sysman_set_timezone(cstrTzpath.get());
1713 SysTryReturnResult(NID_SYS, ret == 0, E_SYSTEM, "It is failed to set timezone");
1715 ret = vconf_set_str(VCONFKEY_SETAPPL_TIMEZONE_ID, cstrTzpath.get()+_LOCALE_TIMEZONE_ROOT_PATH_LENGTH);
1716 SysTryReturnResult(NID_SYS, ret == 0, E_SYSTEM, "It is failed to set VCONFKEY_SETAPPL_TIMEZONE_ID vconf");
1718 ret = vconf_set_int(VCONFKEY_SYSTEM_TIME_CHANGED, -1);
1719 SysTryReturnResult(NID_SYS, ret == 0, E_SYSTEM, "It is failed to notify to system about time changing");
1721 else if(key == _FONT_TYPE)
1723 char* pFontType = null;
1726 pFontType = _StringConverter::CopyToCharArrayN(value);
1727 SysTryReturnResult(NID_SYS, pFontType != null, E_SYSTEM, "Failed to convert String to string");
1728 SysLog(NID_SYS, "Requested font type is %s.", pFontType);
1729 res = system_settings_set_value_string(SYSTEM_SETTINGS_KEY_FONT_TYPE, pFontType);
1730 delete [] pFontType;
1731 SysTryReturnResult(NID_SYS, res == SYSTEM_SETTINGS_ERROR_NONE, E_SYSTEM, "Failed to set font type");
1733 else if(key == _NETWORK_TELEPHONY_MODE)
1735 _tmpNetworkTelephonyMode = value;
1737 else if(key ==_NETWORK_WIFI_TETHERING_SECURITY_PASSWORD)
1740 bool supported = false;
1741 _SystemInfoImpl::GetSysInfo(_SYSTEM_NETWORK_WIFI, supported);
1742 SysTryReturnResult(NID_SYS, supported == true, E_UNSUPPORTED_OPERATION, "Current device does not support Wi-Fi feature.");
1744 SysTryReturnResult(NID_SYS, __tetheringHandle != null, E_UNSUPPORTED_OPERATION, "Current device does not support tethering feature");
1745 std::unique_ptr<char> password(_StringConverter::CopyToCharArrayN(value));
1746 SysTryReturnResult(NID_SYS, password != null, E_SYSTEM, "Failed to convert String to string");
1747 ret = tethering_wifi_set_passphrase(__tetheringHandle, password.get());
1748 SysTryReturnResult(NID_SYS, ret == TETHERING_ERROR_NONE, E_SYSTEM, "Failed to set password");
1750 else if(key == _SCREEN_MODE)
1755 SysTryReturnResult(NID_SYS, value == _SCREEN_MODE_DYNAMIC || value == _SCREEN_MODE_STANDARD || value == _SCREEN_MODE_NATURAL || value == _SCREEN_MODE_MOVIE, E_INVALID_ARG, "designated value(%ls) is invalid", value.GetPointer());
1756 char* screenMode = _StringConverter::CopyToCharArrayN(value);
1757 ret = vconf_set_str(_SCREEN_MODE_VCONFKEY, screenMode);
1762 SysLog(NID_SYS, "Failed to change screen mode");
1764 if(screenMode != null)
1766 delete [] screenMode;
1769 else if(key == _SCREEN_WALLPAPER)
1772 SysTryReturn(NID_SYS, File::IsFileExist(value) == true, E_FILE_NOT_FOUND, E_FILE_NOT_FOUND, "The entry for the specified wallpaper file or the file path cannot be found");
1773 std::unique_ptr<char> pFilePath(_StringConverter::CopyToCharArrayN(value));
1775 SysTryReturn(NID_SYS, pFilePath != null, E_SYSTEM, E_SYSTEM, "Failed to convert type of filePath");
1777 ret = system_settings_set_value_string(SYSTEM_SETTINGS_KEY_WALLPAPER_HOME_SCREEN, pFilePath.get());
1778 SysTryReturn(NID_SYS, ret == 0, E_SYSTEM, E_SYSTEM, "[E_SYSTEM] Failed to set wallpaper of home screen");
1780 else if(key == _SCREEN_WALLPAPER_LOCK)
1783 char* pFilePath = null;
1785 SysTryReturn(NID_SYS, File::IsFileExist(value) == true, E_FILE_NOT_FOUND, E_FILE_NOT_FOUND, "[E_FILE_NOT_FOUND] The entry for the specified wallpaper file or the file path cannot be found");
1786 pFilePath = _StringConverter::CopyToCharArrayN(value);
1788 SysTryReturn(NID_SYS, pFilePath != null, E_SYSTEM, E_SYSTEM, "[E_SYSTEM] Failed to convert type of filePath");
1790 ret = system_settings_set_value_string(SYSTEM_SETTINGS_KEY_WALLPAPER_LOCK_SCREEN, const_cast<char*>(pFilePath));
1791 delete [] pFilePath;
1792 SysTryReturn(NID_SYS, ret == 0, E_SYSTEM, E_SYSTEM, "[E_SYSTEM] Failed to set wallpaper of home screen");
1794 else if(key == _SOUND_RINGTONE)
1797 char* pFilePath = null;
1799 SysTryReturn(NID_SYS, File::IsFileExist(value) == true, E_FILE_NOT_FOUND, E_FILE_NOT_FOUND, "[E_FILE_NOT_FOUND] The entry for the specified ringtone file or the file path cannot be found");
1800 pFilePath = _StringConverter::CopyToCharArrayN(value);
1802 SysTryReturn(NID_SYS, pFilePath != null, E_SYSTEM, E_SYSTEM, "[E_SYSTEM] Failed to convert type of filePath");
1804 ret = system_settings_set_value_string(SYSTEM_SETTINGS_KEY_INCOMING_CALL_RINGTONE, const_cast<char*>(pFilePath));
1805 SysTryReturn(NID_SYS, ret == 0, E_SYSTEM, E_SYSTEM, "[E_SYSTEM] Failed to set ringtone");
1807 delete [] pFilePath;
1809 else if(key == _STORAGE_DIRECTORY_WAP_DOWNLOAD)
1811 _tmpStorageDirectoryWapDownload = value;
1813 else if(key == _STORAGE_DIRECTORY_BLUETOOTH_DOWNLOAD)
1815 _tmpStorageDirectoryWapDownload = value;
1817 else if(key == _STORAGE_DIRECTORY_CAMERA_RECORD)
1819 _tmpStorageDirectoryWapDownload = value;
1821 else if(key == _STORAGE_DIRECTORY_VOICE_RECORD)
1823 _tmpStorageDirectoryVoiceRecord = value;
1825 else if(key == _STORAGE_DIRECTORY_RADIO_BROADCAST)
1827 _tmpStorageDirectoryRadioBroadcast = value;
1829 else if(key == _STORAGE_DIRECTORY_VIDEO_BROADCAST)
1831 _tmpStorageDirectoryVideoBroadcast = value;
1835 SysLog(NID_SYS, "required key(%ls) is not existed", key.GetPointer());
1836 r = E_OBJ_NOT_FOUND;
1842 _SettingManager::SetValueForPrivilegedKey(const String& key, String value)
1844 result r = E_SUCCESS;
1845 if(key == _NETWORK_TELEPHONY_PROVIDER)
1847 _tmpNetworkTelephonyProvider = value;
1849 else if(key == _NETWORK_TELEPHONY_MODE)
1851 _tmpNetworkTelephonyMode= value;
1855 r = E_OBJ_NOT_FOUND;
1861 _SettingManager::SetValueAsyncForPrivilegedKey(const String& key, bool value, ISettingInfoSetValueAsyncResultListener* listener)
1865 if(key == _NETWORK_FLIGHTMODE)
1867 SysTryReturnResult(NID_SYS, __tapiHandle == null, E_SYSTEM, "Tapi is already ready");
1868 __tapiHandle = tel_init(null);
1869 SysTryReturnResult(NID_SYS, __tapiHandle != null, E_SYSTEM, "Tapi is not ready.");
1871 if(__pSettingAsyncEvent == null)
1873 _SettingAsyncEvent* pEvent = new (std::nothrow) _SettingAsyncEvent();
1874 SysTryReturnResult(NID_SYS, pEvent != null, E_OUT_OF_MEMORY, "It is failed to create instance of Event");
1875 __pSettingAsyncEvent = pEvent;
1877 __pSettingAsyncEvent->AddListener(*listener);
1879 ret = tel_set_flight_mode(__tapiHandle,
1880 value ? TAPI_POWER_FLIGHT_MODE_ENTER : TAPI_POWER_FLIGHT_MODE_LEAVE,
1881 SettingEventFlightMode, (void*)__pSettingAsyncEvent);
1882 SysTryReturnResult(NID_SYS, ret == 0, E_SYSTEM, "It is failed to set on Network Flight mode");
1889 _SettingManager::SetValueForPrivilegedKey(const String& key, bool value)
1892 result r = E_SUCCESS;
1893 if(key == _LOCATION_GPS)
1897 ret = vconf_set_int(VCONFKEY_LOCATION_ENABLED, 1);
1901 ret = vconf_set_int(VCONFKEY_LOCATION_ENABLED, 0);
1903 SysTryReturnResult(NID_SYS, ret == 0, E_SYSTEM, "Failed to set on VCONFKEY_LOCATION_ENABLED vconf");
1905 else if(key == _LOCATION_WPS)
1909 ret = vconf_set_int(VCONFKEY_LOCATION_NETWORK_ENABLED, 1);
1913 ret = vconf_set_int(VCONFKEY_LOCATION_NETWORK_ENABLED, 0);
1915 SysTryReturnResult(NID_SYS, ret == 0, E_SYSTEM, "Failed to set on VCONFKEY_LOCATION_NETWORK_ENABLED vconf");
1917 else if(key == _LOCATION_GPS_ADVANCED)
1921 ret = vconf_set_int(VCONFKEY_LOCATION_AGPS_ENABLED, 1);
1925 ret = vconf_set_int(VCONFKEY_LOCATION_AGPS_ENABLED, 0);
1927 SysTryReturnResult(NID_SYS, ret == 0, E_SYSTEM, "Failed to get on VCONFKEY_LOCATION_AGPS_ENABLED vconf");
1929 else if(key == _NETWORK_TELEPHONY_ROAMING)
1931 ret = vconf_set_bool(VCONFKEY_SETAPPL_STATE_DATA_ROAMING_BOOL, value);
1932 SysTryReturnResult(NID_SYS, ret == 0, E_SYSTEM, "Failed to set on VCONFKEY_SETAPPL_STATE_DATA_ROAMING_BOOL vconf");
1934 else if(key == _NETWORK_TELEPHONY_PACKETSERVICE)
1936 ret = vconf_set_bool(VCONFKEY_3G_ENABLE, value);
1937 SysTryReturnResult(NID_SYS, ret == 0, E_SYSTEM, "Failed to set on VCONFKEY_3G_ENABLE vconf");
1939 else if(key == _NETWORK_WIFI)
1942 bool supported = false;
1943 r = _SystemInfoImpl::GetSysInfo(_SYSTEM_NETWORK_WIFI, supported);
1944 SysTryReturnResult(NID_SYS, supported == true && r == E_SUCCESS, E_UNSUPPORTED_OPERATION, "Current device does not support Wi-Fi feature.");
1946 ret = vconf_get_int(VCONFKEY_WIFI_STATE, &wifiState);
1947 SysTryReturnResult(NID_SYS, ret == 0, E_UNSUPPORTED_OPERATION, "Failed to set on VCONFKEY_WIFI_STATE vconf");
1948 SysTryReturnResult(NID_SYS, LoadWifiDll() == E_SUCCESS , E_SYSTEM,"Failed to get wifi so");
1952 if(wifiState == VCONFKEY_WIFI_OFF)
1954 r = pWifiManagerImpl_Activate();
1959 if(wifiState != VCONFKEY_WIFI_OFF)
1961 r = pWifiManagerImpl_Deactivate();
1966 SysTryReturnResult(NID_SYS, r == E_SUCCESS, E_SYSTEM, "It is failed to change wifi state.");
1968 else if(key == _NETWORK_WIFI_DIRECT)
1970 bool supported = false;
1971 _SystemInfoImpl::GetSysInfo(_SYSTEM_NETWORK_WIFI_DIRECT, supported);
1972 SysTryReturnResult(NID_SYS, supported == true, E_UNSUPPORTED_OPERATION, "Current device does not support WiFi direct feature");
1973 SysTryReturnResult(NID_SYS, LoadWifiDll() == E_SUCCESS , E_SYSTEM,"Failed to get wifi so");
1975 bool isActivated = pWifiDirectDeviceImpl_IsActivated();
1977 if (isActivated == false && value == true)
1979 ret = pWifiDirectDeviceImpl_Activate();
1981 else if (isActivated == true && value == false)
1983 ret = pWifiDirectDeviceImpl_Deactivate();
1986 SysTryReturnResult(NID_SYS, ret == E_SUCCESS, E_SYSTEM, "Failed to change Wi-Fi direct state");
1988 else if(key == _DEVELOPER_USBDEBUGGING)
1991 ret = vconf_set_bool(VCONFKEY_SETAPPL_USB_DEBUG_MODE_BOOL,
1992 value ? _DEVELOPER_USBDEBUGGING_ON : _DEVELOPER_USBDEBUGGING_OFF);
1993 SysTryReturnResult(NID_SYS, ret == 0, E_SYSTEM, "Failed to set on VCONFKEY_SETAPPL_USB_DEBUG_MODE_BOOL vconf");
1995 r = E_UNSUPPORTED_OPERATION;
2000 r = E_OBJ_NOT_FOUND;
2006 _SettingManager::HasKey(const String& key)
2008 if(key == _BATTERY_FORMAT_PERCENTAGE)
2012 else if(key == _FONT_SIZE)
2016 else if(key == _FONT_TYPE)
2020 else if(key == _LOCALE_COUNTRY)
2024 else if(key == _LOCALE_DATE)
2028 else if(key == _LOCALE_DATE_FORMAT)
2032 else if(key == _LOCALE_DATETIME)
2036 else if(key == _LOCALE_DATETIME_FORMAT)
2040 else if(key == _LOCALE_LANGUAGE)
2044 else if(key == _LOCALE_TIME)
2048 else if(key == _LOCALE_TIME_FORMAT)
2052 else if(key == _LOCALE_TIME_FORMAT_24HOUR)
2056 else if(key == _LOCALE_TIMEZONE)
2060 else if(key == _LOCALE_UPDATE_AUTO)
2064 else if(key == _LOCALE_WEEK_FORMAT_FIRSTDAY)
2068 else if(key == _LOCATION_GPS)
2072 else if(key == _LOCATION_GPS_ADVANCED)
2076 else if(key == _LOCATION_WPS)
2080 else if(key == _MOTION_UI)
2084 else if(key == _NETWORK_FLIGHTMODE)
2088 else if(key == _NETWORK_TELEPHONY_MODE || key == _NETWORK_TELEPHONY_PACKETSERVICE || key == _NETWORK_TELEPHONY_PROVIDER || key == _NETWORK_TELEPHONY_ROAMING)
2090 bool supported = false;
2091 _SystemInfoImpl::GetSysInfo(_SYSTEM_NETWORK_WIFI, supported);
2095 else if(key == _NETWORK_WIFI)
2097 bool supported = false;
2098 _SystemInfoImpl::GetSysInfo(_SYSTEM_NETWORK_WIFI, supported);
2102 else if(key == _NETWORK_WIFI_NOTIFICATION)
2105 int currentValue = 0;
2106 bool supported = false;
2107 _SystemInfoImpl::GetSysInfo(_SYSTEM_NETWORK_WIFI, supported);
2108 if(supported == false)
2112 ret = vconf_get_int(VCONFKEY_WIFI_ENABLE_QS, ¤tValue);
2121 else if(key == _NETWORK_WIFI_TETHERING)
2123 bool supported = false;
2124 _SystemInfoImpl::GetSysInfo(_SYSTEM_NETWORK_WIFI, supported);
2125 if(supported == false)
2129 if(__tetheringHandle == null)
2135 else if(key == _NETWORK_WIFI_TETHERING_HIDE)
2137 bool supported = false;
2138 _SystemInfoImpl::GetSysInfo(_SYSTEM_NETWORK_WIFI, supported);
2139 if(supported == false)
2143 if(__tetheringHandle == null)
2149 else if(key == _NETWORK_WIFI_TETHERING_SECURITY)
2151 bool supported = false;
2152 _SystemInfoImpl::GetSysInfo(_SYSTEM_NETWORK_WIFI, supported);
2153 if(supported == false)
2157 if(__tetheringHandle == null)
2163 else if(key == _NETWORK_WIFI_TETHERING_SECURITY_PASSWORD)
2165 bool supported = false;
2166 _SystemInfoImpl::GetSysInfo(_SYSTEM_NETWORK_WIFI, supported);
2167 if(supported == false)
2171 if(__tetheringHandle == null)
2177 else if(key == _NETWORK_WIFI_DIRECT)
2179 bool supported = false;
2180 _SystemInfoImpl::GetSysInfo(_SYSTEM_NETWORK_WIFI_DIRECT, supported);
2183 else if(key == _NETWORK_BLUETOOTH)
2185 bool supported = false;
2186 _SystemInfoImpl::GetSysInfo(_SYSTEM_NETWORK_BLUETOOTH, supported);
2189 else if(key == _NETWORK_BLUETOOTH_TETHERING)
2191 bool supported = false;
2192 _SystemInfoImpl::GetSysInfo(_SYSTEM_NETWORK_WIFI_DIRECT, supported);
2194 if(__tetheringHandle == null || supported == false)
2200 else if(key == _SCREEN_WALLPAPER)
2204 else if(key == _SCREEN_WALLPAPER_LOCK)
2208 else if(key == _SCREEN_BRIGHTNESS)
2212 else if(key == _SCREEN_BRIGHTNESS_AUTO)
2216 else if(key == _SCREEN_MODE)
2220 else if(key == _SCREEN_BACKLIGHT_TIME)
2224 else if(key == _SOUND_LOCK)
2228 else if(key == _SOUND_MEDIA_VOLUME)
2232 else if(key == _SOUND_NOTIFICATION_VOLUME)
2236 else if(key == _SOUND_RINGTONE)
2240 else if(key == _SOUND_RINGTONE_VOLUME)
2244 else if(key == _SOUND_SILENTMODE)
2248 else if(key == _SOUND_SYSTEM_VOLUME)
2252 else if(key == _SOUND_TOUCH)
2256 else if(key == _STORAGE_DIRECTORY_WAP_DOWNLOAD)
2260 else if(key == _STORAGE_DIRECTORY_BLUETOOTH_DOWNLOAD)
2264 else if(key == _STORAGE_DIRECTORY_CAMERA_RECORD)
2268 else if(key == _STORAGE_DIRECTORY_VOICE_RECORD)
2272 else if(key == _STORAGE_DIRECTORY_RADIO_BROADCAST)
2276 else if(key == _STORAGE_DIRECTORY_VIDEO_BROADCAST)
2280 else if(key == _VIBRATOR)
2284 else if(key == _VIBRATOR_LEVEL)
2288 else if(key == _VIBRATOR_LEVEL_NOTIFICATION)
2292 else if(key == _USB_TETHERING)
2294 if(__tetheringHandle == null)
2300 else if(key == _WEB_APPLICATION_COOKIE_SHARE)
2304 else if(key == _SCREEN_ROTATION_AUTO)
2308 else if(key == _CONTACT_ORDER_FIRSTNAME)
2312 else if(key == _DEVELOPER_USBDEBUGGING)
2320 _SettingManager::ResetToFactoryDefault(void)
2326 _SettingManager::SetVolume(const String& soundCategory, int level)
2331 sound_type_e soundType;
2333 if (soundCategory == _SYSTEM_SOUND_VOLUME)
2335 soundType = SOUND_TYPE_SYSTEM;
2337 else if (soundCategory == _MEDIA_SOUND_VOLUME)
2339 soundType = SOUND_TYPE_MEDIA;
2341 else if (soundCategory == _RINGTONE_SOUND_VOLUME)
2343 soundType = SOUND_TYPE_RINGTONE;
2345 else if (soundCategory == _NOTIFICATION_SOUND_VOLUME)
2347 soundType = SOUND_TYPE_NOTIFICATION;
2351 SysLogException(NID_SYS, E_INVALID_ARG, "The specified soundCategory is invalid");
2352 return E_INVALID_ARG;
2355 res = sound_manager_get_max_volume(soundType, &maxVolume);
2356 SysTryReturn(NID_SYS, res == 0, E_SYSTEM, E_SYSTEM, "[E_SYSTEM] Failed to get max volume");
2358 SysTryReturn(NID_SYS, maxVolume >= level, E_OUT_OF_RANGE, E_OUT_OF_RANGE, "[E_OUT_OF_RANGE] The specified level is outside the bounds of soundCategory");
2360 res = sound_manager_set_volume(soundType, level);
2361 SysTryReturn(NID_SYS, res == 0, E_SYSTEM, E_SYSTEM, "[E_SYSTEM] A sy8stem error has occured.");
2368 _SettingManager::AddSettingEventListener(ISettingEventListener& listener)
2370 result r = E_SUCCESS;
2371 SysTryReturnResult(NID_SYS, __pSettingEvent != null, E_SYSTEM, "Event system is not ready.");
2372 r = __pSettingEvent->AddListener(listener);
2373 SysTryReturnResult(NID_SYS, r != E_OBJ_ALREADY_EXIST, r, "listener is already registered.");
2374 SysTryReturnResult(NID_SYS, r == E_SUCCESS, E_SYSTEM, "It is failed to add listener");
2376 return StartSettingEventListen();
2380 _SettingManager::RemoveSettingEventListener(ISettingEventListener& listener)
2382 result r = E_SUCCESS;
2383 SysTryReturnResult(NID_SYS, __pSettingEvent != null, E_SYSTEM, "Event system is not ready.");
2384 r = __pSettingEvent->RemoveListener(listener);
2385 SysTryReturnResult(NID_SYS, r != E_OBJ_NOT_FOUND, r, "listener is not registered.");
2386 SysTryReturnResult(NID_SYS, r == E_SUCCESS, E_SYSTEM, "It is failed to remove listener");
2388 return StopSettingEventListen();
2391 // Event for internal
2393 _SettingManager::AddSettingEventListenerForInternal(ISettingEventListener& listener)
2395 result r = E_SUCCESS;
2396 SysTryReturnResult(NID_SYS, __pSettingEventForInternal != null, E_SYSTEM, "Event system is not ready.");
2397 __pSettingEventForInternal->AddListener(listener);
2398 SysTryReturnResult(NID_SYS, r != E_OBJ_ALREADY_EXIST, r, "listener is already registered.");
2399 SysTryReturnResult(NID_SYS, r == E_SUCCESS, E_SYSTEM, "The memory is insufficient.");
2400 if(__listenerInternalCount == 0)
2402 r = StartSettingEventListenForInternal();
2403 SysTryReturnResult(NID_SYS, r == E_SUCCESS, E_SYSTEM, "It is failed to start internal event.");
2405 __listenerInternalCount++;
2410 _SettingManager::RemoveSettingEventListenerForInternal(ISettingEventListener& listener)
2412 result r = E_SUCCESS;
2413 SysTryReturnResult(NID_SYS, __pSettingEventForInternal != null, E_SYSTEM, "Event system is not ready.");
2414 r = __pSettingEventForInternal->RemoveListener(listener);
2415 SysTryReturnResult(NID_SYS, r != E_OBJ_NOT_FOUND, r, "listener is not registered.");
2416 SysTryReturnResult(NID_SYS, r == E_SUCCESS, E_SYSTEM, "The listener is not added.");
2417 __listenerInternalCount--;
2419 if(__listenerInternalCount == 0 && __listenerCount == 0)
2421 r = StopSettingEventListenForInternal();
2422 SysTryReturnResult(NID_SYS, r == E_SUCCESS, E_SYSTEM, "It is failed to stop internal event.");
2428 _SettingManager::StartSettingEventListenForInternal(void)
2430 if(__registeredSettingEventsForInternal == false)
2433 ret = runtime_info_set_changed_cb(RUNTIME_INFO_KEY_REGION, SettingEventRuntimeInfo, null);
2434 SysTryReturnResult(NID_SYS, ret == 0, E_SYSTEM, "Failed to register region event listener");
2436 ret = runtime_info_set_changed_cb(RUNTIME_INFO_KEY_LANGUAGE, SettingEventRuntimeInfo, null);
2437 SysTryReturnResult(NID_SYS, ret == 0, E_SYSTEM, "Failed to register language event listener");
2439 ret = system_settings_set_changed_cb(SYSTEM_SETTINGS_KEY_FONT_TYPE, SettingEventSettingInfo, null);
2440 SysTryReturnResult(NID_SYS, ret == 0, E_SYSTEM, "Failed to register font type event listener");
2442 ret = system_settings_set_changed_cb(SYSTEM_SETTINGS_KEY_FONT_SIZE, SettingEventSettingInfo, null);
2443 SysTryReturnResult(NID_SYS, ret == 0, E_SYSTEM, "Failed to register font size event listener");
2445 __registeredSettingEventsForInternal = true;
2451 _SettingManager::StopSettingEventListenForInternal(void)
2453 if(__registeredSettingEventsForInternal == true)
2456 ret = runtime_info_unset_changed_cb(RUNTIME_INFO_KEY_REGION);
2457 SysTryReturnResult(NID_SYS, ret == 0, E_SYSTEM, "Failed to unregister event listener");
2459 ret = runtime_info_unset_changed_cb(RUNTIME_INFO_KEY_LANGUAGE);
2460 SysTryReturnResult(NID_SYS, ret == 0, E_SYSTEM, "Failed to unregister event listener");
2462 ret = system_settings_unset_changed_cb(SYSTEM_SETTINGS_KEY_FONT_SIZE);
2463 SysTryReturnResult(NID_SYS, ret == 0, E_SYSTEM, "Failed to unregister event listener");
2465 ret = system_settings_unset_changed_cb(SYSTEM_SETTINGS_KEY_FONT_TYPE);
2466 SysTryReturnResult(NID_SYS, ret == 0, E_SYSTEM, "Failed to unregister event listener");
2468 __registeredSettingEventsForInternal = false;
2474 _SettingManager::StartSettingEventListen(void)
2476 if (__listenerCount > 0 && __registeredSettingEvents == false)
2479 result r = E_SUCCESS;
2480 int currentIntValue = 0;
2481 bool currentBoolValue = false;
2482 ret = runtime_info_set_changed_cb(RUNTIME_INFO_KEY_24HOUR_CLOCK_FORMAT_ENABLED, SettingEventRuntimeInfo, null);
2483 SysTryReturnResult(NID_SYS, ret == 0, E_SYSTEM, "Failed to register 24 hour event listener");
2484 ret = runtime_info_set_changed_cb(RUNTIME_INFO_KEY_DATA_ROAMING_ENABLED, SettingEventRuntimeInfo, null);
2485 SysTryReturnResult(NID_SYS, ret == 0, E_SYSTEM, "Failed to register roaming event listener");
2486 ret = runtime_info_set_changed_cb(RUNTIME_INFO_KEY_FLIGHT_MODE_ENABLED, SettingEventRuntimeInfo, null);
2487 SysTryReturnResult(NID_SYS, ret == 0, E_SYSTEM, "Failed to register flight mode event listener");
2488 ret = runtime_info_set_changed_cb(RUNTIME_INFO_KEY_LOCATION_SERVICE_ENABLED, SettingEventRuntimeInfo, null);
2489 SysTryReturnResult(NID_SYS, ret == 0, E_SYSTEM, "Failed to register location service event listener");
2490 ret = runtime_info_set_changed_cb(RUNTIME_INFO_KEY_LOCATION_NETWORK_POSITION_ENABLED, SettingEventRuntimeInfo, null);
2491 SysTryReturnResult(NID_SYS, ret == 0, E_SYSTEM, "Failed to register network position event listener");
2492 ret = runtime_info_set_changed_cb(RUNTIME_INFO_KEY_PACKET_DATA_ENABLED, SettingEventRuntimeInfo, null);
2493 SysTryReturnResult(NID_SYS, ret == 0, E_SYSTEM, "Failed to register packet data event listener");
2494 ret = runtime_info_set_changed_cb(RUNTIME_INFO_KEY_SILENT_MODE_ENABLED, SettingEventRuntimeInfo, null);
2495 SysTryReturnResult(NID_SYS, ret == 0, E_SYSTEM, "Failed to register silent mode event listener");
2496 ret = runtime_info_set_changed_cb(RUNTIME_INFO_KEY_VIBRATION_LEVEL_HAPTIC_FEEDBACK, SettingEventRuntimeInfo, null);
2497 SysTryReturnResult(NID_SYS, ret == 0, E_SYSTEM, "Failed to register vibration event listener");
2498 ret = sound_manager_set_volume_changed_cb(SettingEventSoundManager, null);
2499 SysTryReturnResult(NID_SYS, ret == 0, E_SYSTEM, "Failed to register sound volume event listener");
2501 ret = system_settings_set_changed_cb(SYSTEM_SETTINGS_KEY_INCOMING_CALL_RINGTONE, SettingEventSettingInfo, null);
2502 SysTryReturnResult(NID_SYS, ret == 0, E_SYSTEM, "Failed to register rington event listener");
2503 ret = system_settings_set_changed_cb(SYSTEM_SETTINGS_KEY_WALLPAPER_HOME_SCREEN, SettingEventSettingInfo, null);
2504 SysTryReturnResult(NID_SYS, ret == 0, E_SYSTEM, "Failed to register wallpaper event listener");
2505 ret = system_settings_set_changed_cb(SYSTEM_SETTINGS_KEY_WALLPAPER_LOCK_SCREEN, SettingEventSettingInfo, null);
2506 SysTryReturnResult(NID_SYS, ret == 0, E_SYSTEM, "Failed to register wallpaper event listener");
2507 ret = system_settings_set_changed_cb(SYSTEM_SETTINGS_KEY_MOTION_ACTIVATION, SettingEventSettingInfo, null);
2508 SysTryReturnResult(NID_SYS, ret == 0, E_SYSTEM, "Failed to register wallpaper event listener");
2510 if(__tetheringHandle != null)
2512 ret = tethering_set_enabled_cb(__tetheringHandle, TETHERING_TYPE_USB, SettingEventTetheringEnabled, null);
2513 SysTryReturnResult(NID_SYS, ret == TETHERING_ERROR_NONE, E_SYSTEM, "Failed to register USB Tethering event listener");
2515 ret = tethering_set_enabled_cb(__tetheringHandle, TETHERING_TYPE_WIFI, SettingEventTetheringEnabled, null);
2516 SysTryReturnResult(NID_SYS, ret == TETHERING_ERROR_NONE, E_SYSTEM, "Failed to register WIFI Tethering event listener");
2518 ret = tethering_set_enabled_cb(__tetheringHandle, TETHERING_TYPE_BT, SettingEventTetheringEnabled, null);
2519 SysTryReturnResult(NID_SYS, ret == TETHERING_ERROR_NONE, E_SYSTEM, "Failed to register BT Tethering event listener");
2521 ret = tethering_set_disabled_cb(__tetheringHandle, TETHERING_TYPE_USB, SettingEventTetheringDisabled, null);
2522 SysTryReturnResult(NID_SYS, ret == TETHERING_ERROR_NONE, E_SYSTEM, "Failed to register USB Tethering event listener");
2524 ret = tethering_set_disabled_cb(__tetheringHandle, TETHERING_TYPE_WIFI, SettingEventTetheringDisabled, null);
2525 SysTryReturnResult(NID_SYS, ret == TETHERING_ERROR_NONE, E_SYSTEM, "Failed to register WIFI Tethering event listener");
2527 ret = tethering_set_disabled_cb(__tetheringHandle, TETHERING_TYPE_BT, SettingEventTetheringDisabled, null);
2528 SysTryReturnResult(NID_SYS, ret == TETHERING_ERROR_NONE, E_SYSTEM, "Failed to register BT Tethering event listener");
2531 ret = vconf_get_int(VCONFKEY_WIFI_ENABLE_QS, ¤tIntValue);
2534 ret = vconf_notify_key_changed(VCONFKEY_WIFI_ENABLE_QS, SettingEventVConf, null);
2535 SysTryReturnResult(NID_SYS, ret == 0, E_SYSTEM, "Failed to register WIFI QS event listener");
2538 ret = vconf_notify_key_changed(VCONFKEY_BT_STATUS, SettingEventVConf, null);
2539 SysTryReturnResult(NID_SYS, ret == 0, E_SYSTEM, "Failed to register BT event listener");
2541 ret = vconf_notify_key_changed(VCONFKEY_WIFI_STATE, SettingEventVConf, null);
2542 SysTryReturnResult(NID_SYS, ret == 0, E_SYSTEM, "Failed to register WIFI event listener");
2544 ret = vconf_notify_key_changed(VCONFKEY_LOCATION_AGPS_ENABLED, SettingEventVConf, null);
2545 SysTryReturnResult(NID_SYS, ret == 0, E_SYSTEM, "Failed to register event listener");
2547 ret = vconf_notify_key_changed(VCONFKEY_SETAPPL_BATTERY_PERCENTAGE_BOOL, SettingEventVConf, null);
2548 SysTryReturnResult(NID_SYS, ret == 0, E_SYSTEM, "Failed to register event listener");
2550 ret = vconf_notify_key_changed(VCONFKEY_SETAPPL_VIBRATION_STATUS_BOOL, SettingEventVConf, null);
2551 SysTryReturnResult(NID_SYS, ret == 0, E_SYSTEM, "Failed to register vibration enable event listener");
2553 ret = vconf_notify_key_changed(VCONFKEY_SETAPPL_AUTO_ROTATE_SCREEN_BOOL, SettingEventVConf, null);
2554 SysTryReturnResult(NID_SYS, ret == 0, E_SYSTEM, "Failed to register rotate lock event listener");
2556 ret = vconf_notify_key_changed(VCONFKEY_SETAPPL_USB_DEBUG_MODE_BOOL, SettingEventVConf, null);
2557 SysTryReturnResult(NID_SYS, ret == 0, E_SYSTEM, "Failed to register usb mode selection event listener");
2559 ret = vconf_notify_key_changed(VCONFKEY_SETAPPL_STATE_AUTOMATIC_TIME_UPDATE_BOOL, SettingEventVConf, null);
2560 SysTryReturnResult(NID_SYS, ret == 0, E_SYSTEM, "Failed to register automatic time update enable event");
2562 ret = vconf_notify_key_changed(VCONFKEY_SETAPPL_WEEKOFDAY_FORMAT_INT, SettingEventVConf, null);
2563 SysTryReturnResult(NID_SYS, ret == 0, E_SYSTEM, "Failed to register first day of week event listener");
2565 ret = vconf_notify_key_changed(VCONFKEY_CONTACTS_SVC_NAME_DISPLAY_ORDER, SettingEventVConf, null);
2566 SysTryReturnResult(NID_SYS, ret == 0, E_SYSTEM, "Failed to register contact display order event listener");
2568 ret = vconf_notify_key_changed(VCONFKEY_SYSTEM_TIME_CHANGED, SettingEventVConf, null);
2569 SysTryReturnResult(NID_SYS, ret == 0, E_SYSTEM, "Failed to register time event");
2571 ret = vconf_get_int(VCONFKEY_MOBILE_HOTSPOT_SECURITY, ¤tIntValue);
2574 ret = vconf_notify_key_changed(VCONFKEY_MOBILE_HOTSPOT_SECURITY, SettingEventVConf, null);
2575 SysTryReturnResult(NID_SYS, ret == 0, E_SYSTEM, "Failed to register mobile hotspot security event");
2578 ret = vconf_get_int(VCONFKEY_MOBILE_HOTSPOT_HIDE, ¤tIntValue);
2581 ret = vconf_notify_key_changed(VCONFKEY_MOBILE_HOTSPOT_HIDE, SettingEventVConf, null);
2582 SysTryReturnResult(NID_SYS, ret == 0, E_SYSTEM, "Failed to register mobile hotspot hide event");
2585 ret = vconf_notify_key_changed(VCONFKEY_SETAPPL_LCD_TIMEOUT_NORMAL, SettingEventVConf, null);
2586 SysTryReturnResult(NID_SYS, ret == 0, E_SYSTEM, "Failed to register VCONFKEY_SETAPPL_LCD_TIMEOUT_NORMAL changed event");
2588 ret = vconf_notify_key_changed(VCONFKEY_SETAPPL_LCD_BRIGHTNESS, SettingEventVConf, null);
2589 SysTryReturnResult(NID_SYS, ret == 0, E_SYSTEM, "Failed to register VCONFKEY_SETAPPL_LCD_BRIGHTNESS changed event");
2591 ret = vconf_notify_key_changed(VCONFKEY_SETAPPL_BRIGHTNESS_AUTOMATIC_INT, SettingEventVConf, null);
2592 SysTryReturnResult(NID_SYS, ret == 0, E_SYSTEM, "Failed to register VCONFKEY_SETAPPL_BRIGHTNESS_AUTOMATIC_INT changed event");
2594 ret = vconf_notify_key_changed(VCONFKEY_SETAPPL_TIMEZONE_ID, SettingEventVConf, null);
2595 SysTryReturnResult(NID_SYS, ret == 0, E_SYSTEM, "Failed to register VCONFKEY_SETAPPL_TIMEZONE_ID changed event");
2597 ret = vconf_notify_key_changed(VCONFKEY_SETAPPL_NOTI_VIBRATION_LEVEL_INT, SettingEventVConf, null);
2598 SysTryReturnResult(NID_SYS, ret == 0, E_SYSTEM, "Failed to register VCONFKEY_SETAPPL_NOTI_VIBRATION_LEVEL_INT changed event");
2600 ret = vconf_notify_key_changed(VCONFKEY_SETAPPL_TOUCH_SOUNDS_BOOL, SettingEventVConf, null);
2601 SysTryReturnResult(NID_SYS, ret == 0, E_SYSTEM, "Failed to register TOUCH_SOUNDS changed event");
2603 ret = vconf_notify_key_changed(VCONFKEY_SETAPPL_SOUND_LOCK_BOOL, SettingEventVConf, null);
2604 SysTryReturnResult(NID_SYS, ret == 0, E_SYSTEM, "Failed to register SOUND_LOCK changed event");
2606 ret = vconf_notify_key_changed(VCONFKEY_SETAPPL_DEVICE_NAME_STR, SettingEventVConf, null);
2607 SysTryReturnResult(NID_SYS, ret == 0, E_SYSTEM, "Failed to register device name changed event");
2609 ret = vconf_notify_key_changed(_SCREEN_MODE_VCONFKEY, SettingEventVConf, null);
2610 SysTryReturnResult(NID_SYS, ret == 0, E_SYSTEM, "Failed to register screen mode changed event");
2612 _SystemInfoImpl::GetSysInfo(_SYSTEM_NETWORK_WIFI_DIRECT, currentBoolValue);
2614 if(currentBoolValue == true)
2616 ret = vconf_notify_key_changed(VCONFKEY_WIFI_DIRECT_STATE, SettingEventVConf, null);
2617 SysTryReturnResult(NID_SYS, ret == 0, E_SYSTEM, "Failed to register wifi direct changed event");
2620 r = StartSettingEventListenForInternal();
2621 SysTryReturnResult(NID_SYS, r == E_SUCCESS, E_SYSTEM, "Failed to register internal events");
2623 __registeredSettingEvents = true;
2630 _SettingManager::StopSettingEventListen(void)
2632 if (__listenerCount == 0 && __registeredSettingEvents == true)
2635 int currentIntValue = 0;
2636 bool currentBoolValue =false;
2637 result r = E_SUCCESS;
2639 ret = runtime_info_unset_changed_cb(RUNTIME_INFO_KEY_24HOUR_CLOCK_FORMAT_ENABLED);
2640 SysTryReturnResult(NID_SYS, ret == 0, E_SYSTEM, "Failed to unregister event listener");
2641 ret = runtime_info_unset_changed_cb(RUNTIME_INFO_KEY_DATA_ROAMING_ENABLED);
2642 SysTryReturnResult(NID_SYS, ret == 0, E_SYSTEM, "Failed to unregister event listener");
2643 ret = runtime_info_unset_changed_cb(RUNTIME_INFO_KEY_FLIGHT_MODE_ENABLED);
2644 SysTryReturnResult(NID_SYS, ret == 0, E_SYSTEM, "Failed to unregister event listener");
2645 ret = runtime_info_unset_changed_cb(RUNTIME_INFO_KEY_LOCATION_SERVICE_ENABLED);
2646 SysTryReturnResult(NID_SYS, ret == 0, E_SYSTEM, "Failed to unregister event listener");
2647 ret = runtime_info_unset_changed_cb(RUNTIME_INFO_KEY_LOCATION_NETWORK_POSITION_ENABLED);
2648 SysTryReturnResult(NID_SYS, ret == 0, E_SYSTEM, "Failed to unregister event listener");
2649 ret = runtime_info_unset_changed_cb(RUNTIME_INFO_KEY_PACKET_DATA_ENABLED);
2650 SysTryReturnResult(NID_SYS, ret == 0, E_SYSTEM, "Failed to unregister event listener");
2651 ret = runtime_info_unset_changed_cb(RUNTIME_INFO_KEY_SILENT_MODE_ENABLED);
2652 SysTryReturnResult(NID_SYS, ret == 0, E_SYSTEM, "Failed to unregister event listener");
2653 ret = runtime_info_unset_changed_cb(RUNTIME_INFO_KEY_VIBRATION_LEVEL_HAPTIC_FEEDBACK);
2654 SysTryReturnResult(NID_SYS, ret == 0, E_SYSTEM, "Failed to unregister event listener");
2655 sound_manager_unset_volume_changed_cb();
2657 ret = system_settings_unset_changed_cb(SYSTEM_SETTINGS_KEY_INCOMING_CALL_RINGTONE);
2658 SysTryReturnResult(NID_SYS, ret == 0, E_SYSTEM, "Failed to unregister event listener");
2659 ret = system_settings_unset_changed_cb(SYSTEM_SETTINGS_KEY_WALLPAPER_HOME_SCREEN);
2660 SysTryReturnResult(NID_SYS, ret == 0, E_SYSTEM, "Failed to unregister event listener");
2661 ret = system_settings_unset_changed_cb(SYSTEM_SETTINGS_KEY_WALLPAPER_LOCK_SCREEN);
2662 SysTryReturnResult(NID_SYS, ret == 0, E_SYSTEM, "Failed to unregister event listener");
2663 ret = system_settings_unset_changed_cb(SYSTEM_SETTINGS_KEY_MOTION_ACTIVATION);
2664 SysTryReturnResult(NID_SYS, ret == 0, E_SYSTEM, "Failed to unregister event listener");
2667 if(__tetheringHandle != null)
2669 ret = tethering_unset_enabled_cb(__tetheringHandle, TETHERING_TYPE_USB);
2670 SysTryReturnResult(NID_SYS, ret == TETHERING_ERROR_NONE, E_SYSTEM, "Failed to unregister USB Tethering event listener");
2672 ret = tethering_unset_enabled_cb(__tetheringHandle, TETHERING_TYPE_WIFI);
2673 SysTryReturnResult(NID_SYS, ret == TETHERING_ERROR_NONE, E_SYSTEM, "Failed to unregister WIFI Tethering event listener");
2675 ret = tethering_unset_enabled_cb(__tetheringHandle, TETHERING_TYPE_BT);
2676 SysTryReturnResult(NID_SYS, ret == TETHERING_ERROR_NONE, E_SYSTEM, "Failed to unregister Bluetooth Tethering event listener");
2678 ret = tethering_unset_disabled_cb(__tetheringHandle, TETHERING_TYPE_USB);
2679 SysTryReturnResult(NID_SYS, ret == TETHERING_ERROR_NONE, E_SYSTEM, "Failed to unregister USB Tethering event listener");
2681 ret = tethering_unset_disabled_cb(__tetheringHandle, TETHERING_TYPE_WIFI);
2682 SysTryReturnResult(NID_SYS, ret == TETHERING_ERROR_NONE, E_SYSTEM, "Failed to unregister WIFI Tethering event listener");
2684 ret = tethering_unset_disabled_cb(__tetheringHandle, TETHERING_TYPE_BT);
2685 SysTryReturnResult(NID_SYS, ret == TETHERING_ERROR_NONE, E_SYSTEM, "Failed to unregister Bluetooth Tethering event listener");
2688 ret = vconf_get_int(VCONFKEY_WIFI_ENABLE_QS, ¤tIntValue);
2691 ret = vconf_ignore_key_changed(VCONFKEY_WIFI_ENABLE_QS, SettingEventVConf);
2692 SysTryReturnResult(NID_SYS, ret == 0, E_SYSTEM, "Failed to unregister WIFI QS event listener");
2695 ret = vconf_ignore_key_changed(VCONFKEY_SETAPPL_TIMEZONE_ID, SettingEventVConf);
2696 SysTryReturnResult(NID_SYS, ret == 0, E_SYSTEM, "Failed to unregister VCONFKEY_SETAPPL_TIMEZONE_ID changed event");
2698 ret = vconf_ignore_key_changed(VCONFKEY_BT_STATUS, SettingEventVConf);
2699 SysTryReturnResult(NID_SYS, ret == 0, E_SYSTEM, "Failed to unregister BT event listener");
2701 ret = vconf_ignore_key_changed(VCONFKEY_WIFI_STATE, SettingEventVConf);
2702 SysTryReturnResult(NID_SYS, ret == 0, E_SYSTEM, "Failed to unregister WIFI event listener");
2704 ret = vconf_ignore_key_changed(VCONFKEY_LOCATION_AGPS_ENABLED, SettingEventVConf);
2705 SysTryReturnResult(NID_SYS, ret == 0, E_SYSTEM, "Failed to unregister event listener");
2707 ret = vconf_ignore_key_changed(VCONFKEY_SETAPPL_BATTERY_PERCENTAGE_BOOL, SettingEventVConf);
2708 SysTryReturnResult(NID_SYS, ret == 0, E_SYSTEM, "Failed to unregister event listener");
2710 ret = vconf_ignore_key_changed(VCONFKEY_SETAPPL_VIBRATION_STATUS_BOOL, SettingEventVConf);
2711 SysTryReturnResult(NID_SYS, ret == 0, E_SYSTEM, "Failed to unregister vibration enable event listener");
2713 ret = vconf_ignore_key_changed(VCONFKEY_SETAPPL_AUTO_ROTATE_SCREEN_BOOL, SettingEventVConf);
2714 SysTryReturnResult(NID_SYS, ret == 0, E_SYSTEM, "Failed to unregister rotate lock event listener");
2716 ret = vconf_ignore_key_changed(VCONFKEY_SETAPPL_USB_DEBUG_MODE_BOOL, SettingEventVConf);
2717 SysTryReturnResult(NID_SYS, ret == 0, E_SYSTEM, "Failed to unregister usb mode selection event listener");
2719 ret = vconf_ignore_key_changed(VCONFKEY_SETAPPL_STATE_AUTOMATIC_TIME_UPDATE_BOOL, SettingEventVConf);
2720 SysTryReturnResult(NID_SYS, ret == 0, E_SYSTEM, "Failed to unregister automatic time update enable event");
2722 ret = vconf_ignore_key_changed(VCONFKEY_SETAPPL_WEEKOFDAY_FORMAT_INT, SettingEventVConf);
2723 SysTryReturnResult(NID_SYS, ret == 0, E_SYSTEM, "Failed to unregister first day of week event listener");
2725 ret = vconf_ignore_key_changed(VCONFKEY_CONTACTS_SVC_NAME_DISPLAY_ORDER, SettingEventVConf);
2726 SysTryReturnResult(NID_SYS, ret == 0, E_SYSTEM, "Failed to unregister contact display order event listener");
2728 ret = vconf_ignore_key_changed(VCONFKEY_SYSTEM_TIME_CHANGED, SettingEventVConf);
2729 SysTryReturnResult(NID_SYS, ret == 0, E_SYSTEM, "Failed to unregister time event");
2731 ret = vconf_get_int(VCONFKEY_MOBILE_HOTSPOT_SECURITY, ¤tIntValue);
2734 ret = vconf_ignore_key_changed(VCONFKEY_MOBILE_HOTSPOT_SECURITY, SettingEventVConf);
2735 SysTryReturnResult(NID_SYS, ret == 0, E_SYSTEM, "Failed to unregister mobile hotspot security event");
2738 ret = vconf_get_int(VCONFKEY_MOBILE_HOTSPOT_HIDE, ¤tIntValue);
2741 ret = vconf_ignore_key_changed(VCONFKEY_MOBILE_HOTSPOT_HIDE, SettingEventVConf);
2742 SysTryReturnResult(NID_SYS, ret == 0, E_SYSTEM, "Failed to unregister mobile hotspot hide event");
2745 ret = vconf_ignore_key_changed(VCONFKEY_SETAPPL_LCD_TIMEOUT_NORMAL, SettingEventVConf);
2746 SysTryReturnResult(NID_SYS, ret == 0, E_SYSTEM, "Failed to unregister VCONFKEY_SETAPPL_LCD_TIMEOUT_NORMAL changed event");
2748 ret = vconf_ignore_key_changed(VCONFKEY_SETAPPL_LCD_BRIGHTNESS, SettingEventVConf);
2749 SysTryReturnResult(NID_SYS, ret == 0, E_SYSTEM, "Failed to unregister VCONFKEY_SETAPPL_LCD_BRIGHTNESS changed event");
2751 ret = vconf_ignore_key_changed(VCONFKEY_SETAPPL_BRIGHTNESS_AUTOMATIC_INT, SettingEventVConf);
2752 SysTryReturnResult(NID_SYS, ret == 0, E_SYSTEM, "Failed to unregister VCONFKEY_SETAPPL_BRIGHTNESS_AUTOMATIC_INT changed event");
2754 ret = vconf_ignore_key_changed(VCONFKEY_SETAPPL_NOTI_VIBRATION_LEVEL_INT, SettingEventVConf);
2755 SysTryReturnResult(NID_SYS, ret == 0, E_SYSTEM, "Failed to unregister VCONFKEY_SETAPPL_NOTI_VIBRATION_LEVEL_INT changed event");
2757 ret = vconf_ignore_key_changed(VCONFKEY_SETAPPL_TOUCH_SOUNDS_BOOL, SettingEventVConf);
2758 SysTryReturnResult(NID_SYS, ret == 0, E_SYSTEM, "Failed to unregister TOUCH_SOUNDS changed event");
2760 ret = vconf_ignore_key_changed(VCONFKEY_SETAPPL_SOUND_LOCK_BOOL, SettingEventVConf);
2761 SysTryReturnResult(NID_SYS, ret == 0, E_SYSTEM, "Failed to unregister SOUND_LOCK changed event");
2763 ret = vconf_ignore_key_changed(VCONFKEY_SETAPPL_DEVICE_NAME_STR, SettingEventVConf);
2764 SysTryReturnResult(NID_SYS, ret == 0, E_SYSTEM, "Failed to unregister device name changed event");
2766 ret = vconf_ignore_key_changed(_SCREEN_MODE_VCONFKEY, SettingEventVConf);
2767 SysTryReturnResult(NID_SYS, ret == 0, E_SYSTEM, "Failed to unregister screen mode changed event");
2769 r = _SystemInfoImpl::GetSysInfo(_SYSTEM_NETWORK_WIFI_DIRECT, currentBoolValue);
2771 if(r == E_SUCCESS && currentBoolValue == true)
2773 ret = vconf_ignore_key_changed(VCONFKEY_WIFI_DIRECT_STATE, SettingEventVConf);
2774 SysTryReturnResult(NID_SYS, ret == 0, E_SYSTEM, "Failed to register wifi direct changed event");
2777 if(__listenerInternalCount == 0)
2779 r = StopSettingEventListenForInternal();
2780 SysTryReturnResult(NID_SYS, r == E_SUCCESS, E_SYSTEM, "Failed to register internal events");
2783 __registeredSettingEvents = false;
2789 _SettingManager::SetSettingEventListener(ISettingEventListener* pListener)
2791 result r = E_SUCCESS;
2792 if (pListener != null)
2794 __pSettingEventListener = pListener;
2795 r = AddSettingEventListener(*pListener);
2796 SysTryReturnResult(NID_SYS, r == E_SUCCESS, E_SYSTEM, "It is failed to add event listener");
2800 if (__pSettingEventListener == null)
2802 SysLog(NID_SYS, "listener is not registered");
2805 r = RemoveSettingEventListener(*__pSettingEventListener);
2806 SysTryReturnResult(NID_SYS, r == E_SUCCESS, E_SYSTEM, "It is failed to remove event listener");
2807 __pSettingEventListener = null;
2814 _SettingManager::SettingEventRuntimeInfo(runtime_info_key_e key, void* userData)
2816 SysLog(NID_SYS, "SettingEventListener called [%d]", key);
2818 if(__pSettingManager == null)
2820 SysLogException(NID_SYS, E_SYSTEM, "SettingManager is not initialized");
2827 case RUNTIME_INFO_KEY_FLIGHT_MODE_ENABLED:
2828 if(!(_AppInfo::GetApiVersion() == _API_VERSION_2_0 && _AppInfo::IsOspCompat()))
2830 settingKey = _NETWORK_FLIGHTMODE;
2834 settingKey = _FLIGHT_MODE_ENABLED;
2837 case RUNTIME_INFO_KEY_LANGUAGE:
2838 if(!(_AppInfo::GetApiVersion() == _API_VERSION_2_0 && _AppInfo::IsOspCompat()))
2840 settingKey = _LOCALE_LANGUAGE;
2844 settingKey = _LANGUAGE;
2847 case RUNTIME_INFO_KEY_24HOUR_CLOCK_FORMAT_ENABLED:
2848 if(!(_AppInfo::GetApiVersion() == _API_VERSION_2_0 && _AppInfo::IsOspCompat()))
2850 __pSettingManager->DeliverSettingEvent(_LOCALE_TIME_FORMAT);
2851 __pSettingManager->DeliverSettingEvent(_LOCALE_DATETIME_FORMAT);
2852 settingKey = _LOCALE_TIME_FORMAT_24HOUR;
2856 __pSettingManager->DeliverSettingEvent(_DATE_TIME_FORMAT);
2857 __pSettingManager->DeliverSettingEvent(_TIME_FORMAT);
2858 settingKey = _HOUR_FORMAT_SELECTED;
2861 case RUNTIME_INFO_KEY_REGION:
2862 if(!(_AppInfo::GetApiVersion() == _API_VERSION_2_0 && _AppInfo::IsOspCompat()))
2864 settingKey = _LOCALE_DATE_FORMAT;
2868 settingKey = _DATE_FORMAT;
2870 __pSettingManager->DeliverSettingEvent(settingKey);
2872 if(!(_AppInfo::GetApiVersion() == _API_VERSION_2_0 && _AppInfo::IsOspCompat()))
2874 settingKey = _LOCALE_DATETIME_FORMAT;
2878 settingKey = _DATE_TIME_FORMAT;
2880 __pSettingManager->DeliverSettingEvent(settingKey);
2882 if(!(_AppInfo::GetApiVersion() == _API_VERSION_2_0 && _AppInfo::IsOspCompat()))
2884 settingKey = _LOCALE_TIME_FORMAT;
2888 settingKey = _TIME_FORMAT;
2890 __pSettingManager->DeliverSettingEvent(settingKey);
2892 if(!(_AppInfo::GetApiVersion() == _API_VERSION_2_0 && _AppInfo::IsOspCompat()))
2894 settingKey = _LOCALE_COUNTRY;
2898 settingKey = _COUNTRY;
2903 case RUNTIME_INFO_KEY_DATA_ROAMING_ENABLED:
2904 if(!(_AppInfo::GetApiVersion() == _API_VERSION_2_0 && _AppInfo::IsOspCompat()))
2906 settingKey = _NETWORK_TELEPHONY_ROAMING;
2910 settingKey = _DATA_ROAMING_ENABLED;
2913 case RUNTIME_INFO_KEY_LOCATION_SERVICE_ENABLED:
2914 if(!(_AppInfo::GetApiVersion() == _API_VERSION_2_0 && _AppInfo::IsOspCompat()))
2916 settingKey = _LOCATION_GPS;
2920 settingKey = _GPS_ENABLED;
2923 case RUNTIME_INFO_KEY_LOCATION_NETWORK_POSITION_ENABLED:
2924 if(!(_AppInfo::GetApiVersion() == _API_VERSION_2_0 && _AppInfo::IsOspCompat()))
2926 settingKey = _LOCATION_WPS;
2930 settingKey = _WPS_ENABLED;
2933 case RUNTIME_INFO_KEY_PACKET_DATA_ENABLED:
2934 if(!(_AppInfo::GetApiVersion() == _API_VERSION_2_0 && _AppInfo::IsOspCompat()))
2936 settingKey = _NETWORK_TELEPHONY_PACKETSERVICE;
2940 settingKey = _PACKET_SERVICE_ALLOWED;
2943 case RUNTIME_INFO_KEY_SILENT_MODE_ENABLED:
2944 if(!(_AppInfo::GetApiVersion() == _API_VERSION_2_0 && _AppInfo::IsOspCompat()))
2946 settingKey = _SOUND_SILENTMODE;
2950 settingKey = _SILENT_MODE;
2953 case RUNTIME_INFO_KEY_VIBRATION_LEVEL_HAPTIC_FEEDBACK:
2954 if(!(_AppInfo::GetApiVersion() == _API_VERSION_2_0 && _AppInfo::IsOspCompat()))
2956 settingKey = _VIBRATOR_LEVEL;
2960 settingKey = _TOUCH_VIBRATION_LEVEL;
2964 SysLog(NID_SYS, "NOT IMPLEMENTED");
2968 SysLog(NID_SYS, "Event(%ls) is deliverted.", settingKey.GetPointer());
2969 __pSettingManager->DeliverSettingEvent(settingKey);
2973 _SettingManager::SettingEventSettingInfo(system_settings_key_e key, void* userData)
2975 SysLog(NID_SYS, "System setting is changed[%d]", key);
2977 if(__pSettingManager == null)
2979 SysLogException(NID_SYS, E_SYSTEM, "SettingManager is not initialized");
2986 case SYSTEM_SETTINGS_KEY_MOTION_ACTIVATION:
2988 if(!(_AppInfo::GetApiVersion() == _API_VERSION_2_0 && _AppInfo::IsOspCompat()))
2990 settingKey = _MOTION_UI;
2994 settingKey = _ENABLE_MOTION;
2998 case SYSTEM_SETTINGS_KEY_INCOMING_CALL_RINGTONE:
3000 if(!(_AppInfo::GetApiVersion() == _API_VERSION_2_0 && _AppInfo::IsOspCompat()))
3002 settingKey = _SOUND_RINGTONE;
3006 settingKey = _RINGTONE;
3010 case SYSTEM_SETTINGS_KEY_WALLPAPER_HOME_SCREEN:
3012 if(!(_AppInfo::GetApiVersion() == _API_VERSION_2_0 && _AppInfo::IsOspCompat()))
3014 settingKey = _SCREEN_WALLPAPER;
3018 settingKey = _WALLPAPER;
3022 case SYSTEM_SETTINGS_KEY_WALLPAPER_LOCK_SCREEN:
3024 if(!(_AppInfo::GetApiVersion() == _API_VERSION_2_0 && _AppInfo::IsOspCompat()))
3026 settingKey = _SCREEN_WALLPAPER_LOCK;
3035 case SYSTEM_SETTINGS_KEY_FONT_SIZE:
3037 if(!(_AppInfo::GetApiVersion() == _API_VERSION_2_0 && _AppInfo::IsOspCompat()))
3039 settingKey = _FONT_SIZE;
3043 settingKey = _FONTSIZE;
3047 case SYSTEM_SETTINGS_KEY_FONT_TYPE:
3049 if(!(_AppInfo::GetApiVersion() == _API_VERSION_2_0 && _AppInfo::IsOspCompat()))
3051 settingKey = _FONT_TYPE;
3055 settingKey = _FONTTYPE;
3060 SysLog(NID_SYS, "NOT IMPLEMENTED");
3064 __pSettingManager->DeliverSettingEvent(settingKey);
3068 _SettingManager::SettingEventSoundManager(sound_type_e type, unsigned int volume, void* userData)
3070 SysLog(NID_SYS, "Sound Volume is changed [%d]", type);
3072 if(__pSettingManager == null)
3074 SysLogException(NID_SYS, E_SYSTEM, "SettingManager is not initialized");
3081 case SOUND_TYPE_SYSTEM:
3082 if(!(_AppInfo::GetApiVersion() == _API_VERSION_2_0 && _AppInfo::IsOspCompat()))
3084 settingKey = _SOUND_SYSTEM_VOLUME;
3088 settingKey = _SYSTEM_SOUND_VOLUME;
3091 case SOUND_TYPE_MEDIA:
3092 if(!(_AppInfo::GetApiVersion() == _API_VERSION_2_0 && _AppInfo::IsOspCompat()))
3094 settingKey = _SOUND_MEDIA_VOLUME;
3098 settingKey = _MEDIA_SOUND_VOLUME;
3101 case SOUND_TYPE_RINGTONE:
3102 if(!(_AppInfo::GetApiVersion() == _API_VERSION_2_0 && _AppInfo::IsOspCompat()))
3104 settingKey = _SOUND_RINGTONE_VOLUME;
3108 settingKey = _RINGTONE_SOUND_VOLUME;
3111 case SOUND_TYPE_NOTIFICATION:
3112 if(!(_AppInfo::GetApiVersion() == _API_VERSION_2_0 && _AppInfo::IsOspCompat()))
3114 settingKey = _SOUND_NOTIFICATION_VOLUME;
3118 settingKey = _NOTIFICATION_SOUND_VOLUME;
3122 SysLog(NID_SYS, "NOT IMPLEMENTED");
3126 __pSettingManager->DeliverSettingEvent(settingKey);
3130 _SettingManager::SettingEventVConf(keynode_t* node, void* userData)
3132 SysLog(NID_SYS, "VConf change event is occured");
3134 if(__pSettingManager == null)
3136 SysLogException(NID_SYS, E_SYSTEM, "SettingManager is not initialized");
3139 SysLog(NID_SYS, "Vconf is changed [%s]", vconf_keynode_get_name(node));
3143 if (strcmp(VCONFKEY_SETAPPL_BATTERY_PERCENTAGE_BOOL, vconf_keynode_get_name(node)) == 0)
3145 settingKey = _BATTERY_FORMAT_PERCENTAGE;
3147 else if (strcmp(VCONFKEY_SETAPPL_VIBRATION_STATUS_BOOL, vconf_keynode_get_name(node)) == 0)
3149 settingKey = _VIBRATOR;
3151 else if (strcmp(VCONFKEY_SETAPPL_AUTO_ROTATE_SCREEN_BOOL, vconf_keynode_get_name(node)) == 0)
3153 settingKey = _SCREEN_ROTATION_AUTO;
3155 else if (strcmp(VCONFKEY_SETAPPL_USB_DEBUG_MODE_BOOL, vconf_keynode_get_name(node)) == 0)
3157 settingKey = _DEVELOPER_USBDEBUGGING;
3159 else if (strcmp(VCONFKEY_SETAPPL_STATE_AUTOMATIC_TIME_UPDATE_BOOL, vconf_keynode_get_name(node)) == 0)
3161 settingKey = _LOCALE_UPDATE_AUTO;
3163 else if (strcmp(VCONFKEY_SETAPPL_WEEKOFDAY_FORMAT_INT, vconf_keynode_get_name(node)) == 0)
3165 settingKey = _LOCALE_WEEK_FORMAT_FIRSTDAY;
3167 else if (strcmp(VCONFKEY_CONTACTS_SVC_NAME_DISPLAY_ORDER, vconf_keynode_get_name(node)) == 0)
3169 settingKey = _CONTACT_ORDER_FIRSTNAME;
3171 else if (strcmp(VCONFKEY_SYSTEM_TIME_CHANGED, vconf_keynode_get_name(node)) == 0)
3173 __pSettingManager->DeliverSettingEvent(_LOCALE_DATETIME);
3174 __pSettingManager->DeliverSettingEvent(_LOCALE_DATE);
3175 settingKey = _LOCALE_TIME;
3177 else if (strcmp(VCONFKEY_SETAPPL_TIMEZONE_ID, vconf_keynode_get_name(node)) == 0)
3179 settingKey = _LOCALE_TIMEZONE;
3181 else if (strcmp(VCONFKEY_SETAPPL_DEVICE_NAME_STR, vconf_keynode_get_name(node)) == 0)
3183 settingKey = _DEVICE_NAME;
3185 else if (strcmp(VCONFKEY_LOCATION_AGPS_ENABLED, vconf_keynode_get_name(node)) == 0)
3187 settingKey = _LOCATION_GPS_ADVANCED;
3189 else if (strcmp(VCONFKEY_WIFI_STATE, vconf_keynode_get_name(node)) == 0)
3191 int state = VCONFKEY_WIFI_OFF;
3193 ret = vconf_get_int(VCONFKEY_WIFI_STATE, &state);
3195 if(ret == 0 && (state == VCONFKEY_WIFI_OFF || state == VCONFKEY_WIFI_UNCONNECTED))
3197 settingKey = _NETWORK_WIFI;
3201 SysLog(NID_SYS, "It is not Wi-Fi on/off event.");
3205 else if (strcmp(VCONFKEY_BT_STATUS, vconf_keynode_get_name(node)) == 0)
3207 settingKey = _NETWORK_BLUETOOTH;
3209 else if (strcmp(VCONFKEY_MOBILE_HOTSPOT_SECURITY, vconf_keynode_get_name(node)) == 0)
3211 settingKey = _NETWORK_WIFI_TETHERING_SECURITY;
3213 else if (strcmp(VCONFKEY_MOBILE_HOTSPOT_HIDE, vconf_keynode_get_name(node)) == 0)
3215 settingKey = _NETWORK_WIFI_TETHERING_HIDE;
3217 else if (strcmp(VCONFKEY_WIFI_ENABLE_QS, vconf_keynode_get_name(node)) == 0)
3219 settingKey = _NETWORK_WIFI_NOTIFICATION;
3221 else if (strcmp(_SCREEN_MODE_VCONFKEY, vconf_keynode_get_name(node)) == 0)
3223 settingKey = _SCREEN_MODE;
3225 else if (strcmp(VCONFKEY_SETAPPL_TOUCH_SOUNDS_BOOL, vconf_keynode_get_name(node)) == 0)
3227 settingKey = _SOUND_TOUCH;
3229 else if (strcmp(VCONFKEY_SETAPPL_SOUND_LOCK_BOOL, vconf_keynode_get_name(node)) == 0)
3231 settingKey = _SOUND_LOCK;
3233 else if (strcmp(VCONFKEY_SETAPPL_NOTI_VIBRATION_LEVEL_INT, vconf_keynode_get_name(node)) == 0)
3235 settingKey = _VIBRATOR_LEVEL_NOTIFICATION;
3237 else if (strcmp(VCONFKEY_SETAPPL_LCD_TIMEOUT_NORMAL, vconf_keynode_get_name(node)) == 0)
3239 settingKey = _SCREEN_BACKLIGHT_TIME;
3241 else if (strcmp(VCONFKEY_SETAPPL_LCD_BRIGHTNESS, vconf_keynode_get_name(node)) == 0)
3243 settingKey = _SCREEN_BRIGHTNESS;
3245 else if (strcmp(VCONFKEY_SETAPPL_BRIGHTNESS_AUTOMATIC_INT, vconf_keynode_get_name(node)) == 0)
3247 settingKey = _SCREEN_BRIGHTNESS_AUTO;
3249 else if (strcmp(VCONFKEY_WIFI_DIRECT_STATE, vconf_keynode_get_name(node)) == 0)
3251 int state = VCONFKEY_WIFI_DIRECT_DEACTIVATED;
3253 ret = vconf_get_int(VCONFKEY_WIFI_DIRECT_STATE, &state);
3254 SysLog(NID_SYS, "Wi-Fi Direct state is changed. %d", state);
3255 if(ret == 0 && (state == VCONFKEY_WIFI_DIRECT_DEACTIVATED || state == VCONFKEY_WIFI_DIRECT_ACTIVATED))
3257 settingKey = _NETWORK_WIFI_DIRECT;
3261 SysLog(NID_SYS, "It is not Wi-Fi direct on/off event. %d", state);
3270 __pSettingManager->DeliverSettingEvent(settingKey);
3274 _SettingManager::SettingEventTetheringEnabled(tethering_error_e err, tethering_type_e type, bool is_requested, void* data)
3276 if(__pSettingManager == null)
3278 SysLogException(NID_SYS, E_SYSTEM, "SettingManager is not initialized");
3285 case TETHERING_TYPE_USB:
3286 settingKey = _USB_TETHERING;
3288 case TETHERING_TYPE_WIFI:
3289 settingKey = _NETWORK_WIFI_TETHERING;
3291 case TETHERING_TYPE_BT:
3292 settingKey = _NETWORK_BLUETOOTH_TETHERING;
3297 __pSettingManager->DeliverSettingEvent(settingKey);
3301 _SettingManager::SettingEventTetheringDisabled(tethering_error_e err, tethering_type_e type, tethering_disabled_cause_e cause,void* data)
3303 SettingEventTetheringEnabled(err, type, false, null);
3307 _SettingManager::DeliverSettingEvent(String keyName)
3309 if(__pSettingEvent != null)
3311 _SettingEventArg* settingEventArg = new (std::nothrow) _SettingEventArg();
3312 if(settingEventArg == null)
3314 SysLogException(NID_SYS, E_OUT_OF_MEMORY, "It is failed to create instance of _SettingEventArg");
3316 settingEventArg->KeyName = keyName;
3317 __pSettingEvent->Fire(*settingEventArg);
3320 if(__listenerInternalCount > 0)
3322 if(__pSettingEventForInternal != null)
3324 _SettingEventArg* settingEventArgForInternal = new (std::nothrow) _SettingEventArg();
3325 if(settingEventArgForInternal == null)
3327 SysLogException(NID_SYS, E_OUT_OF_MEMORY, "It is failed to create instance of _SettingEventArg");
3329 settingEventArgForInternal->KeyName = keyName;
3331 __pSettingEventForInternal->Fire(*settingEventArgForInternal);
3337 _SettingManager::SettingEventFlightMode(TapiHandle* handle, int res, void* data, void* user_data)
3339 SysLog(NID_SYS, "TAPI change event is occured");
3340 result r = E_SUCCESS;
3343 if(__pSettingManager == null)
3345 SysLogException(NID_SYS, E_SYSTEM, "SettingManager is not initialized");
3349 if(__pSettingManager->__tapiHandle != handle)
3351 SysLogException(NID_SYS, E_SYSTEM, "SettingManager is not initialized");
3355 SysLog(NID_SYS, "Flight mode changed");
3359 case TAPI_POWER_FLIGHT_MODE_RESP_ON:
3360 SysLog(NID_SYS, "success change flight mode on");
3362 ret = vconf_set_bool(VCONFKEY_TELEPHONY_FLIGHT_MODE, true);
3365 SysLogException(NID_SYS, E_SYSTEM, "Failed to set on VCONFKEY_TELEPHONY_FLIGHT_MODE vconf");
3368 case TAPI_POWER_FLIGHT_MODE_RESP_OFF:
3369 SysLog(NID_SYS, "success change flight mode off");
3371 ret = vconf_set_bool(VCONFKEY_TELEPHONY_FLIGHT_MODE, false);
3374 SysLogException(NID_SYS, E_SYSTEM, "Failed to set on VCONFKEY_TELEPHONY_FLIGHT_MODE vconf");
3377 case TAPI_POWER_FLIGHT_MODE_RESP_FAIL:
3379 SysLogException(NID_SYS, E_SYSTEM, "Failed to change flight mode");
3383 _SettingAsyncEvent* pEvent = (_SettingAsyncEvent*)user_data;
3387 _SettingAsyncEventArg* pSettingAsyncEventArg = new (std::nothrow) _SettingAsyncEventArg;
3388 pSettingAsyncEventArg->Key = _NETWORK_FLIGHTMODE;
3389 pSettingAsyncEventArg->errorCode = r;
3390 pEvent->Fire(*pSettingAsyncEventArg);
3393 if(__pSettingManager->__tapiHandle != null)
3395 tel_deinit(__pSettingManager->__tapiHandle);
3396 __pSettingManager->__tapiHandle = null;
3400 SysLogException(NID_SYS, E_SYSTEM, "TAPI is not ready");
3406 _SettingManager::LoadBluetoothDll()
3408 result r = E_SUCCESS;
3409 if(__pBluetoothDllHandle == null)
3411 __pBluetoothDllHandle = dlopen(_BLUETOOTH_LIBRARY_NAME, RTLD_LAZY);
3412 SysTryReturnResult(NID_SYS, __pBluetoothDllHandle, E_SYSTEM, "It is failed to open bluetooth library.");
3414 pBluetoothManagerImpl_Activate = reinterpret_cast< result(*)(void)> (dlsym(__pBluetoothDllHandle, "_BluetoothManagerImpl_Activate"));
3415 pBluetoothManagerImpl_Deactivate = reinterpret_cast< result(*)(void)> (dlsym(__pBluetoothDllHandle, "_BluetoothManagerImpl_Deactivate"));
3417 SysTryCatch(NID_SYS, pBluetoothManagerImpl_Activate != null, r = E_SYSTEM, E_SYSTEM, "It is failed to find _BluetoothManagerImpl_Activate method");
3418 SysTryCatch(NID_SYS, pBluetoothManagerImpl_Deactivate != null, r = E_SYSTEM, E_SYSTEM, "It is failed to find _BluetoothManagerImpl_Deactivate method");
3423 UnloadBluetoothDll();
3430 _SettingManager::UnloadBluetoothDll()
3432 if (__pBluetoothDllHandle != null)
3434 pBluetoothManagerImpl_Activate = null;
3435 pBluetoothManagerImpl_Deactivate = null;
3437 dlclose(__pBluetoothDllHandle);
3438 __pBluetoothDllHandle = null;
3443 _SettingManager::LoadWifiDll()
3445 result r = E_SUCCESS;
3446 if (__pWifiDllHandle == null)
3448 __pWifiDllHandle = dlopen(_WIFI_DIRECT_LIBRARY_NAME, RTLD_LAZY);
3449 SysTryReturnResult(NID_SYS, __pWifiDllHandle, E_SYSTEM, "It is failed to open wifi library.");
3451 pWifiDirectDeviceImpl_Activate = reinterpret_cast< result(*)(void)> (dlsym(__pWifiDllHandle, "_WifiDirectDeviceImpl_Activate"));
3452 pWifiDirectDeviceImpl_Deactivate = reinterpret_cast< result(*)(void)> (dlsym(__pWifiDllHandle, "_WifiDirectDeviceImpl_Deactivate"));
3453 pWifiDirectDeviceImpl_IsActivated = reinterpret_cast< bool(*)(void)> (dlsym(__pWifiDllHandle, "_WifiDirectDeviceImpl_IsActivated"));
3454 pWifiManagerImpl_Activate = reinterpret_cast< result(*)(void)> (dlsym(__pWifiDllHandle, "_WifiManagerImpl_Activate"));
3455 pWifiManagerImpl_Deactivate = reinterpret_cast< result(*)(void)> (dlsym(__pWifiDllHandle, "_WifiManagerImpl_Deactivate"));
3457 SysTryCatch(NID_SYS, pWifiDirectDeviceImpl_Activate != null, r = E_SYSTEM, E_SYSTEM, "It is failed to find _WifiDirectDeviceImpl_Activate method");
3458 SysTryCatch(NID_SYS, pWifiDirectDeviceImpl_Deactivate != null, r = E_SYSTEM, E_SYSTEM, "It is failed to find _WifiDirectDeviceImpl_Deactivate method");
3459 SysTryCatch(NID_SYS, pWifiDirectDeviceImpl_IsActivated != null, r = E_SYSTEM, E_SYSTEM, "It is failed to find _WifiDirectDeviceImpl_IsActivated method");
3460 SysTryCatch(NID_SYS, pWifiManagerImpl_Activate != null, r = E_SYSTEM, E_SYSTEM, "It is failed to find _WifiManagerImpl_Activate method");
3461 SysTryCatch(NID_SYS, pWifiManagerImpl_Deactivate != null, r = E_SYSTEM, E_SYSTEM, "It is failed to find _WifiManagerImpl_Deactivate method");
3473 _SettingManager::UnloadWifiDll()
3475 if (__pWifiDllHandle != null)
3477 pWifiDirectDeviceImpl_Activate = null;
3478 pWifiDirectDeviceImpl_Deactivate = null;
3479 pWifiDirectDeviceImpl_IsActivated = null;
3480 pWifiManagerImpl_Activate = null;
3481 pWifiManagerImpl_Deactivate = null;
3483 dlclose(__pWifiDllHandle);
3484 __pWifiDllHandle = null;
3488 } } // Tizen::System