Apply new winset at date and time for supporting setupwizard
[apps/core/preloaded/settings.git] / setting-time / src / setting-time-main.c
index fec3b10..ba12d4f 100755 (executable)
@@ -29,6 +29,9 @@
 #include <string.h>
 #include <sqlite3.h>
 
+#include <vconf.h>
+#include <vconf-keys.h>
+
 #include <unicode/udat.h>
 #include <unicode/ustring.h>
 #include <unicode/uloc.h>
@@ -50,7 +53,7 @@ static bool get_city_name(char* tzname);
 
 static char* s_result;
 static int query_callback(void *NotUsed, int argc, char **argv, char **azColName);
-
+static bool setting_update_timezone(SettingTimeUG *ad);
 
 static int setting_time_main_create(void *cb);
 static int setting_time_main_destroy(void *cb);
@@ -67,9 +70,15 @@ setting_view setting_view_time_main = {
 static void setting_time_reboot_resp_cb(void *data, Evas_Object *obj,
                                        void *event_info);
 
-#if TIME_CHANGED_HEYNOTY_CALLBACK
-void time_changed_callback(void *data)
+bool __update_timezone_idler(SettingTimeUG *ad)
 {
+       setting_update_timezone(ad);
+       ad->update_timezone_idler = NULL;
+       return 0;
+}
+
+void time_changed_callback(keynode_t *key, void *data) {
+
        SETTING_TRACE_DEBUG("time and timezone have been changed: TIME_CHANGED_HEYNOTY_CALLBACK");
        SettingTimeUG *ad = (SettingTimeUG *)data;
 
@@ -78,6 +87,7 @@ void time_changed_callback(void *data)
                SETTING_TRACE("FAIL: setting_time_update_db(ad)\n");
        }
 
+       SETTING_TRACE("ad->is_datefield_selected:%d", ad->is_datefield_selected)
        if(EINA_TRUE == ad->is_datefield_selected) {
                /* Timezone is not changed and a selected value of the datefield is already changed */
                SETTING_TRACE("Datefield is selected\n");
@@ -85,11 +95,9 @@ void time_changed_callback(void *data)
        }
 
        tzset();
-
        // vconfset to update timezone
        char pTZPath[__MAX_PATH_SIZE];
        ssize_t nLen = readlink(SETTING_TZONE_SYMLINK_PATH, pTZPath, sizeof(pTZPath)-1);
-
        if (nLen != -1) {
                pTZPath[nLen] = '\0';
        } else {
@@ -101,16 +109,25 @@ void time_changed_callback(void *data)
                SETTING_TRACE("__setting_set_city_tzone ERROR");
                return;
        }
-
-       setting_time_main_update(data);
-
        char *timezone = vconf_get_str(VCONFKEY_SETAPPL_TIMEZONE_ID);
        setting_retm_if(timezone == NULL, "get vonf failed");
-
        ICU_set_timezone(timezone);
        FREE(timezone);
+
+       // update timezone
+       if (ad->update_timezone_idler) {
+               ecore_idler_del(ad->update_timezone_idler);
+               ad->update_timezone_idler = NULL;
+       }
+       ad->update_timezone_idler =
+           ecore_idler_add((Ecore_Task_Cb) __update_timezone_idler, ad);
+       // update time
+       if (ad->refresh_time_idler) {
+               ecore_idler_del(ad->refresh_time_idler);
+               ad->refresh_time_idler = NULL;
+       }
+       ad->refresh_time_idler = ecore_idler_add(setting_update_datefield, ad);
 }
-#endif
 
 void setting_time_update_time_date_format_string(SettingTimeUG *ad)
 {
@@ -193,12 +210,6 @@ bool setting_update_timezone(SettingTimeUG *ad)
        return 0;
 }
 
