Create sub-text of 'More connectivity' and 'More system' menu.
[apps/core/preloaded/settings.git] / src / setting-main.c
index 05e6147..7241a60 100755 (executable)
@@ -574,6 +574,8 @@ void __load_connectivity_menu_list(void *data, Cfg_Item_Position inputPos, Evas_
                                                     KeyStr_Connectivity, NULL);
        }
 
+       int idx_second_menu = 0;
+       
        char *keyStr = NULL;
        char *icon_path = NULL;
        char *ug_args = NULL;
@@ -591,7 +593,16 @@ void __load_connectivity_menu_list(void *data, Cfg_Item_Position inputPos, Evas_
                        ug_args = setting_cfg_get_ug_args_idx(i, j);
                        icon_path = setting_cfg_get_icon_path_idx(i, j);
                        /* SETTING_TRACE_DEBUG("Got an item[keyStr:%s, ug_args:%s, pos:%d]", */
-                       /*                                                                         keyStr, ug_args, tmpPos); */
+                       /*                     keyStr, ug_args, tmpPos); */
+                       
+                       if (idx_second_menu < MAX_MORE_MENU_NUM
+                           && Cfg_Item_Pos_Level1 == tmpPos
+                           && SETTING_VIEW_MAIN == ad->view_load
+                           && MAIN_PROFILE_PREFERRED == ad->profile_type) {
+                           
+                               ad->more_connective_menus[idx_second_menu++] = keyStr;
+                       }
+
                        if (Cfg_Item_Pos_Level_All == inputPos) {
                        } else if (inputPos != tmpPos) {        /* not in the inputPos level */
                                continue;
@@ -639,6 +650,18 @@ void __load_connectivity_menu_list(void *data, Cfg_Item_Position inputPos, Evas_
 #if SUPPORT_MORE_ITEM_FUNCTION
                if (SETTING_VIEW_MAIN == ad->view_load && MAIN_PROFILE_PREFERRED == ad->profile_type)
                {
+                       char sub_text[MAX_COMMON_BUFFER_LEN] = {0, };
+                       int idx = 0;
+                       while (idx < MAX_MORE_MENU_NUM && ad->more_connective_menus[idx])
+                       {
+                               if (idx != 0)
+                               {
+                                       safeStrNCat(sub_text, ", ", MAX_COMMON_BUFFER_LEN);
+                               }
+                               safeStrNCat(sub_text, _(ad->more_connective_menus[idx]), MAX_COMMON_BUFFER_LEN);
+                               idx++;
+                       }
+
                        ad->data_moreConnect =
                                setting_create_Gendial_field_groupitem(ad->main_genlist,
                                                                       &(ad->itc[GENDIAL_Type_2text_3]),
@@ -650,7 +673,7 @@ void __load_connectivity_menu_list(void *data, Cfg_Item_Position inputPos, Evas_
                                                                       NULL,
                                                                       0,
                                                                       KeyStr_MoreConnect,
-                                                                      _(MORE_CONNECT_STR),
+                                                                      sub_text,
                                                                       NULL);
                        __BACK_POINTER_SET(ad->data_moreConnect);
                }
@@ -684,6 +707,7 @@ void __load_system_menu_list(void *data, Cfg_Item_Position inputPos, Evas_Object
                                                     ELM_GENLIST_ITEM_NONE,
                                                     KeyStr_System, NULL);
        }
+       int idx_second_menu = 0;
 
        char *keyStr = NULL;
        char *icon_path = NULL;
@@ -707,6 +731,13 @@ void __load_system_menu_list(void *data, Cfg_Item_Position inputPos, Evas_Object
                        icon_path = setting_cfg_get_icon_path_idx(i, j);
                        ug_args = setting_cfg_get_ug_args_idx(i, j);
 
+                       if (idx_second_menu < MAX_MORE_MENU_NUM
+                           && Cfg_Item_Pos_Level1 == tmpPos
+                           && SETTING_VIEW_MAIN == ad->view_load
+                           && MAIN_PROFILE_PREFERRED == ad->profile_type) {
+                               ad->more_system_menus[idx_second_menu++] = keyStr;
+                       }
+
                        //SETTING_TRACE("KeyString :  %s , tmpPos : %d , inputPos : %d ", keyStr, tmpPos, inputPos );
                        if (Cfg_Item_Pos_Level_All == inputPos) {
                                // do nothing
@@ -780,6 +811,18 @@ void __load_system_menu_list(void *data, Cfg_Item_Position inputPos, Evas_Object
 #if SUPPORT_MORE_ITEM_FUNCTION
                if (SETTING_VIEW_MAIN == ad->view_load && MAIN_PROFILE_PREFERRED == ad->profile_type)
                {
+                       char sub_text[MAX_COMMON_BUFFER_LEN] = {0, };
+                       int idx = 0;
+                       while (idx < MAX_MORE_MENU_NUM && ad->more_system_menus[idx])
+                       {
+                               if (idx != 0)
+                               {
+                                       safeStrNCat(sub_text, ", ", MAX_COMMON_BUFFER_LEN);
+                               }
+                               safeStrNCat(sub_text, _(ad->more_system_menus[idx]), MAX_COMMON_BUFFER_LEN);
+                               idx++;
+                       }
+                       
                        ad->data_moreSystem =
                                setting_create_Gendial_field_groupitem(ad->main_genlist,
                                                                       &(ad->itc[GENDIAL_Type_2text_3]),
@@ -791,7 +834,7 @@ void __load_system_menu_list(void *data, Cfg_Item_Position inputPos, Evas_Object
                                                                       NULL,
                                                                       0,
                                                                       KeyStr_MoreSystem,
-                                                                      _(MORE_SYSTEM_STR),
+                                                                      sub_text,
                                                                       NULL);
                        __BACK_POINTER_SET(ad->data_moreSystem);
                }