tizen 2.4 release
[apps/home/settings.git] / src / setting-main.c
index 8bd8523..5db7548 100644 (file)
 #include <setting-handler.h>
 #include <setting-helper.h>
 
+#include <system_settings.h>
+
 #include <setting-common-sound.h>
 #include <setting-common-alarmmgr.h>
 
 #include <sqlite3.h>
 
-/**
- * [UI] search bar
- * plain list item style
- */
-static char *s_grid_items[] = {
-       /* 1 */
-       KeyStr_FlightMode,
-       KeyStr_HighTouchSens,
-       KeyStr_MultiWindowMode,
-
-       KeyStr_Storage,
-       KeyStr_Sounds,
-       KeyStr_Display,
-
-       KeyStr_Wallpaper,
-       KeyStr_LockedScreen,
-       KeyStr_Noti_Panel,
-
-       /* 2 */
-       KeyStr_Motions,
-       /*      KeyStr_SafetyAssistance, */
-       KeyStr_Powersaving,
-
-};
-
 static int setting_main_create(void *cb);
 static int setting_main_destroy(void *cb);
 static int setting_main_update(void *cb);
@@ -82,7 +59,6 @@ void __all_gl_realized_cb(void *data, Evas_Object *obj, void *event_info)
        __gl_realized_cb(data, obj, event_info);
        setting_retm_if(event_info == NULL, "invalid parameter: event_info is NULL");
        Elm_Object_Item *item = (Elm_Object_Item *)event_info;
-       /*elm_object_item_signal_emit(item, "elm,state,default", "elm");//to cancel the 2depth color */
        Setting_GenGroupItem_Data *item_data = elm_object_item_data_get(item);
        if (!item_data) {
                return;
@@ -120,24 +96,8 @@ static void __all_gl_group_clicked_cb(void *data, Evas_Object *obj, void *event_
        else
                elm_object_item_signal_emit(data_parentItem->item, "elm,state,expanded", "elm");
 
-       int group_idx = data_parentItem->chk_status;
-
-       SETTING_TRACE("view_type:%d, group_idx:%d", view_type, group_idx);
-       start_item = ad->gl_data_item[view_type][group_idx]->item;
-       SETTING_TRACE("START:%s", _(ad->gl_data_item[view_type][group_idx]->keyStr));
-       if (group_idx != GL_Group_Apps) {
-               end_item = ad->gl_data_item[view_type][group_idx + 1]->item;
-               SETTING_TRACE("END:%s", _(ad->gl_data_item[view_type][group_idx + 1]->keyStr));
-       }
-
-       for (it = elm_genlist_item_next_get(start_item);
-            it && it != end_item; it = elm_genlist_item_next_get(it)) {
-               Setting_GenGroupItem_Data *data_parentItem = (Setting_GenGroupItem_Data *)elm_object_item_data_get(it);
-               if (data_parentItem && data_parentItem->keyStr) SETTING_TRACE("data_parentItem:%s", data_parentItem->keyStr);
-               elm_genlist_item_hide_set(it, hide_flag);
-               if (!hide_flag && group_idx == GL_Group_Apps) {
-                       elm_genlist_item_bring_in(it, ELM_GENLIST_ITEM_SCROLLTO_IN);
-               }
+       if (!start_item) {
+               SETTING_TRACE_ERROR(" ------------------> start_item IS NULL");
        }
 }
 
@@ -159,7 +119,8 @@ Evas_Object *_view_list_geter(void *data)
 
        ad->sc_gl[SC_All_List] = genlist;
        elm_genlist_realization_mode_set(genlist, EINA_TRUE);
-       elm_object_style_set(genlist, "dialogue");
+       elm_genlist_block_count_set(genlist, 2);
+       //elm_object_style_set(genlist, "dialogue");
        elm_genlist_clear(genlist);     /* first to clear list */
        elm_genlist_mode_set(genlist, ELM_LIST_COMPRESS);       /* resolve abnormal height issue */
        evas_object_smart_callback_add(genlist, "realized", __all_gl_realized_cb, ad);
@@ -167,8 +128,7 @@ Evas_Object *_view_list_geter(void *data)
 
        Setting_GenGroupItem_Data *item_data = NULL;
        Elm_Object_Item *item = NULL;
-       int group_dx = GL_Group_QuickSettings;
-       setting_main_genlist_handler_reset(ad);
+       int group_dx = GL_Group_Connection;
        /*---------------------------------------------------------------------------------------- */
        /* 2.category name loop */
        /*---------------------------------------------------------------------------------------- */
@@ -176,18 +136,16 @@ Evas_Object *_view_list_geter(void *data)
        char *keyStr = NULL;
        char *icon_path = NULL;
        char *ug_args = NULL;
-
        char *group_name = NULL;
        int index = 0;
        for (i = 0; i < setting_cfg_get_category_length(); i++) {
                group_name = setting_cfg_get_category_name(i);
                group_dx++;/*from the first */
-               item_data = setting_create_Gendial_field_groupitem(
+               item_data = setting_create_Gendial_field_def(
                                genlist,
-                               &(ad->itc[GENDIAL_Type_expandable_proc]),
-                               NULL,
+                               &(ad->itc_table[GENDIAL_Type_expandable_proc]),
                                __all_gl_group_clicked_cb,
-                               (void *)VIEW_All_List,
+                               (void *)NULL,
                                SWALLOW_Type_INVALID,
                                NULL, /* l_icon */
                                NULL, /* r_icon */
@@ -198,9 +156,6 @@ Evas_Object *_view_list_geter(void *data)
                if (item_data) {
                        item_data->isPlaying = TRUE;/*expandable ? */
                        item_data->chk_status = group_dx;/*keep the group idx */
-
-                       ad->gl_data_item[VIEW_All_List][group_dx] = item_data;
-                       __BACK_POINTER_SET(ad->gl_data_item[VIEW_All_List][group_dx]);
                }
 
                index = 0;
@@ -230,439 +185,23 @@ Evas_Object *_view_list_geter(void *data)
                                }
                        } else {
                                entry = settinig_drawer_hash_find(ad, "Default");
-                               item_data = entry->ui_handler(ad, keyStr, icon_path, ug_args, genlist, NULL);
-                               entry->item_data = item_data;
+                               if (entry) {
+                                       item_data = entry->ui_handler(ad, keyStr, icon_path, ug_args, genlist, NULL);
+                                       entry->item_data = item_data;
+                               }
                        }
 
                        /* dupcated code (REFACTORING) */
                        if (item_data && item_data->item) {
 
                                set_node_pointer(keyStr, item_data->item);
-                               setting_genlist_item_groupstyle_set(item_data, SETTING_GROUP_STYLE_CENTER);
                                index++;
                        }
                }
-
-               /*if (item_data) */
-               /*SETTING_TRACE("keyStr[%s] is being set to BOTTOM style",_(item_data->keyStr)); */
-               setting_genlist_item_groupstyle_set(item_data, index == 1 ? SETTING_GROUP_STYLE_NONE : SETTING_GROUP_STYLE_BOTTOM);
        }
-       setting_main_genlist_handler_set(ad, VIEW_All_List);
-       setting_main_genlist_handler_reset(ad);
        return genlist;
 }
 