-bool __update_timezone_idler(SettingTimeUG *ad)
-{
-       setting_update_timezone(ad);
-       ad->update_timezone_idler = NULL;
-       return 0;
-}
 
 static void setting_time_main_int_vconf_change_cb(keynode_t *key, void *data)
 {
@@ -310,7 +321,6 @@ static void setting_time_main_datefield_change_cb(void *data, Evas_Object *obj,
 
        /*  local time  -> gmtime */
        time_t the_time = mktime(&_tm); /* represent local time */
-       ad->changed_time = the_time;
 
        if ( (time(NULL)/ONE_MINUTE) == (the_time/ONE_MINUTE) )
        {
@@ -341,7 +351,7 @@ static void setting_time_main_datefield_change_cb(void *data, Evas_Object *obj,
 
 Eina_Bool __refresh_date_timer(void *data)
 {
-       SETTING_TRACE_BEGIN;
+       //SETTING_TRACE_BEGIN;
        SettingTimeUG *ad = data;
        if (ad->data_time) {
                time_t ctime = time(NULL);
@@ -349,7 +359,13 @@ Eina_Bool __refresh_date_timer(void *data)
                struct tm *ts = localtime_r(&ctime, &ts_ret);
                retv_if(!ts, 1);
 
-               elm_datetime_value_set(ad->data_time->eo_check, &ts_ret);
+               struct tm ui_time;
+               elm_datetime_value_get(ad->data_time->eo_check, &ui_time);
+               if ( (ctime/ONE_MINUTE) != (mktime(&ui_time)/ONE_MINUTE) )
+               {
+                       SETTING_TRACE("To refresh the UI element after 1 minute passed.\t in %s", __FUNCTION__);
+                       elm_datetime_value_set(ad->data_time->eo_check, &ts_ret);
+               }
        }
        return 1;
 }
@@ -448,6 +464,50 @@ static void __setting_time_main_exp_cb(void *data, Evas_Object *obj,
        }
 }
 
+/**
+ * layyout create - remove a conformant
+ */
+Evas_Object *setting_create_win_layout2(Evas_Object *win_layout,
+                                      Evas_Object *win_obj)
+{
+       Evas_Object *layout = NULL;
+       //Evas_Object *conform = elm_conformant_add(win_obj);
+       /*  Base Layout */
+       layout = elm_layout_add(win_obj);
+       setting_retvm_if(layout == NULL, FALSE, "layout == NULL");
+
+       elm_layout_theme_set(layout, "layout", "application", "default");
+       evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(layout, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       elm_win_resize_object_add(win_obj, layout);
+       //elm_win_resize_object_add(win_obj, conform);
+       //elm_object_content_set(conform, layout);
+
+       Evas_Object *bg = setting_create_bg(layout, win_obj, "group_list");
+       elm_object_part_content_set(layout, "elm.swallow.bg", bg);
+       evas_object_show(layout);
+       //evas_object_show(conform);
+       return layout;
+}
+
+
+
+Evas_Object *setting_create_layout_navi_bar2(Evas_Object *win_layout, Evas_Object *win_obj, char *title_str, char *lbutton_str, char *rbutton_str, char *mbutton_str, setting_call_back_func lbutton_click_cb, setting_call_back_func rbutton_click_cb, setting_call_back_func mbutton_click_cb, void *cb_data, Evas_Object *eo_view,  /*any container obj constructed on any evas obj */
+                                           Evas_Object **navi_bar,
+                                           Evas_Object **titleobj)
+{
+
+       Evas_Object *layout = setting_create_win_layout2(win_layout, win_obj);
+       *navi_bar = setting_create_navi_bar(layout);
+
+       setting_create_navi_bar_buttons(title_str,
+                                       lbutton_str, rbutton_str, mbutton_str,
+                                       lbutton_click_cb, rbutton_click_cb,
+                                       mbutton_click_cb, cb_data, eo_view /*content */ ,
+                                       *navi_bar, NULL);
+       return layout;
+}
+
 static int setting_time_main_create(void *cb)
 {
        SETTING_TRACE_BEGIN;
@@ -479,6 +539,7 @@ static int setting_time_main_create(void *cb)
 
        ad->caller = caller;
        if (ad->caller) {
+               /* for setup wizard */
                char *lbtn_str = (char *)g_strdup(l_btn);
                bool same_flag = FALSE;
                if (0 == safeStrCmp(l_btn, _("IDS_COM_BODY_BACK"))) {
@@ -486,7 +547,7 @@ static int setting_time_main_create(void *cb)
                        same_flag = TRUE;
                }
 
-               Evas_Object *controllbar = NULL;
+               //Evas_Object *controllbar = NULL;
 
                scroller = elm_genlist_add(ad->win_main_layout);
                elm_object_style_set(scroller, "dialogue");
@@ -499,28 +560,50 @@ static int setting_time_main_create(void *cb)
 
                elm_genlist_clear(scroller);
                ad->ly_main =
-                           setting_create_layout_navi_bar(ad->win_main_layout,
+                           setting_create_layout_navi_bar2(ad->win_main_layout,
                                                           ad->win_get,
                                                           title,
                                                           NULL, NULL, NULL,
                                                           NULL, NULL, NULL,
                                                           ad, scroller,
                                                           &ad->navi_bar,
-                                                          &controllbar);
+                                                          NULL);
+               /* left button */
+               Evas_Object *lbtn_obj = elm_button_add(ad->win_main_layout);
+               if(lbtn_obj == NULL)
+                       return SETTING_DRAW_ERR_FAIL_SCROLLER;
 
-               elm_toolbar_item_append(controllbar, IMG_PREVIOUS, l_btn, l_button_cb, ad);
-               elm_object_item_disabled_set(elm_toolbar_item_append(controllbar, NULL, "", NULL, NULL), EINA_TRUE);
-               elm_object_item_disabled_set(elm_toolbar_item_append(controllbar, NULL, "", NULL, NULL), EINA_TRUE);
-               elm_toolbar_item_append(controllbar, IMG_NEXT, r_btn, r_button_cb, ad);
+               Evas_Object *licon_obj = elm_icon_add(ad->win_main_layout);
+               if(licon_obj == NULL)
+                       return SETTING_DRAW_ERR_FAIL_SCROLLER;
+               elm_icon_file_set(licon_obj, IMG_PREVIOUS, NULL);
+
+               elm_object_style_set(lbtn_obj, "naviframe/toolbar/default");
+               elm_object_text_set(lbtn_obj, l_btn);
+               elm_object_part_content_set(lbtn_obj, "elm.swallow.content", licon_obj);
+               evas_object_smart_callback_add(lbtn_obj, "clicked", l_button_cb, ad);
 
-                if (same_flag) {
-                        setting_time_main_controlbar_lbtn_label_set(controllbar,
-                                                                   lbtn_str);
-                }
-                if (lbtn_str) {
-                        G_FREE(lbtn_str);
-                }
+               /* right button */
+               Evas_Object *rbtn_obj = elm_button_add(ad->win_main_layout);
+               if(rbtn_obj == NULL)
+                       return SETTING_DRAW_ERR_FAIL_SCROLLER;
 
+               Evas_Object *ricon_obj = elm_icon_add(ad->win_main_layout);
+               if(ricon_obj == NULL)
+                       return SETTING_DRAW_ERR_FAIL_SCROLLER;
+               elm_icon_file_set(ricon_obj, IMG_NEXT, NULL);
+
+               elm_object_style_set(rbtn_obj, "naviframe/toolbar/default");
+               elm_object_text_set(rbtn_obj, r_btn);
+               elm_object_part_content_set(rbtn_obj, "elm.swallow.content", ricon_obj);
+               evas_object_smart_callback_add(rbtn_obj, "clicked", r_button_cb, ad);
+
+               Elm_Object_Item *navi_it = elm_naviframe_top_item_get(ad->navi_bar);
+               if(navi_it)
+               {
+                       elm_object_item_part_content_set(navi_it, "toolbar_button1", lbtn_obj);
+                       elm_object_item_part_content_set(navi_it, "toolbar_button2", rbtn_obj);
+               }
        } else {
                l_btn = _("IDS_COM_BODY_BACK");
                title = _("IDS_ST_BODY_DATE_AND_TIME");
@@ -546,6 +629,57 @@ static int setting_time_main_create(void *cb)
                                 &err);
        bool auto_flag = value;
 
+       if(auto_flag) //do special process only when auto mode
+       {
+               //to read TAPI vconfs
+               int ret = 0;
+               int t_nitz = 0;
+               int t_offset = 0;
+               ret += vconf_get_int(VCONFKEY_TELEPHONY_NITZ_GMT, &t_nitz);
+               ret += vconf_get_int(VCONFKEY_TELEPHONY_NITZ_EVENT_GMT, &t_offset);
+               char *tzpath = vconf_get_str(VCONFKEY_TELEPHONY_NITZ_ZONE);
+               if (ret == 0 && !isEmptyStr(tzpath))
+               {
+                       //1.to update timezone
+                       char tz_path[MAX_COMMON_BUFFER_LEN / 4 + 1];
+                       safeCopyStr(tz_path, SETTING_TIME_ZONEINFO_PATH, MAX_COMMON_BUFFER_LEN / 4);
+                       g_strlcat(tz_path, tzpath, sizeof(tz_path));
+                       SETTING_TRACE("full tz_path:%s", tz_path);
+                       ret = sysman_set_timezone(tz_path);
+                       if (ret < 0) {
+                               SETTING_TRACE("tzpath is not valid.");
+                       } else
+                               SETTING_TRACE("sysman_set_timezone - successful : %s \n", tz_path);
+                       if (!__setting_set_city_tzone(tzpath)) {
+                               SETTING_TRACE("__setting_set_city_tzone ERROR")
+                       }
+                       if (get_city_name(tzpath)) {
+                               SETTING_TRACE(">>>>>> RESULT : %s", get_city_name_result());
+                       }
+                       char* city = get_city_name_result();
+                       SETTING_TRACE("city:%s", city);
+                       ret = vconf_set_str(VCONFKEY_SETAPPL_CITYNAME_INDEX_INT, city);
+
+                       // 2.to set current time
+                       int t_uptime = 0;
+                       FILE *fp = fopen("/proc/uptime", "r");
+                       if (fp) {
+                               if (!fscanf(fp, "%d", &t_uptime)) {
+                                       SETTING_TRACE_ERROR("fscanf error");
+                               }
+                               fclose(fp);
+                               fp = NULL;
+                       } else {
+                               SETTING_TRACE_ERROR("fopen error");
+                       }
+
+                       SETTING_TRACE("t_nitz:%d, t_offset:%d, t_uptime:%d", t_nitz, t_offset, t_uptime);
+                       time_t t_current = t_nitz + t_uptime - t_offset;
+                       SETTING_TRACE("t_current:%d", t_current);
+                       ret = sysman_set_datetime(t_current);
+               }
+       }
+
        /*  UI automatic */
        if (!isEmulBin()) {
                ad->data_auto =
@@ -569,7 +703,7 @@ static int setting_time_main_create(void *cb)
                                                 ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
        }
 
-       appcore_set_i18n("worldclock", SETTING_TIME_SHARE_LOCAL_PATH);
+       setting_set_i18n("worldclock", SETTING_TIME_SHARE_LOCAL_PATH);
 
        char time_zone_sub_str[CITY_BUF_SIZE + GMT_BUF_SIZE + 3] = { 0, };
        char *pa_timezone = NULL;
@@ -592,9 +726,13 @@ static int setting_time_main_create(void *cb)
                if (ret) {
                        SETTING_TRACE(">>>>>> RESULT : %s", get_city_name_result());
                }
-               char* cityname_id = get_city_name_result();
+               char* cityname_id = _(get_city_name_result());
+               SETTING_TRACE("cityname_id:%s", cityname_id);
+               if (cityname_id && 0 != safeStrCmp(cityname_id, "NULL"))
+                       ret = snprintf(time_zone_sub_str, CITY_BUF_SIZE + GMT_BUF_SIZE + 2, "%s, GMT %s", cityname_id, _(str_buf));
+               else
+                       ret = snprintf(time_zone_sub_str, CITY_BUF_SIZE + GMT_BUF_SIZE + 2, "%s, GMT +09", _("IDS_WCL_BODY_CITYNAME_SEOUL"));
 
-               ret = snprintf(time_zone_sub_str, CITY_BUF_SIZE + GMT_BUF_SIZE + 2, "%s, GMT %s", _(cityname_id), _(str_buf));
                FREE(pa_city);
                FREE(pa_timezone);
                retv_if(ret < 0, 0);
@@ -720,32 +858,7 @@ static int setting_time_main_create(void *cb)
        }
 
        setting_view_time_main.is_create = 1;
-
-#if TIME_CHANGED_HEYNOTY_CALLBACK
-       /* ---------------------------------------------------------------- */
-       /*  heynoti registration */
-       /* ---------------------------------------------------------------- */
-       ad->noti_fd = heynoti_init();
-
-       if (ad->noti_fd == -1) {
-               SETTING_TRACE("heynoti_init FAIL");
-               return SETTING_RETURN_FAIL;
-       } else {
-               SETTING_TRACE("heynoti_init OK");
-       }
-
-       if (-1 == heynoti_subscribe(ad->noti_fd, SETTING_TIME_CHANGED, time_changed_callback, (void *)ad)) {
-               SETTING_TRACE("heynoti_subscribe FAIL");
-       } else {
-               SETTING_TRACE("heynoti_subscribe OK");
-       }
-
-       if (-1 == heynoti_attach_handler(ad->noti_fd)) {
-               SETTING_TRACE("heynoti_attach_handler FAIL");
-       } else {
-               SETTING_TRACE("heynoti_attach_handler OK");
-       }
-#endif
+       vconf_notify_key_changed(VCONFKEY_SYSTEM_TIME_CHANGED, time_changed_callback, (void *)ad);
 
        /*  register vconf key to get event callback for converting 12/24H */
        ret = vconf_notify_key_changed(VCONFKEY_REGIONFORMAT_TIME1224,
@@ -773,16 +886,6 @@ static int setting_time_main_destroy(void *cb)
 
        SettingTimeUG *ad = (SettingTimeUG *) cb;
 
-#if TIME_CHANGED_HEYNOTY_CALLBACK
-       /* Closing heynoti */
-       if (ad->noti_fd != -1)//first need to check the fd validation
-       {
-               heynoti_unsubscribe(ad->noti_fd, SETTING_TIME_CHANGED, time_changed_callback);
-               //heynoti_detach_handler() will be done in heynoti_close().
-               heynoti_close(ad->noti_fd);
-               ad->noti_fd = -1;
-       }
-#endif
        if (ad->update_timer) {
                ecore_timer_del(ad->update_timer);
                ad->update_timer = NULL;
@@ -803,6 +906,10 @@ static int setting_time_main_destroy(void *cb)
                ecore_idler_del(ad->refresh_time_idler);
                ad->refresh_time_idler = NULL;
        }
+
+       vconf_ignore_key_changed(VCONFKEY_SYSTEM_TIME_CHANGED,
+                                time_changed_callback);
+
        vconf_ignore_key_changed(VCONFKEY_REGIONFORMAT_TIME1224,
                                 setting_time_main_int_vconf_change_cb);
        vconf_ignore_key_changed(VCONFKEY_SETAPPL_DATE_FORMAT_INT,
@@ -916,6 +1023,7 @@ setting_time_main_launch_worldclock_result_ug_cb(ui_gadget_h ug,
        } else {
                SETTING_TRACE("tzpath : %s", tzpath );
        }
+       SETTING_TRACE("city : %s", city );
 
        /* --------------------------------------------------------------------- */
        char tz_path[MAX_COMMON_BUFFER_LEN / 4 + 1];
@@ -942,7 +1050,8 @@ setting_time_main_launch_worldclock_result_ug_cb(ui_gadget_h ug,
 
        // update the display for timezone
        setting_update_timezone(ad);
-       heynoti_publish(SETTING_TIME_CHANGED);
+       static int t_event_val = -1;
+       vconf_set_int (VCONFKEY_SYSTEM_TIME_CHANGED, t_event_val);
        SETTING_TRACE_END;
 }
 
@@ -1029,7 +1138,13 @@ Eina_Bool setting_update_datefield(void *cb)
        retvm_if(cb == NULL, EINA_FALSE, "Data parameter is NULL");
        SettingTimeUG *ad = (SettingTimeUG *) cb;
 
-       __refresh_date_timer(ad);
+       //__refresh_date_timer(ad);
+       if (ad->data_time) {
+               time_t ctime = time(NULL);
+               struct tm ts_ret;
+               struct tm *ts = localtime_r(&ctime, &ts_ret);
+               if (ts) elm_datetime_value_set(ad->data_time->eo_check, &ts_ret);
+       }
        ad->refresh_time_idler = NULL;
        return 0;
 }
@@ -1127,6 +1242,85 @@ static void setting_time_reboot_resp_cb(void *data, Evas_Object *obj,
                ad->pop = NULL;
        }
 }
+static void __time_auto_update(void *data)
+{
+       setting_retm_if(data == NULL, "Data parameter is NULL");
+       SettingTimeUG *ad = (SettingTimeUG *) data;
+       int err;
+       setting_set_bool_slp_key(BOOL_SLP_SETTING_AUTOMATIC_TIME_UPDATE,
+            SETTING_ON_OFF_BTN_ON, &err);
+       if (ad->data_tz) {
+               setting_disable_genlist_item(ad->data_tz->item);
+       }
+
+       if (ad->data_time) {
+               ad->data_time->isItemDisableFlag = FALSE;
+               setting_disable_evas_object(ad->data_time->eo_check);
+               setting_disable_genlist_item(ad->data_time->item);
+       }
+
+       int ret = 0;
+
+       int t_nitz = 0;
+       int t_offset = 0;
+       ret += vconf_get_int(VCONFKEY_TELEPHONY_NITZ_GMT, &t_nitz);
+       ret += vconf_get_int(VCONFKEY_TELEPHONY_NITZ_EVENT_GMT, &t_offset);
+       char *tzpath = vconf_get_str(VCONFKEY_TELEPHONY_NITZ_ZONE);
+       if (ret != 0 || isEmptyStr(tzpath))
+       {
+               setting_create_simple_popup(ad, ad->win_get,
+                                           NULL, _("TAPI doesn't support this sim card to update time automatically!"));
+               return;
+       }
+       ret = 0;//reset..
+
+       // a.time zone
+       SETTING_TRACE("tz_path:%s", tzpath);
+
+       char tz_path[MAX_COMMON_BUFFER_LEN / 4 + 1];
+       safeCopyStr(tz_path, SETTING_TIME_ZONEINFO_PATH, MAX_COMMON_BUFFER_LEN / 4);
+       g_strlcat(tz_path, tzpath, sizeof(tz_path));
+       SETTING_TRACE("full tz_path:%s", tz_path);
+       ret = sysman_set_timezone(tz_path);
+       if (ret < 0) {
+               SETTING_TRACE("tzpath is not valid.");
+               return;
+       } else
+               SETTING_TRACE("sysman_set_timezone - successful : %s \n", tz_path);
+       if (!__setting_set_city_tzone(tzpath)) {
+               SETTING_TRACE("__setting_set_city_tzone ERROR")
+               return;
+       }
+       if (get_city_name(tzpath)) {
+               SETTING_TRACE(">>>>>> RESULT : %s", get_city_name_result());
+       }
+       char* city = get_city_name_result();
+       SETTING_TRACE("city:%s", city);
+       ret = vconf_set_str(VCONFKEY_SETAPPL_CITYNAME_INDEX_INT, city);
+       setting_retm_if(ret != 0, "set vconf failed");
+       setting_update_timezone(ad);
+
+       // b.TIME AND DATE
+       int t_uptime = 0;
+       FILE *fp = fopen("/proc/uptime", "r");
+       fscanf(fp, "%d", &t_uptime);
+       SETTING_TRACE("t_nitz:%d, t_offset:%d, t_uptime:%d", t_nitz, t_offset, t_uptime);
+       time_t t_current = t_nitz + t_uptime - t_offset;
+       SETTING_TRACE("t_current:%d", t_current);
+       ret = sysman_set_datetime(t_current);
+       setting_retm_if(ret == -1, "sysman_set_datetime call failed");
+       //ad->changed_time = t_current;
+       if (ad->data_time) {
+               struct tm ts_ret;
+               struct tm *ts = localtime_r(&t_current, &ts_ret);
+               ret_if(!ts);
+               elm_datetime_value_set(ad->data_time->eo_check, &ts_ret);
+       }
+
+       // event notification
+       static int t_event_val = -1;
+       vconf_set_int (VCONFKEY_SYSTEM_TIME_CHANGED, t_event_val);
+}
 
 static void
 setting_time_main_chk_btn_cb(void *data, Evas_Object *obj, void *event_info)
@@ -1168,6 +1362,7 @@ setting_time_main_chk_btn_cb(void *data, Evas_Object *obj, void *event_info)
                        }
 
                } else {
+#if UN_SUPPORT_TIME_DYNAMIC_UPDATE
                        ad->pop =
                            setting_create_popup_with_btn(ad, ad->win_get, NULL,
                                                 _("IDS_ST_POP_RESTART_PHONE_TO_USE_AUTOMATIC_UPDATE_Q"),
@@ -1176,11 +1371,12 @@ setting_time_main_chk_btn_cb(void *data, Evas_Object *obj, void *event_info)
                                                 dgettext("sys_string",
                                                       "IDS_COM_SK_OK"),
                                                 _("IDS_COM_SK_CANCEL"));
+#else
+                       __time_auto_update(ad);
+#endif
                }
        }
 }
