Create sub-text of 'More connectivity' and 'More system' menu.
authorJing Yigang <yigang.jing@samsung.com>
Tue, 28 Aug 2012 03:26:11 +0000 (11:26 +0800)
committerJing Yigang <yigang.jing@samsung.com>
Tue, 28 Aug 2012 03:26:11 +0000 (11:26 +0800)
Change-Id: I6eb546734c291448eb70d7df0454bc73a37374f0

include/setting.h
src/setting-main.c
src/setting.c

index ca164c2..2f70de9 100755 (executable)
@@ -33,6 +33,7 @@
 /*  TAPI*/
 #include <tapi_common.h>
 #include <ITapiModem.h>
+
 #include <sensors.h>
 
 #define EDIT_PREFERRED_STR "IDS_ST_BUTTON2_EDIT_PREFERRED"
@@ -42,8 +43,6 @@
 #define SETTING_MAX_PID_LEN 128
 
 #define NO_UG_FOUND_MSG                        _("Unsupported menu")
-#define MORE_CONNECT_STR                       "IDS_ST_BODY_BLUETOOTH_USB_UTILITIES_ETC"
-#define MORE_SYSTEM_STR                        "IDS_ST_BODY_DATE_AND_TIME_KEYBOARD_LICENCE_ETC"
 #define USB_NEED_OFF "Please turn USB tethering off first in Mobile hotspot"
 
 #define SETTING_NFC_DESC "IDS_ST_BODY_ALLOW_DATA_EXCHANGE_WHEN_DEVICE_TOUCHES_ANOTHER_DEVICE"
@@ -100,6 +99,8 @@ typedef enum _FLIGHT_MODE_OPEARTION{
        FM_LEAVE,//Some "flightmode leave" request is waiting for processing
 } FLIGHT_MODE_OPEARTION;
 
+
+#define MAX_MORE_MENU_NUM      6
 /**
 * @brief main view context
 */
@@ -107,7 +108,7 @@ typedef struct _setting_main_appdata {
 
        ui_gadget_h ug;
        TapiHandle *handle;
-
+               
        Eina_Bool bAppPause;
        Eina_Bool updateItems[GL_ITEM_MAX];
 
@@ -168,6 +169,10 @@ typedef struct _setting_main_appdata {
        Eina_List *listened_list;
        sensor_h sf_handle;
 
+       const char *more_connective_menus[MAX_MORE_MENU_NUM];
+       const char *more_system_menus[MAX_MORE_MENU_NUM];
+       
+
 } setting_main_appdata;
 
 /* launch view */
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);
                }
index f9e69a1..9aac66e 100755 (executable)
@@ -330,15 +330,33 @@ static int setting_main_lang_changed_cb(void *data)
        }
 
        if (ad->data_moreConnect) {
-               str = (char*)g_strdup(_(MORE_CONNECT_STR));
-               if ( ! str) str = g_strdup("err");
-               ad->data_moreConnect->sub_desc = str;
+               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->sub_desc = g_strdup(sub_text);
        }
 
        if (ad->data_moreSystem) {
-               str = (char*)g_strdup(_(MORE_SYSTEM_STR));
-               if ( ! str) str = g_strdup("err");
-               ad->data_moreSystem->sub_desc = str;
+               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->sub_desc = g_strdup(sub_text);
        }
 
        if (ad->main_genlist) elm_genlist_realized_items_update(ad->main_genlist);