-static void ___grid_select_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
-{
-       /*SETTING_TRACE_BEGIN; */
-       Evas_Object *image = elm_object_part_content_get(obj, "elm.swallow.icon");
-       const char *file;
-       elm_image_file_get(image, &file, NULL);
-       /*SETTING_TRACE("file:%s", file); */
-       if (!safeStrCmp(IMG_SETTING, file)) {
-               return;
-       }
-       setting_dim_evas_object(elm_object_part_content_get(obj, "elm.swallow.icon"), FALSE);
-       elm_object_signal_emit(obj, "SELECTED", "elm");
-
-       retm_if(event_info == NULL, "Invalid argument: event info is NULL");
-       retm_if(data == NULL, "Invalid argument: data is NULL");
-       Evas_Event_Mouse_Down *ev = (Evas_Event_Mouse_Down *)event_info;
-       Evas_Point *point_down = data;
-       point_down->x = ev->output.x;
-       point_down->y = ev->output.y;
-}
-
-static void ___grid_release_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
-{
-       /*SETTING_TRACE_BEGIN; */
-       setting_undo_dim_evas_object(elm_object_part_content_get(obj, "elm.swallow.icon"), FALSE);
-       elm_object_signal_emit(obj, "UNSELECTED", "elm");
-}
-
-static void ___grid_mouse_move_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
-{
-       /*SETTING_TRACE_BEGIN; */
-       retm_if(event_info == NULL, "Invalid argument: event info is NULL");
-       retm_if(data == NULL, "Invalid argument: data is NULL");
-       Evas_Point *point_down = data;
-       Evas_Event_Mouse_Move *ev = (Evas_Event_Mouse_Move *)event_info;
-       int x_offset = ev->cur.output.x - point_down->x;
-       int y_offset = ev->cur.output.y - point_down->y;
-       if (x_offset < 0) x_offset = -x_offset;
-       if (y_offset < 0) y_offset = -y_offset;
-       if (x_offset <= MIN_MOVE_DISTANCE && y_offset <= MIN_MOVE_DISTANCE) {
-               return;
-       }
-       setting_undo_dim_evas_object(elm_object_part_content_get(obj, "elm.swallow.icon"), FALSE);
-       elm_object_signal_emit(obj, "UNSELECTED", "elm");
-}
-static void ___grid_del_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
-{
-       /*SETTING_TRACE_BEGIN; */
-       ret_if(!data);
-       Evas_Point *point_down = data;
-       FREE(point_down);/*delete the date. */
-}
-
-/**
-* To make an object looks clickable: if pressed, it is dim color;if unpressed, it is normal color;
-*
-* @param[in] obj
-*/
-EXPORT_PUBLIC
-void __grid_clickable_enable(Evas_Object *obj)
-{
-       if (obj) {
-               Evas_Point *point_down = calloc(1, sizeof(Evas_Point));
-               evas_object_event_callback_add(obj, EVAS_CALLBACK_MOUSE_DOWN, ___grid_select_cb, point_down);
-               evas_object_event_callback_add(obj, EVAS_CALLBACK_MOUSE_UP, ___grid_release_cb, NULL);
-               evas_object_event_callback_add(obj, EVAS_CALLBACK_MOUSE_MOVE, ___grid_mouse_move_cb, point_down);
-               evas_object_event_callback_add(obj, EVAS_CALLBACK_DEL, ___grid_del_cb, point_down);
-       }
-}
-
-static void __grid_binded_vconf_cb(keynode_t *key, void *data)
-{
-       SETTING_TRACE_BEGIN;
-       char *vconf_name = vconf_keynode_get_name(key);
-       SETTING_TRACE("the value of [ %s ] just changed", vconf_name);
-       ret_if(!data);
-       Evas_Object *layout = data;
-       SETTING_TRACE("layout:%p", layout);
-       Evas_Object *image = elm_object_part_content_get(layout, "elm.swallow.icon");
-       ret_if(!image);
-
-       int status = 0;
-       char *icon_path = NULL;
-       if (!safeStrCmp(vconf_name, VCONFKEY_TELEPHONY_FLIGHT_MODE)) {
-               vconf_get_bool(VCONFKEY_TELEPHONY_FLIGHT_MODE, &status);
-               if (!status) {
-                       icon_path = (char *)g_strdup(SETTING_ICON_PATH_CFG"settings_flightoff2.png");
-               } else {
-                       icon_path = (char *)g_strdup(SETTING_ICON_PATH_CFG"A01-1_icon_Flight_Mode.png");
-               }
-       }
-#if SUPPORT_NETWORK_RESTRICTION
-       else if (!safeStrCmp(vconf_name, VCONFKEY_SETAPPL_NETWORK_RESTRICT_MODE)) {
-               vconf_get_bool(VCONFKEY_SETAPPL_NETWORK_RESTRICT_MODE, &status);
-               if (!status) {
-                       icon_path = (char *)g_strdup(IMG_NetRestrictionOffMode);
-               } else {
-                       icon_path = (char *)g_strdup(IMG_NetRestrictionMode);
-               }
-       }
-#endif
-       else if (!safeStrCmp(vconf_name, VCONFKEY_SETAPPL_ENHANCED_TOUCH)) {
-               vconf_get_bool(VCONFKEY_SETAPPL_ENHANCED_TOUCH, &status);
-               if (status) {
-                       icon_path = (char *)g_strdup(IMG_HighTouch);
-               } else {
-                       icon_path = (char *)g_strdup(IMG_HighTouchOff);
-               }
-       } else if (!safeStrCmp(vconf_name, VCONFKEY_QUICKSETTING_MULTIWINDOW_ENABLED)) {
-#if 0
-               vconf_get_bool(VCONFKEY_QUICKSETTING_MULTIWINDOW_ENABLED, &status);
-               if (!status) {
-                       icon_path = (char *)g_strdup(IMG_MutiWindowDisable);
-               } else {
-                       icon_path = (char *)g_strdup(IMG_MutiWindow);
-               }
-#else
-               icon_path = (char *)g_strdup(IMG_MutiWindow);
-#endif
-       }
-
-       if (icon_path) elm_image_file_set(image, icon_path, NULL);
-}
-
-/*Duplicate one to give diff instance vconf cb to the two same name grids */
-static void __grid_binded_vconf_cb2(keynode_t *key, void *data)
-{
-       __grid_binded_vconf_cb(key, data);
-}
-
-static void _grid_del(void *data, Evas_Object *obj)
-{
-       GridItem *item_data = (GridItem *) data;
-       if (item_data) {
-               G_FREE(item_data->name);
-               G_FREE(item_data->icon_path);
-               G_FREE((item_data->ug_name));
-               FREE(item_data);
-       }
-}
-
-
-
-/**
-* @brief update toggle state in Genlist
-*
-* when genGrid updates, the toggle states in Genlist should be updated too.
-*
-* @param data application context
-* @param obj NOT USED
-* @param event_info NOT USED
-*/
-static void ____gg_process_toogle_icon(void *data, Evas_Object *obj, void *event_info)
-{
-       SETTING_TRACE_BEGIN;
-       setting_retm_if(data == NULL, "data is NULL");
-       GridItem *pitem = (GridItem *)data;
-       /* do nothing now */
-       setting_main_appdata *ad = pitem->data;
-       setting_retm_if(ad == NULL, "ad is NULL");
-
-       if (safeStrCmp(pitem->name, KeyStr_FlightMode) == 0) {
-
-               int old_status, err;
-               setting_get_bool_slp_key(BOOL_SLP_SETTING_FLIGHT_MODE, &old_status, &err);
-               /* new status */
-               if (ad && !old_status) {
-                       ad->popup_flight_mode = setting_create_popup_with_btn(NULL,
-                                                                             ad->win_main, KeyStr_FlightMode,
-                                                                             ENABLE_FLIGHT_MODE_MSG,
-                                                                             setting_flightmode_turn_on_resp_cb,
-                                                                             0, 2, "IDS_ST_BUTTON_ENABLE", "IDS_COM_SK_CANCEL");
-               } else {
-
-                       Setting_GenGroupItem_Data *item_to_update;
-                       int i;
-                       for (i = VIEW_All_List; i < VIEW_Max; i++) {
-                               item_to_update = ad->gl_data_item[i][GL_FlightMode];
-                               setting_update_gl_item_chk_status(item_to_update, !old_status);
-                       }
-
-                       setting_main_alternate_flight_mode(!old_status);
-               }
-               return;
-       } else if (safeStrCmp(pitem->name, KeyStr_MultiWindowMode) == 0) {
-               int ret = 0;
-               int value = 0;
-               ret = vconf_get_bool(VCONFKEY_QUICKSETTING_MULTIWINDOW_ENABLED, &value);
-               SETTING_TRACE_DEBUG("vconf_get_bool() returns %d", ret);
-
-               const char *tmp = pitem->icon_path;
-               if (!value) {
-                       /*OFF->ON */
-                       pitem->icon_path = (char *)g_strdup(IMG_MutiWindow);
-               } else {
-                       /*ON->OFF */
-                       pitem->icon_path = (char *)g_strdup(IMG_MutiWindowDisable);
-               }
-               G_FREE(tmp);
-               /*update the icon */
-               Evas_Object *layout = NULL;
-               Evas_Object *image = NULL;
-               if ((layout = elm_object_item_part_content_get(pitem->item, "elm.swallow.icon"))
-                   && (image = elm_object_part_content_get(layout, "elm.swallow.icon"))) {
-                       elm_image_file_set(image, pitem->icon_path, NULL);
-               }
-
-               vconf_set_bool(VCONFKEY_QUICKSETTING_MULTIWINDOW_ENABLED, !value);
-       } else if (safeStrCmp(pitem->name, KeyStr_NetRestrictionMode) == 0) {
-               int status = SETTING_ON_OFF_BTN_OFF;
-               int err;
-               setting_get_bool_slp_key(BOOL_SLP_SETTING_NET_RESTRICTION_MODE, &status, &err);
-
-               if (!status) {
-                       /* Off -> On */
-                       ad->popup_net_restriction_mode = setting_create_popup_with_btn(NULL,
-                                                                                      ad->win_main,
-                                                                                      "IDS_ST_HEADER_NETWORK_RESTRICTION_MODE_ABB_JPN",
-                                                                                      "IDS_QP_POP_IN_NETWORK_RESTRICTION_MODE_YOU_CAN_USE_ALL_YOUR_APPLICATIONS_WITHOUT_CONNECTING_TO_THE_NETWORK_YOU_CAN_ALSO_RECEIVE_CALLS_AND_SMS_MESSAGES_MSG_JPN",
-                                                                                      setting_main_net_restriction_mode_turn_on_resp_cb,
-                                                                                      0,       /* timer */
-                                                                                      2,       /* button count */
-                                                                                      "IDS_COM_SK_OK",
-                                                                                      "IDS_COM_SK_CANCEL");
-               } else {
-                       /* On -> Off */
-                       ad->popup_net_restriction_mode = setting_create_popup_with_btn(NULL,
-                                                                                      ad->win_main,
-                                                                                      "IDS_ST_HEADER_NETWORK_RESTRICTION_MODE_ABB_JPN" ,
-                                                                                      "IDS_QP_POP_NETWORK_RESTRICTION_MODE_WILL_BE_DISABLED_JPN" ,
-                                                                                      setting_main_net_restriction_mode_turn_off_resp_cb,
-                                                                                      0,       /* timer */
-                                                                                      2,       /* button count */
-                                                                                      "IDS_COM_SK_OK",
-                                                                                      "IDS_COM_SK_CANCEL");
-               }
-               return;
-       } else if (safeStrCmp(pitem->name, KeyStr_HighTouchSens) == 0) {
-               int old_status = display_get_enhanced_touch();
-               display_set_enhanced_touch((!old_status));
-               int new_status = display_get_enhanced_touch();
-               SETTING_TRACE("old_status:%d, display_get_enhanced_touch():%d", old_status, new_status);
-               if (new_status >= 0) {
-                       const char *tmp = pitem->icon_path;
-                       if (1 == new_status) {
-
-                               vconf_set_bool(VCONFKEY_SETAPPL_ENHANCED_TOUCH, 1); /*sync to vconf */
-                               pitem->icon_path = (char *)g_strdup(IMG_HighTouch);
-                       } else {
-                               vconf_set_bool(VCONFKEY_SETAPPL_ENHANCED_TOUCH, 0); /*sync to vconf */
-                               pitem->icon_path = (char *)g_strdup(IMG_HighTouchOff);
-                       }
-                       G_FREE(tmp);
-
-                       Evas_Object *layout = NULL;
-                       Evas_Object *image = NULL;
-                       if ((layout = elm_object_item_part_content_get(pitem->item, "elm.swallow.icon"))
-                           && (image = elm_object_part_content_get(layout, "elm.swallow.icon"))) {
-                               elm_image_file_set(image, pitem->icon_path, NULL);
-                       }
-               } else {
-                       setting_create_simple_popup(NULL, ad->win_main,
-                                                   NULL, "IDS_COM_POP_UNEXPECTED_ERROR");
-               }
-               return;
-       }
-}
-
-
-/**
- * call event handler when touching each item on grid
- @todo REMOVE THE IF_ELSE NESTED
- */
-static void ___gg_item_selected(void *data, Evas_Object *obj, void *event_info)
-{
-       SETTING_TRACE_BEGIN;
-       setting_retm_if(data == NULL, "data is NULL");
-       GridItem *pitem = (GridItem *)data;
-
-       setting_main_appdata *ad = pitem->data;
-       setting_retm_if(ad == NULL, "ad is NULL");
-
-
-       char *style = evas_object_data_get(obj, "style");
-       /*SETTING_TRACE("style:%s", style); */
-       if (!isEmptyStr(style)) { /*has value "WithCheck", it indicates we are in edit mode */
-               /*in edit mode */
-               Evas_Object *layout = elm_object_item_part_content_get(pitem->item, "elm.swallow.icon");
-               if (layout) {
-                       Evas_Object *check = elm_object_part_content_get(layout, "elm.swallow.check");
-                       if (check) {
-                               int old = elm_check_state_get(check);
-                               SETTING_TRACE("old:%d", old);
-                               elm_check_state_set(check, !old);
-
-                               if (!old)
-                                       ad->edit_sel_list = eina_list_append(ad->edit_sel_list, pitem->name);
-                               else {
-                                       /*NOTE!! DO NOT USE eina_list_remove() */
-                                       /*The API was based on eina_list_data_find_list(), */
-                                       /*which cannot statisfy ad->edit_sel_list's demanding(ad->edit_sel_list keep const strings,not addresses of memory) */
-                                       /*eina_list_data_find_list use memory address to compare: list_data == data */
-                                       Eina_List *list = ad->edit_sel_list;
-                                       while (list) {
-                                               char *str = eina_list_data_get(list);
-                                               if (NULL == str)
-                                                       continue;
-                                               if (0 == safeStrCmp(str, pitem->name))
-                                                       break;
-                                               list = eina_list_next(list);
-                                       }
-                                       ad->edit_sel_list = eina_list_remove_list(ad->edit_sel_list, list);
-                               }
-
-                               char text[MAX_DISPLAY_NAME_LEN_ON_UI + 1] = {0, };
-                               snprintf(text, MAX_DISPLAY_NAME_LEN_ON_UI, _("IDS_ST_HEADER_PD_SELECTED"), eina_list_count(ad->edit_sel_list));
-                               elm_object_item_part_text_set(ad->edit_navi_it, "elm.text.title", text);
-                       }
-               }
-               return;
-       }
-
-       if (ad->isInUGMode && ad->ug) {
-               SETTING_TRACE(" UG is already loaded - do nothing ");
-               return;         /* do nothing */
-       }
-
-       effect_playsound_play();/* make sound (touch) */
-
-       if (!safeStrCmp(pitem->name, KeyStr_FlightMode)
-           || !safeStrCmp(pitem->name, KeyStr_NetRestrictionMode)
-           || !safeStrCmp(pitem->name, KeyStr_HighTouchSens)
-           /*|| !safeStrCmp(pitem->name, KeyStr_MultiWindowMode)*/) {
-               ____gg_process_toogle_icon(data, obj, event_info);
-               return;
-       } else if (!safeStrCmp(pitem->name, KeyStr_Call)
-                  || !safeStrCmp(pitem->name, keystr_Blockingmode)
-#if SUPPORT_DRIVINGMODE
-                  || !safeStrCmp(pitem->name, keystr_Drivingmode)
-#endif
-                 ) {
-               SETTING_TRACE("pitem->ug_name:%s", pitem->ug_name);
-               if (app_launcher(pitem->ug_name) == 0) {
-                       /* add timer */
-                       ad->event_freeze_timer = ecore_timer_add(1, setting_main_freeze_event_timer_cb, ad);
-                       evas_object_freeze_events_set(ad->navibar_main, EINA_TRUE);
-               }
-               int click_times = setting_cfg_get_click_times((char *)(pitem->name));
-               setting_cfg_set_click_times((char *)(pitem->name), ++click_times);
-               setting_cfg_file_update();
-               return;
-       }
-
-       /*special checking: */
-       /*1.Network cannot work when SIM card is not prepared */
-       if (safeStrCmp(pitem->name, KeyStr_Network) == 0) {
-               int err = 0;
-               int value;
-               setting_get_int_slp_key(INT_SLP_SETTING_SIM_SLOT, &value, &err);
-               if (VCONFKEY_TELEPHONY_SIM_INSERTED != value) {
-                       setting_create_simple_popup(NULL, ad->win_main, NULL,
-                                                   "IDS_ST_POP_INSERT_SIM_CARD_TO_ACCESS_NETWORK_SERVICES");
-                       SETTING_TRACE_ERROR("*** [ERR] Invalid SIM. sim_slot_type=%d ***", value);
-                       return;
-               }
-       }
-       /*2.powersaving cannot work when Flightmode on */
-       if (safeStrCmp(pitem->name, KeyStr_Powersaving) == 0) {
-               int status = 0;
-               vconf_get_bool(VCONFKEY_TELEPHONY_FLIGHT_MODE, &status);
-               if (status) {
-                       setting_create_simple_popup(NULL, ad->win_main,
-                                                   NULL, "IDS_IM_POP_THIS_FEATURE_IS_NOT_AVAILABLE_WHILE_FLIGHT_MODE_IS_ON");
-                       return;
-               }
-       }
-
-       /*3.Quick command cannot work when TTS on */
-       int tts_state = 0;
-       vconf_get_bool(VCONFKEY_SETAPPL_ACCESSIBILITY_TTS, &tts_state);
-       if (tts_state) {
-               if (!safeStrCmp(pitem->name, KeyStr_QUICK_CMD)) {
-                       char noti_str[MAX_SPECIALIZITION_LEN + 1] = { 0, };
-                       snprintf(noti_str, sizeof(noti_str), _(FEATURE_UNAVALIABLE_WHILE_TTS_ON), _(KeyStr_QUICK_CMD));
-                       setting_create_popup_without_btn(NULL, ad->win_main, NULL, _(noti_str),
-                                                        NULL, 0.0, TRUE, FALSE);
-                       return;
-               }
-       }
-
-       /* initialize UG module */
-       struct ug_cbs *cbs = (struct ug_cbs *)calloc(1, sizeof(struct ug_cbs));
-       setting_retm_if(!cbs, "calloc failed");
-       cbs->layout_cb = setting_main_layout_ug_cb;
-       cbs->result_cb = setting_main_result_ug_cb;
-       cbs->destroy_cb = setting_main_destroy_ug_cb;
-       cbs->priv = (void *)ad;
-
-       char *path = get_ug_path_from_ug_args((void *)(pitem->ug_name));        /* void* -> char* */
-       app_control_h svc = get_bundle_from_ug_args((void *)(pitem->ug_name));  /* void* -> char* */
-       setting_main_click_grid_item_ug_cb(ad, obj, path, svc, cbs);
-
-       FREE(path);
-       FREE(cbs);
-       app_control_destroy(svc);
-
-       int click_times = setting_cfg_get_click_times((char *)(pitem->name));
-       setting_cfg_set_click_times((char *)(pitem->name), ++click_times);
-       setting_cfg_file_update();
-}
-
 static Eina_Bool _navibar_back_pop_cb(void *data, Elm_Object_Item *it)
 {
        SETTING_TRACE_BEGIN;
@@ -678,26 +217,19 @@ static Eina_Bool _navibar_back_pop_cb(void *data, Elm_Object_Item *it)
 }
 
 
