2 * Copyright 2012 Samsung Electronics Co., Ltd
4 * Licensed under the Flora License, Version 1.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.tizenopensource.org/license
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
18 #include <setting-phone.h>
21 #define UG_MODULE_API __attribute__ ((visibility("default")))
24 setting_view *__get_phone_view_to_load(bundle *data)
27 setting_retvm_if(NULL == data, NULL, "NULL == data");
28 const char *viewtype = bundle_get_val(data, "viewtype");
29 SETTING_TRACE("viewtype:%s", viewtype);
31 if (!safeStrCmp(viewtype, "language")) {
32 const char *caller = (const char *)bundle_get_val(data, "caller");
34 setting_view_node_table_register(&setting_view_phone_display_language, NULL);
35 return &setting_view_phone_display_language;
37 setting_view_node_table_register(&setting_view_phone_language_region, NULL);
38 setting_view_node_table_register(&setting_view_phone_display_language,
39 &setting_view_phone_language_region);
40 setting_view_node_table_register(&setting_view_phone_region_format,
41 &setting_view_phone_language_region);
43 return &setting_view_phone_language_region;
45 } else if (!safeStrCmp(viewtype, "license")) {
46 setting_view_node_table_register(&setting_view_phone_license_main, NULL);
47 setting_view_node_table_register(&setting_view_phone_license_divx_main,
48 &setting_view_phone_license_main);
49 setting_view_node_table_register(&setting_view_phone_license_divx_mode,
50 &setting_view_phone_license_divx_main);
52 return &setting_view_phone_license_main;
53 } else if (!safeStrCmp(viewtype, "notification")) {
54 setting_view_node_table_register(&setting_view_phone_ticker_notification, NULL);
56 return &setting_view_phone_ticker_notification;
58 return NULL; /* &setting_view_phone_main; */
63 Evas_Object *__get_phone_layout_to_return(bundle *data, void *priv)
66 SettingPhoneUG *phoneUG = priv;
67 const char *viewtype = bundle_get_val(data, "viewtype");
68 SETTING_TRACE("viewtype:%s", viewtype);
70 if (!safeStrCmp(viewtype, "language")) {
71 return phoneUG->ly_language;
72 } else if (!safeStrCmp(viewtype, "license")) {
73 return phoneUG->ly_license;
74 } else if (!safeStrCmp(viewtype, "notification")) {
75 return phoneUG->ly_ticker;
77 return NULL; /* &setting_view_phone_main; */
82 const char *get_language_by_mobile_country_code(int mcc)
84 const char *simLanguage = NULL;
86 setting_lang_entry* table = setting_get_language_table();
89 case 262: /* GERMAN */
90 simLanguage = table[SETTING_LANG_GERMAN].locale;
93 simLanguage = table[SETTING_LANG_DUTCH].locale;
95 case 214: /* SPAINISH */
96 simLanguage = table[SETTING_LANG_SPAINISH].locale;
98 case 268: /* PORTUGUESE */
99 simLanguage = table[SETTING_LANG_PORTUGUESE].locale;
101 case 202: /* GREEK */
102 simLanguage = table[SETTING_LANG_GREEK].locale;
104 case 222: /* ITALIAN */
105 simLanguage = table[SETTING_LANG_ITALIAN].locale;
107 case 208: /* FRENCH */
108 simLanguage = table[SETTING_LANG_FRENCH].locale;
110 case 286: /* TURKISH */
111 simLanguage = table[SETTING_LANG_TURKISH].locale;
113 case 450: /* KOREAN */
114 simLanguage = table[SETTING_LANG_KOREA].locale;
116 case 440: /* JAPAN */
117 simLanguage = table[SETTING_LANG_JAPAN].locale;
119 case 460: /* CHINA */
120 simLanguage = table[SETTING_LANG_CHINA].locale;
122 case 454: /* CANTONESE */
123 simLanguage = table[SETTING_LANG_CANTONESE].locale;
125 case 466: /* TAIWAN */
126 simLanguage = table[SETTING_LANG_TAIWAN].locale;
128 case 250: /* RUSSIAN */
129 simLanguage = table[SETTING_LANG_RUSSIAN].locale;
131 default: /* get value from db/menu_widget/language at vconf */
132 simLanguage = table[SETTING_LANG_ENGLISH].locale;
139 int app_terminate_func(const aul_app_info *info, void *data)
141 setting_retvm_if(info == NULL, -1, "info parameter is NULL");
143 SETTING_TRACE(" ===== ITERFUNC: PID=%d , PATH=%s , PKG_NAME=%s ",
144 (int)(info->pid), info->app_path, info->pkg_name);
146 /* temp pid check for org.tizen.setting*/
147 if (getpid() == info->pid) {
148 SETTING_TRACE("Skip Setting(itself) process by PID check");
152 /* @todo re-implement killing code. */
153 if (!safeStrCmp(info->pkg_name, "org.tizen.menu-screen")
154 || !safeStrCmp(info->pkg_name, "org.tizen.setting")
155 || !safeStrCmp(info->pkg_name, "org.tizen.live-magazine")
156 || !safeStrCmp(info->pkg_name, "org.tizen.live-data-provider")
157 || !safeStrCmp(info->pkg_name, "org.tizen.pwlock")
158 || !safeStrCmp(info->pkg_name, "org.tizen.quickpanel")
159 || !safeStrCmp(info->pkg_name, "org.tizen.vtmain")
160 || !safeStrCmp(info->pkg_name, "org.tizen.call")
165 int ret = aul_terminate_pid(info->pid);
167 SETTING_TRACE("===== aul_termniated_pid successed.");
169 SettingPhoneUG *ad = (SettingPhoneUG *) data;
170 SETTING_TRACE("Add pid [%d] to eina_list", info->pid);
171 ad->killed_pid_list =
172 eina_list_append(ad->killed_pid_list,
179 int app_terminate_dead_cb(int pid, void *data)
182 setting_retvm_if(data == NULL, -1, "Data parameter is NULL");
183 SettingPhoneUG *ad = (SettingPhoneUG *)data;
185 SETTING_TRACE("pid:%d", pid);
186 if (ad->killed_pid_list) {
187 SETTING_TRACE_DEBUG("remove process[%d] from killed_pid_list", pid);
188 ad->killed_pid_list =
189 eina_list_remove(ad->killed_pid_list, (void *)pid);
191 SETTING_TRACE("eina_list_count(ad->killed_pid_list):%d", eina_list_count(ad->killed_pid_list));
192 if (0 == eina_list_count(ad->killed_pid_list)) {
193 SETTING_TRACE_DEBUG("All the process nhad been killed");
194 if (ad->pop_progress) {
195 evas_object_del(ad->pop_progress);
196 ad->pop_progress = NULL;
202 static void setting_phone_update_item(void *data)
204 setting_retm_if(data == NULL, "data is NULL");
205 SettingPhoneUG *ad = (SettingPhoneUG *) data;
207 if (ad->data_display_language) {
208 ad->data_display_language->sub_desc = get_pa_display_language_str();
209 elm_object_item_data_set(ad->data_display_language->item, ad->data_display_language);
210 elm_genlist_item_update(ad->data_display_language->item);
213 char *pa_region = vconf_get_str(VCONFKEY_REGIONFORMAT);
214 if (pa_region == NULL) {
216 ("[Error] get value of VCONFKEY_REGIONFORMAT fail.");
219 if (ad->data_region_fmt) {
220 ad->data_region_fmt->sub_desc = setting_phone_lang_get_region_str(pa_region);
221 elm_object_item_data_set(ad->data_region_fmt->item, ad->data_region_fmt);
222 elm_genlist_item_update(ad->data_region_fmt->item);
225 if (ad->data_region_fmt_example) {
227 setting_phone_lang_get_example_desc(pa_region, ad);
228 ad->data_region_fmt_example->keyStr =
229 (char *)g_strdup(example_desc);
231 elm_object_item_data_set(ad->data_region_fmt_example->item, ad->data_region_fmt_example);
232 elm_genlist_item_update(ad->data_region_fmt_example->item);
236 char *setting_phone_lang_get_region_str(const char *region)
239 setting_retvm_if(region == NULL, NULL, "region parameter is NULL");
240 const char *localeID = NULL;
241 UChar displayname[SETTING_STR_SLP_LEN] = { 0, };
242 UErrorCode status = U_ZERO_ERROR;
243 char *ret_str = NULL;
245 localeID = uloc_getDefault();
246 uloc_getDisplayName(region, localeID, displayname, SETTING_STR_SLP_LEN,
249 char *str_displayname = setting_phone_lang_str_to_utf8(displayname);
250 ret_str = (char *)g_strdup(str_displayname);
252 if (str_displayname) {
253 FREE(str_displayname);
259 * Change language string to UTF8 format, the invoker need to free the return string
261 * @param unichars The source string will be translated.
263 * @return UTF8 format string.
265 char *setting_phone_lang_str_to_utf8(const UChar *unichars)
267 retv_if(unichars == NULL, NULL);
272 UErrorCode status = U_ZERO_ERROR;
274 len = u_strlen(unichars);
275 len_str = sizeof(char) *4 * (len + 1);
276 str = (char *)calloc(1, len_str);
280 u_strToUTF8(str, len_str, &len_utf8, unichars, len, &status);
284 char *setting_phone_lang_get_by_pattern(const char *locale,
285 const char *skeleton, void *data)
287 setting_retvm_if(!locale, NULL, "locale parameter is NULL");
288 setting_retvm_if(data == NULL, NULL, "Data parameter is NULL");
290 SettingPhoneUG *ad = (SettingPhoneUG *) data;
292 char *ret_str = NULL;
293 UChar customSkeleton[SETTING_STR_SLP_LEN] = { 0, };
294 UErrorCode status = U_ZERO_ERROR;
295 UDateFormat *formatter = NULL;
297 UChar bestPattern[SETTING_STR_SLP_LEN] = { 0, };
298 UChar formatted[SETTING_STR_SLP_LEN] = { 0, };
300 char bestPatternString[SETTING_STR_SLP_LEN] = { 0, };
301 char formattedString[SETTING_STR_SLP_LEN] = { 0, };
303 u_uastrncpy(customSkeleton, skeleton, safeStrLen(skeleton));
305 if (ad->pattern_generator == NULL
306 || safeStrCmp(locale, ad->prev_locale) != 0) {
307 if (ad->pattern_generator != NULL) {
308 udatpg_close(ad->pattern_generator);
309 ad->pattern_generator = NULL;
311 ad->pattern_generator = udatpg_open(locale, &status);
314 int32_t bestPatternCapacity =
315 (int32_t) (sizeof(bestPattern) / sizeof((bestPattern)[0]));
316 (void)udatpg_getBestPattern(ad->pattern_generator, customSkeleton,
317 u_strlen(customSkeleton), bestPattern,
318 bestPatternCapacity, &status);
320 u_austrcpy(bestPatternString, bestPattern);
321 SETTING_TRACE("BestPattern is %s", bestPatternString);
323 UDate date = ucal_getNow();
325 udat_open(UDAT_IGNORE, UDAT_IGNORE, locale, NULL, -1, bestPattern,
327 int32_t formattedCapacity =
328 (int32_t) (sizeof(formatted) / sizeof((formatted)[0]));
329 (void)udat_format(formatter, date, formatted, formattedCapacity, NULL,
331 u_austrcpy(formattedString, formatted);
332 SETTING_TRACE("DATE & TIME is %s", formattedString);
334 udat_close(formatter);
336 ret_str = g_strdup(formattedString);
340 char *setting_phone_lang_get_example_desc(const char *region, void *data)
342 setting_retvm_if(region == NULL, NULL, "region parameter is NULL");
343 setting_retvm_if(data == NULL, NULL, "Data parameter is NULL");
344 char *date = setting_phone_lang_get_by_pattern(region,
345 UDAT_YEAR_MONTH_WEEKDAY_DAY,
348 enum appcore_time_format timeformat = APPCORE_TIME_FORMAT_12;
349 int ret = appcore_get_timeformat(&timeformat);
351 SETTING_TRACE_ERROR("call appcore_get_timeformat fail.");
352 timeformat = APPCORE_TIME_FORMAT_12;
355 char *time_skeleton = "hhmm";
356 if (timeformat == APPCORE_TIME_FORMAT_24) {
357 time_skeleton = "HHmm";
360 char *time = setting_phone_lang_get_by_pattern(region, time_skeleton, data);
362 Eina_Strbuf *temp_str = eina_strbuf_new();
363 char *r_str_text = NULL;
364 eina_strbuf_append_printf(temp_str,
365 "<b>%s %s</b>", _("IDS_ST_BODY_REGION"), _("IDS_EMAIL_BODY_EXAMPLE"));
366 eina_strbuf_append_printf(temp_str, "<br>%s : %s", _("IDS_COM_POP_DATE"), date);
367 eina_strbuf_append_printf(temp_str, "<br>%s : %s", _("IDS_COM_BODY_DETAILS_TIME"), time);
369 r_str_text = eina_strbuf_string_steal(temp_str);
370 eina_strbuf_free(temp_str);
373 return r_str_text; /* will be freed in calling place */
377 static void setting_phone_ug_cb_resize(void *data, Evas *e, Evas_Object *obj,
380 SettingPhoneUG *ad = (SettingPhoneUG *) data;
381 setting_view_update(ad->view_to_load, ad);
384 static void *setting_phone_ug_on_create(struct ui_gadget *ug, enum ug_mode mode,
385 bundle *data, void *priv)
387 setting_retvm_if((!ug || !priv), NULL, "!ug || !priv");
389 SettingPhoneUG *phoneUG = priv;
392 phoneUG->win_main_layout = (Evas_Object *) ug_get_parent_layout(ug);
393 phoneUG->win_get = (Evas_Object *) ug_get_window();
394 evas_object_show(phoneUG->win_main_layout);
395 phoneUG->evas = evas_object_evas_get(phoneUG->win_main_layout);
397 setting_retvm_if(phoneUG->win_main_layout == NULL, NULL,
398 "cannot get main window ");
400 /* --------------------------------------------------------- */
401 char *pa_path = NULL;;
403 pa_path = vconf_get_str(VCONFKEY_LANGSET);
406 ("%s*** language setting has no proper value (nil) ***%s",
407 SETTING_FONT_BGREEN, SETTING_FONT_BLACK);
411 setlocale(LC_ALL, "");
412 bindtextdomain(SETTING_PACKAGE, SETTING_LOCALEDIR);
413 textdomain(SETTING_PACKAGE);
415 /* --------------------------------------------------------- */
416 if (TAPI_API_SUCCESS != tel_init()) {
417 SETTING_TRACE_DEBUG("%s*** [ERR] tel_init. ***%s",
418 SETTING_FONT_RED, SETTING_FONT_BLACK);
421 memset(&(phoneUG->imsi), 0, sizeof(TelSimImsiInfo_t));
423 /** @todo once Telephony part supports new method to get language from SIM, this code should be replaced */
424 int ret = tel_get_sim_imsi(&(phoneUG->imsi));
425 if (TAPI_API_SUCCESS == ret) {
426 SETTING_TRACE("********************************************");
427 SETTING_TRACE("imsi.bValid: [%d]", phoneUG->imsi.bValid);
428 SETTING_TRACE("imsi.szMcc: [%s]", phoneUG->imsi.szMcc);
429 SETTING_TRACE("imsi.szMnc: [%s]", phoneUG->imsi.szMnc);
430 SETTING_TRACE("imsi.szMsin: [%s]", phoneUG->imsi.szMsin);
431 SETTING_TRACE("********************************************");
433 phoneUG->sim_lang = get_language_by_mobile_country_code(atoi(phoneUG->imsi.szMcc));
435 SETTING_TRACE("TAPI API FAIL: Error Code ret : %d ", ret);
437 /* if CSC has updated configuration for setting, initial vconf value changes. */
438 phoneUG->sim_lang = vconf_get_str(VCONFKEY_LANGSET); /* allocated */
440 SETTING_TRACE("sim_lang: [%s]", phoneUG->sim_lang);
442 /* register view node table */
443 setting_view_node_table_intialize();
445 setting_create_Gendial_itc("dialogue/1text.1icon.2",
446 &(phoneUG->itc_1text_1icon_2));
447 setting_create_Gendial_itc("dialogue/1text.1icon",
448 &(phoneUG->itc_1text_1icon));
449 setting_create_Gendial_itc("dialogue/1text", &(phoneUG->itc_1text));
450 setting_create_Gendial_itc("dialogue/2text.3/expandable",
451 &(phoneUG->itc_2text_3_parent));
452 setting_create_Gendial_itc("dialogue/1text.1icon/expandable2",
453 &(phoneUG->itc_1icon_1text_sub));
455 phoneUG->itc_seperator.item_style = "dialogue/separator/21/with_line";
456 phoneUG->itc_seperator.func.text_get = NULL;
457 phoneUG->itc_seperator.func.content_get = NULL;
458 phoneUG->itc_seperator.func.state_get = NULL;
459 phoneUG->itc_seperator.func.del = NULL;
461 setting_create_Gendial_itc("dialogue/2text.3", &(phoneUG->itc_2text_2));
462 setting_create_Gendial_itc("multiline/1text",
463 &(phoneUG->itc_bg_1icon));
464 phoneUG->pattern_generator = NULL;
465 phoneUG->prev_locale = NULL;
466 /* creating a view. */
467 phoneUG->bundle_data = data;
468 phoneUG->view_to_load = __get_phone_view_to_load(data);
469 setting_retvm_if(NULL == phoneUG->view_to_load, NULL,
470 "NULL == phoneUG->view_to_load");
471 setting_view_node_set_cur_view(phoneUG->view_to_load);
472 setting_view_create(phoneUG->view_to_load, (void *)phoneUG);
473 evas_object_event_callback_add(phoneUG->win_main_layout,
474 EVAS_CALLBACK_RESIZE,
475 setting_phone_ug_cb_resize, phoneUG);
476 return __get_phone_layout_to_return(data, phoneUG);
479 static void setting_phone_ug_on_start(struct ui_gadget *ug, bundle *data,
484 static void setting_phone_ug_on_pause(struct ui_gadget *ug, bundle *data,
489 static void setting_phone_ug_on_resume(struct ui_gadget *ug, bundle *data,
494 static void setting_phone_ug_on_destroy(struct ui_gadget *ug, bundle *data,
498 setting_retm_if((!ug || !priv), "!ug || !priv");
499 SettingPhoneUG *phoneUG = priv;
501 evas_object_event_callback_del(phoneUG->win_main_layout, EVAS_CALLBACK_RESIZE, setting_phone_ug_cb_resize); /* fix flash issue for gallery */
504 if (tel_deinit() != TAPI_API_SUCCESS) {
505 SETTING_TRACE_ERROR("tel_deinit failed");
507 /* called when this shared gadget is terminated. similar with app_exit */
508 if (&setting_view_phone_language_region == phoneUG->view_to_load) {
509 setting_view_destroy(&setting_view_phone_display_language,
511 setting_view_destroy(&setting_view_phone_region_format,
513 setting_view_destroy(&setting_view_phone_language_region, phoneUG);
514 } else if (&setting_view_phone_ticker_notification ==
515 phoneUG->view_to_load) {
516 setting_view_destroy(&setting_view_phone_ticker_notification,
518 } else if (&setting_view_phone_license_main == phoneUG->view_to_load) {
519 setting_view_destroy(&setting_view_phone_license_divx_main,
521 setting_view_destroy(&setting_view_phone_license_divx_mode,
523 setting_view_destroy(&setting_view_phone_license_main, phoneUG);
526 if (NULL != ug_get_layout(phoneUG->ug)) {
527 evas_object_hide((Evas_Object *) ug_get_layout(phoneUG->ug));
528 evas_object_del((Evas_Object *) ug_get_layout(phoneUG->ug));
534 static void setting_phone_ug_on_message(struct ui_gadget *ug, bundle *msg,
535 bundle *data, void *priv)
538 setting_retm_if(NULL == msg, "msg is NULL");
539 setting_retm_if(NULL == priv, "priv is NULL");
540 char *pid_str = (char *)bundle_get_val(msg, "DEADPID");
544 int pid = (int)g_ascii_strtod(pid_str, NULL);
545 SETTING_TRACE_DEBUG("pid = %d",pid);
546 setting_retm_if(errno == ERANGE, "call g_ascii_strtod fail");
548 int ret = app_terminate_dead_cb(pid, priv);
549 setting_retm_if(ret != 0, "call app_terminate_dead_cb fail");
553 static void setting_phone_ug_on_event(struct ui_gadget *ug, enum ug_event event,
554 bundle *data, void *priv)
558 SettingPhoneUG *ad = (SettingPhoneUG *) priv;
560 case UG_EVENT_LOW_MEMORY:
562 case UG_EVENT_LOW_BATTERY:
564 case UG_EVENT_REGION_CHANGE:
565 case UG_EVENT_LANG_CHANGE:
566 if (ad->gl_lang_region && setting_view_phone_language_region.is_create) {
567 elm_genlist_realized_items_update(ad->gl_lang_region);
568 Elm_Object_Item *navi_it = elm_naviframe_top_item_get(ad->navi_bar);
570 elm_object_item_text_set(navi_it, _(KeyStr_LanguageRegion));
571 setting_phone_update_item(ad);
575 case UG_EVENT_ROTATE_PORTRAIT:
577 case UG_EVENT_ROTATE_PORTRAIT_UPSIDEDOWN:
579 case UG_EVENT_ROTATE_LANDSCAPE:
581 case UG_EVENT_ROTATE_LANDSCAPE_UPSIDEDOWN:
588 static void setting_phone_ug_on_key_event(struct ui_gadget *ug,
589 enum ug_key_event event,
590 bundle *data, void *priv)
593 SettingPhoneUG *ad = (SettingPhoneUG *) priv;
596 SETTING_TRACE("event:%d", event);
598 case UG_KEY_EVENT_END:
600 if (elm_naviframe_top_item_get(ad->navi_bar) ==
601 elm_naviframe_bottom_item_get(ad->navi_bar)) {
604 setting_view_cb_at_endKey(ad);
613 UG_MODULE_API int UG_MODULE_INIT(struct ug_module_ops *ops)
616 SettingPhoneUG *phoneUG = calloc(1, sizeof(SettingPhoneUG));
617 setting_retvm_if(!phoneUG, -1, "Create SettingPhoneUG obj failed");
619 ops->create = setting_phone_ug_on_create;
620 ops->start = setting_phone_ug_on_start;
621 ops->pause = setting_phone_ug_on_pause;
622 ops->resume = setting_phone_ug_on_resume;
623 ops->destroy = setting_phone_ug_on_destroy;
624 ops->message = setting_phone_ug_on_message;
625 ops->event = setting_phone_ug_on_event;
626 ops->key_event = setting_phone_ug_on_key_event;
628 ops->opt = UG_OPT_INDICATOR_ENABLE;
633 UG_MODULE_API void UG_MODULE_EXIT(struct ug_module_ops *ops)
636 struct SettingPhoneUG *phoneUG;
637 setting_retm_if(!ops, "ops == NULL");
645 UG_MODULE_API int setting_plugin_reset(bundle *data, void *priv)
650 const char *ug_type = bundle_get_val(data, "viewtype"); /* usb */
651 // ug_type :"notification" "license" "language"..
652 #if SUPPORT_RUN_SYSTEM_COMMAND
653 ret += excuteCmd(SETTING_POSTINST_FILE, 1, ug_type);
655 if (0 == safeStrCmp(ug_type, "notification")) {
656 ret += vconf_set_bool
657 (VCONFKEY_SETAPPL_STATE_TICKER_NOTI_DISPLAY_CONTENT_BOOL, FALSE);
660 (VCONFKEY_SETAPPL_STATE_TICKER_NOTI_MESSAGES_BOOL, TRUE);
663 (VCONFKEY_SETAPPL_STATE_TICKER_NOTI_VMAIL_BOOL, TRUE);
666 (VCONFKEY_SETAPPL_STATE_TICKER_NOTI_EMAIL_BOOL, TRUE);
668 vconf_set_bool(VCONFKEY_SETAPPL_STATE_TICKER_NOTI_SNS_BOOL, FALSE);
671 (VCONFKEY_SETAPPL_STATE_TICKER_NOTI_FILE_TRAN_BOOL, TRUE);
674 } else if (0 == safeStrCmp(ug_type, "license")) {
677 (VCONFKEY_SETAPPL_STATE_TRANSACTION_TRACKING_BOOL, FALSE);
679 vconf_set_bool(VCONFKEY_SETAPPL_STATE_EXPIRY_REMINDER_BOOL, FALSE);
681 vconf_set_int(VCONFKEY_SETAPPL_ROAMING_NETWORK_INT,
682 SETTING_ROAM_NET_AUTO_DOWNLOAD);
683 } else if (0 == safeStrCmp(ug_type, "language")) {
684 // INT_SLP_SETTING_LANG
685 ret += vconf_set_int(VCONFKEY_SETAPPL_LANG_INT, SETTING_LANG_ENGLISH);
686 ret += vconf_set_str(VCONFKEY_LANGSET, "en_US.UTF-8");
687 ret += vconf_set_str(VCONFKEY_REGIONFORMAT,"en_US.UTF-8");
691 if (0 == safeStrCmp(ug_type, "language"))
693 SETTING_TRACE("Begin to reset language & region...");
694 //a. notify system language changed
695 char lang_changed_sys_noti_name[SYS_NOTI_NAME_LEN];
697 res = heynoti_get_snoti_name("LANG_CHANGED",
698 lang_changed_sys_noti_name,
699 sizeof(lang_changed_sys_noti_name));
701 heynoti_publish(lang_changed_sys_noti_name);
705 //b .reset default localeid
707 uloc_setDefault("en_US", &err);
709 //c. reset date&time format
710 vconf_set_int(VCONFKEY_SETAPPL_DATE_FORMAT_INT, SETTING_DATE_FORMAT_DD_MM_YYYY);
712 //d. terminate other apps
713 ret += aul_app_get_running_app_info(app_terminate_func, NULL);