-
-
 static void setting_time_main_mouse_up_Gendial_list_cb(void *data, Evas_Object *obj,
                                           void *event_info)
 {
@@ -1242,6 +1438,7 @@ static void setting_time_main_mouse_up_Gendial_list_cb(void *data, Evas_Object *
                        }
 
                } else {
+                       #if UN_SUPPORT_TIME_DYNAMIC_UPDATE
                        ad->pop =
                            setting_create_popup_with_btn(ad, ad->win_get, NULL,
                                                 _("IDS_ST_POP_RESTART_PHONE_TO_USE_AUTOMATIC_UPDATE_Q"),
@@ -1249,6 +1446,9 @@ static void setting_time_main_mouse_up_Gendial_list_cb(void *data, Evas_Object *
                                                 0, 2,
                                                 dgettext("sys_string", "IDS_COM_SK_OK"),
                                                 _("IDS_COM_SK_CANCEL"));
+                       #else
+                       __time_auto_update(ad);
+                       #endif
                }
 
        } else if (!safeStrCmp("IDS_ST_BODY_TIME_FORMAT", list_item->keyStr)
@@ -1383,7 +1583,6 @@ static void setting_time_main_controlbar_lbtn_label_set(
  */
 static void get_gmt_offset(char *str_buf, int size)
 {
-       SETTING_TRACE(" before GMT processing : %s", str_buf);
        // timezone string +/-<n> ex. +9, -1
        time_t t = time(0);     // get unix time. sec.