+/**
+ *
+ * old : 1line -----------> new : type1
+ * old : groupindex ------> new : group_index
+ */
 void _setting_genlist_itc_init(void *cb)
 {
        setting_main_appdata *ad = (setting_main_appdata *) cb;
 
        /* [UI] create structures for genlist style */
-       setting_create_Gendial_itc("1line", &(ad->itc[GENDIAL_Type_1text_1icon_2]));
-       setting_create_Gendial_itc("1line", &(ad->itc[GENDIAL_Type_1text_2icon]));
-       setting_create_Gendial_itc("1line", &(ad->itc[GENDIAL_Type_1icon_2text]));
-       setting_create_Gendial_itc("dialogue/1text.1icon.2", &(ad->itc[GENDIAL_Type_1text_2icon_2]));
-       setting_create_Gendial_itc("dialogue/2text.2icon.3", &(ad->itc[GENDIAL_Type_2text_2icon_3]));
-       setting_create_Gendial_itc("groupindex", &(ad->itc[GENDIAL_Type_group_item]));
-       setting_create_Gendial_itc("searchbar", &(ad->itc[GENDIAL_Type_sel_all]));
-       setting_create_Gendial_itc("setting.1text.2icon", &(ad->itc[GENDIAL_Type_1text_2icon_9]));
-       setting_create_Gendial_itc("setting.1text.2icon.1", &(ad->itc[GENDIAL_Type_1text_2icon_10]));
-       setting_create_Gendial_itc("dialogue/2text", &(ad->itc[GENDIAL_Type_2text_3]));
-
-       setting_create_Gendial_itc("1line", &(ad->itc[GENDIAL_Type_1text_2icon_divider]));
-       setting_create_Gendial_itc("groupindex", &(ad->itc[GENDIAL_Type_expandable_proc]));
-
-       ad->itc_expand_grid.func.del = NULL;    /* _gl_Gendial_del; */
+       setting_create_Gendial_itc(SETTING_GENLIST_ICON_1LINE_STYLE, &(ad->itc_table[GENDIAL_Type_1text_1icon_2]));
+       setting_create_Gendial_itc(SETTING_GENLIST_ICON_1LINE_STYLE, &(ad->itc_table[GENDIAL_Type_1icon_2text]));
+       setting_create_Gendial_itc(SETTING_GENLIST_GROUP_INDEX_STYLE, &(ad->itc_table[GENDIAL_Type_expandable_proc]));
 }
 
 static void _setting_tapi_init(void *cb)
