fixed N_SE_12778
authorMyoungJune Park <mj2004.park@samsung.com>
Sun, 30 Dec 2012 22:16:16 +0000 (07:16 +0900)
committerMyoungJune Park <mj2004.park@samsung.com>
Sun, 30 Dec 2012 22:16:16 +0000 (07:16 +0900)
setting-common/include/setting-common-general-func.h
setting-common/src/setting-common-general-func.c
setting-phone/src/setting-phone-display-language.c
setting-phone/src/setting-phone.c
src/setting-main.c
src/setting-plugin.c
src/setting.c

index 3552829..731112e 100755 (executable)
@@ -109,5 +109,7 @@ extern void font_size_set();
 
 extern int setting_set_i18n(char* pkgname, char* localedir);
 extern void app_launcher(char* pkg_name);
+extern char* substring(const char* str, size_t begin, size_t len);
+extern void set_defaultLangICU();
 
 #endif                         /* __SETTING_COMMON_GENERAL_FUNC_H__ */
index 4e594a0..3327aab 100755 (executable)
@@ -1551,3 +1551,25 @@ void app_launcher(char* pkg_name)
        service_destroy(service);
        service = NULL;
 }
+
+char* substring(const char* str, size_t begin, size_t len)
+{
+  if (str == 0 || strlen(str) == 0 || strlen(str) < begin || strlen(str) < (begin+len))
+    return 0;
+
+  return strndup(str + begin, len);
+}
+
+void set_defaultLangICU()
+{
+       // set default local automatically
+       // ko.KR.UTF-8
+       char *pa_region = vconf_get_str(VCONFKEY_LANGSET);
+       char* pa_sub = substring(pa_region, 0, 4);
+       SETTING_TRACE(" main - region set from ug result : %s", pa_sub);
+       int err;
+       uloc_setDefault(pa_region, &err);
+       SETTING_TRACE("errorcode %d ", err);
+       FREE(pa_region);
+       FREE(pa_sub);
+}
index da299a8..d24395c 100755 (executable)
@@ -324,10 +324,14 @@ static void setting_phone_display_language_close_popup_ex(void *data)
        }
        SETTING_TRACE("pa_lang:%s", pa_lang);
        int err = -1;
-
        // 3. SET DEFAULT
        // default UI language
        uloc_setDefault(pa_lang, &err);
+       if (U_FAILURE(err)) {
+               SETTING_TRACE("FAILED  : uloc_setDefault error code : %d", err);
+       } else {
+               SETTING_TRACE("SUCCESS : uloc_setDefault error code : %d", err);
+       }
        FREE(pa_lang);
 
        /* after lang-change, go back to the previous page*/
index 2c050ca..0ca48d4 100755 (executable)
@@ -211,6 +211,12 @@ char *setting_phone_lang_get_region_str(const char *region)
        uloc_getDisplayName(region, localeID, displayname, SETTING_STR_SLP_LEN,
                            &status);
 
+       if (U_FAILURE(status)) {
+               SETTING_TRACE("NO : uloc_getDisplayName : %d ", status);
+       } else {
+               SETTING_TRACE(" OK : uloc_getDisplayName : %s ", displayname);
+       }
+
        char *str_displayname = setting_phone_lang_str_to_utf8(displayname);
        ret_str = (char *)g_strdup(str_displayname);
 
index d26d471..9129ee2 100755 (executable)
@@ -1900,8 +1900,10 @@ void setting_main_destroy_ug_cb(ui_gadget_h ug, void *priv)
 void setting_main_result_ug_cb(ui_gadget_h ug, service_h service,
                                      void *priv)
 {
-       if (!priv)
-               return;
+       if (!priv) return;
+
+       // set default local automatically
+       set_defaultLangICU();
 }
 
 void setting_main_layout_ug_cb(ui_gadget_h ug, enum ug_mode mode,
index afaaf2d..5784285 100755 (executable)
@@ -197,6 +197,7 @@ void setting_drawer_list_fini()
 
 static char* s_pkg_name;
 
+#if 0
 static char* substring(const char* str, size_t begin, size_t len)
 {
   if (str == 0 || strlen(str) == 0 || strlen(str) < begin || strlen(str) < (begin+len))
@@ -204,6 +205,7 @@ static char* substring(const char* str, size_t begin, size_t len)
 
   return strndup(str + begin, len);
 }
+#endif
 
 /**
  * package ID
index 4070cd0..81459be 100755 (executable)
@@ -540,14 +540,14 @@ static void setting_int_vconf_change_cb(keynode_t *key, void *data)
                                item_to_update->sub_desc = (char *)g_strdup(_("IDS_COM_BODY_ON_M_STATUS"));
                        }
                        FREE(pa_wifi_device);
-                       
+
                        item_to_update->chk_status = EINA_TRUE;
                        break;
                default:
                        SETTING_TRACE_ERROR("Invalid wifi status!");
                        return;
                }
-                       
+
                elm_check_state_set(item_to_update->eo_check, item_to_update->chk_status);
 
                if (ad->bAppPause || ad->ug) {
@@ -581,14 +581,14 @@ static void setting_int_vconf_change_cb(keynode_t *key, void *data)
 
                if (FALSE == status) {
                        item_to_update->sub_desc = (char *)g_strdup(_("IDS_COM_BODY_OFF_M_STATUS"));
-                       
+
                        item_to_update->chk_status = EINA_FALSE;
                } else {
                        item_to_update->sub_desc = (char *)g_strdup(_("IDS_COM_BODY_ON_M_STATUS"));
 
                        item_to_update->chk_status = EINA_TRUE;
                }
-                       
+
                item_to_update->chk_status = status;
                elm_check_state_set(item_to_update->eo_check, item_to_update->chk_status);
 
@@ -811,6 +811,8 @@ static bool setting_main_app_create(void *data)
        //SETTING_TRACE("[TIME] 4. setting_main_app_create taked %d msec ", appcore_measure_time());
        //appcore_measure_start();
 
+       // set default local automatically
+       set_defaultLangICU();
        return true;
 }