@@ -793,10 +325,7 @@ Evas_Object *setting_main_layout_conform_create(Evas_Object *win_layout, Evas_Ob
        Evas_Object *layout = NULL;
 
        Evas_Object *conform = NULL;
-       /*conform = elm_conformant_add(win_obj); */
-       conform = (Evas_Object *) app_get_preinitialized_conformant();
-       if (!conform)
-               conform = elm_conformant_add(win_obj);
+       conform = elm_conformant_add(win_obj);
 
        setting_main_appdata *ad = (setting_main_appdata *) data;
        if (!conform) {
@@ -879,17 +408,11 @@ static int setting_main_create(void *cb)
        /* push a view to the naviframe */
        Elm_Object_Item *navi_it = elm_naviframe_item_push(ad->navibar_main, "IDS_ST_OPT_SETTINGS", NULL, NULL, view_layout, NULL);
        elm_naviframe_item_title_enabled_set(navi_it, EINA_TRUE, EINA_TRUE);
-       ad->main_navi_it = navi_it;
+       ad->navibar_main_it = navi_it;
        elm_object_item_domain_text_translatable_set(navi_it, SETTING_PACKAGE, EINA_TRUE);
        elm_naviframe_item_pop_cb_set(navi_it, _navibar_back_pop_cb, ad);
 
-       if (! is_searchmode_app(ad->is_searchmode)) {
-               ad->list_type = SETTING_LIST_VIEW;
-               ad->view_type = SETTING_TAB_VIEW_QUICK_SETTINGS;
-               (void)preference_get_int(PREFKEY_VIEW_TYPE, &ad->list_type);
-               (void)preference_get_int(PREFKEY_TAB_VIEW_TAB, &ad->view_type);
-               SETTING_TRACE("ad->list_type:%d", ad->list_type);
-               SETTING_TRACE("ad->view_type:%d", ad->view_type);
+       if (!is_searchmode_app(ad->is_searchmode)) {
 
                Evas_Object *all_list = NULL;
 
@@ -926,90 +449,14 @@ static int setting_main_destroy(void *cb)
                ecore_timer_del(ad->event_freeze_timer);
                ad->event_freeze_timer = NULL;
        }
-       evas_object_smart_callback_del(ad->main_genlist, "realized", __gl_realized_cb);
-       if (ad->save_idler) {
-               ecore_timer_del(ad->save_idler);
-               ad->save_idler = NULL;
-       }
-
-       if (ad->update_idler) {
-               ecore_timer_del(ad->update_idler);
-               ad->update_idler = NULL;
-       }
-
-       if (ad->bt_timer) {
-               ecore_timer_del(ad->bt_timer);
-               ad->bt_timer = NULL;
-       }
-       if (ad->wifi_timer) {
-               ecore_timer_del(ad->wifi_timer);
-               ad->wifi_timer = NULL;
-       }
-       if (ad->nfc_timer) {
-               ecore_timer_del(ad->nfc_timer);
-               ad->nfc_timer = NULL;
-       }
-
-       if (ad->update_font_idler) {
-               ecore_idler_del(ad->update_font_idler);
-               ad->update_font_idler = NULL;
-       }
-
-       if (ad->driving_mode_popup) {
-               evas_object_del(ad->driving_mode_popup);
-               ad->driving_mode_popup = NULL;
-       }
+       //evas_object_smart_callback_del(ad->main_genlist, "realized", __gl_realized_cb);
 
        elm_object_part_content_unset(ad->view_layout, "elm.swallow.content");
-       elm_object_item_part_content_unset(ad->main_navi_it, "tabbar");
+       elm_object_item_part_content_unset(ad->navibar_main_it, "tabbar");
        if (ad->sc_gl[SC_All_List]) {
                evas_object_del(ad->sc_gl[SC_All_List]);
                ad->sc_gl[SC_All_List] = NULL;
        }
-       if (ad->sc_gl[SC_All_Grid]) {
-               evas_object_del(ad->sc_gl[SC_All_Grid]);
-               ad->sc_gl[SC_All_Grid] = NULL;
-       }
-
-       if (ad->ctrl_bar) {
-               evas_object_del(ad->ctrl_bar);
-               ad->ctrl_bar = NULL;
-       }
-       int i = SETTING_TAB_VIEW_QUICK_SETTINGS;
-       for (; i < SETTING_TAB_VIEW_MAX; i++) {
-               if (ad->sub_view[i]) {
-                       evas_object_del(ad->sub_view[i]);
-                       ad->sub_view[i] = NULL;
-               }
-       }
-
-       if (ad->save_idler) {
-               ecore_timer_del(ad->save_idler);
-               ad->save_idler = NULL;
-       }
-
-       if (ad->update_idler) {
-               ecore_timer_del(ad->update_idler);
-               ad->update_idler = NULL;
-       }
-
-       if (ad->bt_timer) {
-               ecore_timer_del(ad->bt_timer);
-               ad->bt_timer = NULL;
-       }
-       if (ad->wifi_timer) {
-               ecore_timer_del(ad->wifi_timer);
-               ad->wifi_timer = NULL;
-       }
-       if (ad->nfc_timer) {
-               ecore_timer_del(ad->nfc_timer);
-               ad->nfc_timer = NULL;
-       }
-
-       if (ad->update_font_idler) {
-               ecore_idler_del(ad->update_font_idler);
-               ad->update_font_idler = NULL;
-       }
 
        /* sound */
        effect_playsound_close();
@@ -1020,14 +467,6 @@ static int setting_main_destroy(void *cb)
                ad->ly_main = NULL;
        }
 
-
-       /*
-       int ret = vconf_ignore_key_changed(VCONFKEY_TELEPHONY_FLIGHT_MODE, __vconf_change_cb);
-       if (ret != 0) {
-               SETTING_TRACE_ERROR("call vconf_ignore_key_changed failed");
-       }
-       */
-
        setting_view_main.is_create = 0;
        SETTING_TRACE_END;
        return SETTING_RETURN_SUCCESS;