Fix eap, detail view grouping 13/17613/2
authorHyunjee Kim <hj0426.kim@samsung.com>
Mon, 20 Jan 2014 06:05:01 +0000 (15:05 +0900)
committerhyunjee Kim <hj0426.kim@samsung.com>
Fri, 7 Mar 2014 08:26:40 +0000 (00:26 -0800)
Change-Id: Ib634a8d9f05ed6ab6ce647c99661625ba70080c4
Signed-off-by: Hyunjee Kim <hj0426.kim@samsung.com>
12 files changed:
packaging/wifi-efl-ug.spec
sources/libraries/Common/common_eap_connect.c
sources/libraries/Common/common_ip_info.c
sources/libraries/Common/common_utils.c
sources/libraries/Common/include/common_eap_connect.h
sources/libraries/Common/include/common_ip_info.h
sources/libraries/Common/include/common_pswd_popup.h
sources/libraries/Common/include/common_utils.h
sources/libraries/appcoreWrapper/appcoreWrapper.c
sources/ui-gadget/viewers-layout/view_detail.c
sources/ui-gadget/viewers-layout/wifi_viewer_list.c
sources/wifi-syspopup/wifi-syspopup.c

index ed1d7ac..5a13b6c 100644 (file)
@@ -1,6 +1,6 @@
 Name:       wifi-efl-ug
 Summary:    Wi-Fi UI Gadget
-Version:    0.5.2_43
+Version:    0.5.2_44
 Release:    1
 Group:      App/Network
 License:    Flora License
index a110706..b5cf65b 100644 (file)
@@ -73,11 +73,6 @@ typedef struct {
        Elm_Genlist_Item_Type flags;
 } _Expand_List_t;
 
-struct eap_info_list {
-       wifi_ap_h ap;
-       Elm_Object_Item *pswd_item;
-};
-
 static const _Expand_List_t list_eap_type[] = {
        {1, "UNKNOWN", ELM_GENLIST_ITEM_NONE},
        {1, "PEAP", ELM_GENLIST_ITEM_NONE},
@@ -251,7 +246,7 @@ static void _gl_eap_auth_sub_sel(void *data, Evas_Object *obj, void *event_info)
 
 static char *_gl_eap_type_text_get(void *data, Evas_Object *obj, const char *part)
 {
-       eap_connect_data_t *eap_data = (eap_connect_data_t *)data;
+       eap_connect_data_t *eap_data = (eap_connect_data_t *) common_util_genlist_item_data_get(data);
        eap_type_t sel_sub_item_id = __common_eap_connect_popup_get_eap_type(eap_data->ap);
        DEBUG_LOG(UG_NAME_NORMAL, "current selected subitem = %d", sel_sub_item_id);
 
@@ -290,7 +285,7 @@ static void _gl_eap_type_sub_menu_item_del(void *data, Evas_Object *obj)
 
 static char *_gl_eap_provision_text_get(void *data, Evas_Object *obj, const char *part)
 {
-       eap_connect_data_t *eap_data = (eap_connect_data_t *)data;
+       eap_connect_data_t *eap_data = (eap_connect_data_t *) common_util_genlist_item_data_get(data);
        int sel_sub_item_id = 0;
 
        /* TODO: Fetch the EAP provision. No CAPI available now. */
@@ -324,6 +319,13 @@ static Evas_Object *_gl_eap_provision_content_get(void *data, Evas_Object *obj,
        return NULL;
 }
 
+static void _gl_eap_auth_item_del(void *data, Evas_Object *obj)
+{
+       g_free(data);
+       data = NULL;
+       return;
+}
+
 static void _gl_eap_provision_sub_menu_item_del(void *data, Evas_Object *obj)
 {
        evas_object_unref(data);
@@ -332,7 +334,7 @@ static void _gl_eap_provision_sub_menu_item_del(void *data, Evas_Object *obj)
 
 static char *_gl_eap_auth_text_get(void *data, Evas_Object *obj, const char *part)
 {
-       eap_connect_data_t *eap_data = (eap_connect_data_t *)data;
+       eap_connect_data_t *eap_data = (eap_connect_data_t *) common_util_genlist_item_data_get(data);
        eap_auth_t sel_sub_item_id = __common_eap_connect_popup_get_auth_type(eap_data->ap);
        if (!strcmp(part, "elm.text.1")) {
                return g_strdup(list_eap_auth[sel_sub_item_id].name);
@@ -362,6 +364,20 @@ static Evas_Object *_gl_eap_auth_content_get(void *data, Evas_Object *obj, const
        return NULL;
 }
 
+static void _gl_eap_user_cert_item_del(void *data, Evas_Object *obj)
+{
+       g_free(data);
+       data = NULL;
+       return;
+}
+
+static void _gl_eap_ca_cert_item_del(void *data, Evas_Object *obj)
+{
+       g_free(data);
+       data = NULL;
+       return;
+}
+
 static void _gl_eap_auth_sub_menu_item_del(void *data, Evas_Object *obj)
 {
        evas_object_unref(data);
@@ -370,7 +386,7 @@ static void _gl_eap_auth_sub_menu_item_del(void *data, Evas_Object *obj)
 
 static char *_gl_eap_ca_cert_text_get(void *data, Evas_Object *obj, const char *part)
 {
-       eap_connect_data_t *eap_data = (eap_connect_data_t *)data;
+       eap_connect_data_t *eap_data = (eap_connect_data_t *)common_util_genlist_item_data_get(data);
        if (!strcmp(part, "elm.text.2")) {
                return g_strdup(sc(eap_data->str_pkg_name, I18N_TYPE_Ca_Certificate));
        } else if (!strcmp(part, "elm.text.1")) {
@@ -382,7 +398,7 @@ static char *_gl_eap_ca_cert_text_get(void *data, Evas_Object *obj, const char *
 
 static char *_gl_eap_user_cert_text_get(void *data, Evas_Object *obj, const char *part)
 {
-       eap_connect_data_t *eap_data = (eap_connect_data_t *)data;
+       eap_connect_data_t *eap_data = (eap_connect_data_t *)common_util_genlist_item_data_get(data);
        if (!strcmp(part, "elm.text.2")) {
                return g_strdup(sc(eap_data->str_pkg_name, I18N_TYPE_User_Certificate));
        } else if (!strcmp(part, "elm.text.1")) {
@@ -470,7 +486,8 @@ static void _gl_eap_entry_eraser_clicked_cb(void *data, Evas_Object *obj, void *
 
 static char *_gl_eap_entry_item_text_get(void *data, Evas_Object *obj, const char *part)
 {
-       common_utils_entry_info_t *entry_info = (common_utils_entry_info_t *)data;
+       common_utils_entry_info_t *entry_info = (common_utils_entry_info_t *)common_util_genlist_item_data_get(data);
+
        if (!entry_info)
                return NULL;
 
@@ -482,7 +499,7 @@ static char *_gl_eap_entry_item_text_get(void *data, Evas_Object *obj, const cha
 
 static Evas_Object *_gl_eap_entry_item_content_get(void *data, Evas_Object *obj, const char *part)
 {
-       common_utils_entry_info_t *entry_info = (common_utils_entry_info_t *)data;
+       common_utils_entry_info_t *entry_info = (common_utils_entry_info_t *)common_util_genlist_item_data_get(data);
        if (!entry_info)
                return NULL;
 
@@ -564,9 +581,31 @@ static Evas_Object *_gl_eap_entry_item_content_get(void *data, Evas_Object *obj,
        return NULL;
 }
 
+static void _gl_eap_g_eap_provision_item_del(void *data, Evas_Object *obj)
+{
+       __COMMON_FUNC_ENTER__;
+
+       g_free(data);
+       data = NULL;
+
+       __COMMON_FUNC_ENTER__;
+       return;
+}
+
+static void _gl_eap_type_item_del(void *data, Evas_Object *obj)
+{
+       __COMMON_FUNC_ENTER__;
+
+       g_free(data);
+       data = NULL;
+
+       __COMMON_FUNC_ENTER__;
+       return;
+}
+
 static void _gl_eap_entry_item_del(void *data, Evas_Object *obj)
 {
-       common_utils_entry_info_t *entry_info = (common_utils_entry_info_t *)data;
+       common_utils_entry_info_t *entry_info = (common_utils_entry_info_t *)common_util_genlist_item_data_get(data);
        if (entry_info == NULL)
                return;
 
@@ -582,6 +621,22 @@ static void _gl_eap_entry_item_del(void *data, Evas_Object *obj)
        }
 
        g_free(entry_info);
+       g_free(data);
+       data = NULL;
+}
+
+static void _gl_realized(void *data, Evas_Object *obj, void *event_info)
+{
+       __COMMON_FUNC_ENTER__;
+
+       Elm_Object_Item *item = (Elm_Object_Item *)event_info;
+
+       genlist_item_data_t *item_data_t = (genlist_item_data_t *)elm_object_item_data_get(item);
+       assertm_if(NULL == item_data_t, "NULL!!");
+
+       common_util_genlist_item_style_set(item, item_data_t->group_style);
+
+       __COMMON_FUNC_EXIT__;
 }
 
 static void _gl_exp(void *data, Evas_Object *obj, void *event_info)
@@ -615,7 +670,8 @@ static void _gl_exp(void *data, Evas_Object *obj, void *event_info)
                        evas_object_ref(radio);
                        if (i == eap_type)
                                elm_radio_value_set(radio, i);
-                       sub_item = elm_genlist_item_append(gl, &g_eap_type_sub_itc, (void*)radio, item, list_eap_type[i].flags, _gl_eap_type_sub_sel, eap_data);
+                       sub_item = elm_genlist_item_append(gl, &g_eap_type_sub_itc, (void*)radio,
+                                       item, list_eap_type[i].flags, _gl_eap_type_sub_sel, eap_data);
 #ifdef DISABLE_FAST_EAP_METHOD
                        if (!g_strcmp0(list_eap_type[i].name, "FAST")) {
                                elm_object_item_disabled_set(sub_item, TRUE);
@@ -631,7 +687,8 @@ static void _gl_exp(void *data, Evas_Object *obj, void *event_info)
                        evas_object_ref(radio);
                        if (i == 0)     /* TODO: Fetch the EAP provision. CAPI not available now. */
                                elm_radio_value_set(radio, i);
-                       elm_genlist_item_append(gl, &g_eap_provision_sub_itc, (void*)radio, item, ELM_GENLIST_ITEM_NONE, _gl_eap_provision_sub_sel, eap_data);
+                       elm_genlist_item_append(gl, &g_eap_provision_sub_itc, (void*)radio,
+                                       item, ELM_GENLIST_ITEM_NONE, _gl_eap_provision_sub_sel, eap_data);
                        i++;
                }
                break;
@@ -643,7 +700,8 @@ static void _gl_exp(void *data, Evas_Object *obj, void *event_info)
                        evas_object_ref(radio);
                        if (i == auth_type)
                                elm_radio_value_set(radio, i);
-                       elm_genlist_item_append(gl, &g_eap_auth_sub_itc, (void*)radio, item, list_eap_auth[i].flags, _gl_eap_auth_sub_sel, eap_data);
+                       elm_genlist_item_append(gl, &g_eap_auth_sub_itc, (void*)radio,
+                                       item, list_eap_auth[i].flags, _gl_eap_auth_sub_sel, eap_data);
                        i++;
                }
                break;
@@ -665,7 +723,7 @@ static void __common_eap_connect_popup_init_item_class(void *data)
        g_eap_type_itc.func.text_get = _gl_eap_type_text_get;
        g_eap_type_itc.func.content_get = NULL;
        g_eap_type_itc.func.state_get = NULL;
-       g_eap_type_itc.func.del = NULL;
+       g_eap_type_itc.func.del = _gl_eap_type_item_del;
 
        g_eap_type_sub_itc.item_style = "dialogue/1text.1icon.2/expandable2";
        g_eap_type_sub_itc.func.text_get = _gl_eap_subtext_get;
@@ -677,7 +735,7 @@ static void __common_eap_connect_popup_init_item_class(void *data)
        g_eap_provision_itc.func.text_get = _gl_eap_provision_text_get;
        g_eap_provision_itc.func.content_get = NULL;
        g_eap_provision_itc.func.state_get = NULL;
-       g_eap_provision_itc.func.del = NULL;
+       g_eap_provision_itc.func.del = _gl_eap_g_eap_provision_item_del;
 
        g_eap_provision_sub_itc.item_style = "dialogue/1text.1icon.2/expandable2";
        g_eap_provision_sub_itc.func.text_get = _gl_eap_provision_subtext_get;
@@ -689,7 +747,7 @@ static void __common_eap_connect_popup_init_item_class(void *data)
        g_eap_auth_itc.func.text_get = _gl_eap_auth_text_get;
        g_eap_auth_itc.func.content_get = NULL;
        g_eap_auth_itc.func.state_get = NULL;
-       g_eap_auth_itc.func.del = NULL;
+       g_eap_auth_itc.func.del = _gl_eap_auth_item_del;
 
        g_eap_auth_sub_itc.item_style = "dialogue/1text.1icon.2/expandable2";
        g_eap_auth_sub_itc.func.text_get = _gl_eap_auth_subtext_get;
@@ -701,13 +759,13 @@ static void __common_eap_connect_popup_init_item_class(void *data)
        g_eap_ca_cert_itc.func.text_get = _gl_eap_ca_cert_text_get;
        g_eap_ca_cert_itc.func.content_get = NULL;
        g_eap_ca_cert_itc.func.state_get = NULL;
-       g_eap_ca_cert_itc.func.del = NULL;
+       g_eap_ca_cert_itc.func.del = _gl_eap_ca_cert_item_del;
 
        g_eap_user_cert_itc.item_style = "dialogue/2text.2";
        g_eap_user_cert_itc.func.text_get = _gl_eap_user_cert_text_get;
        g_eap_user_cert_itc.func.content_get = NULL;
        g_eap_user_cert_itc.func.state_get = NULL;
-       g_eap_user_cert_itc.func.del = NULL;
+       g_eap_user_cert_itc.func.del = _gl_eap_user_cert_item_del;
 
        g_eap_entry_itc.item_style = "dialogue/editfield/title";
        g_eap_entry_itc.func.text_get = _gl_eap_entry_item_text_get;
@@ -794,11 +852,16 @@ static void _create_and_update_list_items_based_on_rules(eap_type_t new_type, ea
        Evas_Object* view_list = eap_data->genlist;
        Elm_Object_Item *insert_after_item = NULL;
        eap_type_t pre_type;
+       genlist_item_data_t *item_data = NULL;
 
        if (NULL == eap_data->eap_type_item) {
                /* Create EAP method/type */
                pre_type = EAP_SEC_TYPE_SIM;
-               eap_data->eap_type_item = elm_genlist_item_append(view_list, &g_eap_type_itc, eap_data, NULL, ELM_GENLIST_ITEM_TREE, _gl_eap_type_sel, eap_data);
+               item_data = g_new0(genlist_item_data_t, 1);
+               item_data->cast_data = eap_data;
+               item_data->group_style = GENLIST_ITEM_STYLE_TOP;
+               eap_data->eap_type_item = elm_genlist_item_append(view_list, &g_eap_type_itc, item_data,
+                               NULL, ELM_GENLIST_ITEM_TREE, _gl_eap_type_sel, eap_data);
        } else {
                pre_type = __common_eap_connect_popup_get_eap_type(eap_data->ap);
        }
@@ -826,8 +889,13 @@ static void _create_and_update_list_items_based_on_rules(eap_type_t new_type, ea
                break;
        case EAP_SEC_TYPE_FAST:
                /* Add EAP provision */
-               eap_data->eap_provision_item = elm_genlist_item_insert_after(view_list, &g_eap_provision_itc, eap_data, NULL, eap_data->eap_type_item, ELM_GENLIST_ITEM_TREE, _gl_eap_provision_sel, eap_data);
-               DEBUG_LOG(UG_NAME_NORMAL, "current selected provision = %d", 0); // TODO: Fetch the EAP provision. CAPI not yet available.
+               item_data = g_new0(genlist_item_data_t, 1);
+               item_data->cast_data = eap_data;
+               item_data->group_style = GENLIST_ITEM_STYLE_TOP;
+               eap_data->eap_provision_item = elm_genlist_item_insert_after(view_list, &g_eap_provision_itc, item_data,
+                               NULL, eap_data->eap_type_item, ELM_GENLIST_ITEM_TREE, _gl_eap_provision_sel, eap_data);
+               DEBUG_LOG(UG_NAME_NORMAL, "current selected provision = %d", 0);
+               // TODO: Fetch the EAP provision. CAPI not yet available.
                if (EAP_SEC_TYPE_UNKNOWN == pre_type || EAP_SEC_TYPE_SIM == pre_type || EAP_SEC_TYPE_AKA == pre_type) {
                        insert_after_item = eap_data->eap_provision_item;
                }
@@ -839,15 +907,30 @@ static void _create_and_update_list_items_based_on_rules(eap_type_t new_type, ea
        if (insert_after_item) {
                common_utils_entry_info_t *edit_box_details;
 
+               item_data = g_new0(genlist_item_data_t, 1);
+               item_data->cast_data = eap_data;
+               item_data->group_style = GENLIST_ITEM_STYLE_CENTER;
+
                /* Add EAP phase2 authentication */
-               eap_data->eap_auth_item = elm_genlist_item_insert_after(view_list, &g_eap_auth_itc, eap_data, NULL, insert_after_item, ELM_GENLIST_ITEM_TREE, _gl_eap_auth_sel, eap_data);
+               eap_data->eap_auth_item = elm_genlist_item_insert_after(view_list, &g_eap_auth_itc, item_data,
+                               NULL, insert_after_item, ELM_GENLIST_ITEM_TREE, _gl_eap_auth_sel, eap_data);
+
+               item_data = g_new0(genlist_item_data_t, 1);
+               item_data->cast_data = eap_data;
+               item_data->group_style = GENLIST_ITEM_STYLE_CENTER;
 
                /* Add CA certificate */
-               eap_data->eap_ca_cert_item = elm_genlist_item_insert_after(view_list, &g_eap_ca_cert_itc, eap_data, NULL, eap_data->eap_auth_item, ELM_GENLIST_ITEM_NONE, NULL, NULL);
+               eap_data->eap_ca_cert_item = elm_genlist_item_insert_after(view_list, &g_eap_ca_cert_itc, item_data,
+                               NULL, eap_data->eap_auth_item, ELM_GENLIST_ITEM_NONE, NULL, NULL);
+
                elm_genlist_item_select_mode_set(eap_data->eap_ca_cert_item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
 
                /* Add User certificate */
-               eap_data->eap_user_cert_item = elm_genlist_item_insert_after(view_list, &g_eap_user_cert_itc, eap_data, NULL, eap_data->eap_ca_cert_item, ELM_GENLIST_ITEM_NONE, NULL, NULL);
+               item_data = g_new0(genlist_item_data_t, 1);
+               item_data->cast_data = eap_data;
+               item_data->group_style = GENLIST_ITEM_STYLE_CENTER;
+               eap_data->eap_user_cert_item = elm_genlist_item_insert_after(view_list, &g_eap_user_cert_itc, item_data,
+                               NULL, eap_data->eap_ca_cert_item, ELM_GENLIST_ITEM_NONE, NULL, NULL);
                elm_genlist_item_select_mode_set(eap_data->eap_user_cert_item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
 
                /* Add EAP ID */
@@ -855,9 +938,13 @@ static void _create_and_update_list_items_based_on_rules(eap_type_t new_type, ea
                edit_box_details->entry_id = ENTRY_TYPE_USER_ID;
                edit_box_details->title_txt = sc(eap_data->str_pkg_name, I18N_TYPE_Identity);
                edit_box_details->guide_txt = sc(eap_data->str_pkg_name, I18N_TYPE_Enter_Identity);
-               edit_box_details->item = elm_genlist_item_insert_after(view_list, &g_eap_entry_itc, edit_box_details, NULL, eap_data->eap_user_cert_item, ELM_GENLIST_ITEM_NONE, _gl_editbox_sel_cb, NULL);
-               elm_genlist_item_select_mode_set(edit_box_details->item, ELM_OBJECT_SELECT_MODE_NONE);
-               eap_data->eap_id_item = edit_box_details->item;
+               item_data = g_new0(genlist_item_data_t, 1);
+               item_data->cast_data = edit_box_details;
+               item_data->group_style = GENLIST_ITEM_STYLE_CENTER;
+
+               eap_data->eap_id_item = elm_genlist_item_insert_after(view_list, &g_eap_entry_itc, item_data,
+                               NULL, eap_data->eap_user_cert_item, ELM_GENLIST_ITEM_NONE, _gl_editbox_sel_cb, NULL);
+               elm_genlist_item_select_mode_set(eap_data->eap_id_item, ELM_OBJECT_SELECT_MODE_NONE);
                g_eap_id_show_keypad = FALSE;
 
                /* Add EAP Anonymous Identity */
@@ -865,18 +952,24 @@ static void _create_and_update_list_items_based_on_rules(eap_type_t new_type, ea
                edit_box_details->entry_id = ENTRY_TYPE_ANONYMOUS_ID;
                edit_box_details->title_txt = sc(eap_data->str_pkg_name, I18N_TYPE_Anonymous_Identity);
                edit_box_details->guide_txt = sc(eap_data->str_pkg_name, I18N_TYPE_Enter_Anonymous_Identity);
-               edit_box_details->item = elm_genlist_item_insert_after(view_list, &g_eap_entry_itc, edit_box_details, NULL, eap_data->eap_id_item, ELM_GENLIST_ITEM_NONE, _gl_editbox_sel_cb, NULL);
-               elm_genlist_item_select_mode_set(edit_box_details->item, ELM_OBJECT_SELECT_MODE_NONE);
-               eap_data->eap_anonyid_item = edit_box_details->item;
+               item_data = g_new0(genlist_item_data_t, 1);
+               item_data->cast_data = edit_box_details;
+               item_data->group_style = GENLIST_ITEM_STYLE_CENTER;
+               eap_data->eap_anonyid_item = elm_genlist_item_insert_after(view_list, &g_eap_entry_itc, item_data,
+                               NULL, eap_data->eap_id_item, ELM_GENLIST_ITEM_NONE, _gl_editbox_sel_cb, NULL);
+               elm_genlist_item_select_mode_set(eap_data->eap_anonyid_item, ELM_OBJECT_SELECT_MODE_NONE);
 
                /* Add EAP Password */
                edit_box_details = g_new0(common_utils_entry_info_t, 1);
                edit_box_details->entry_id = ENTRY_TYPE_PASSWORD;
                edit_box_details->title_txt = sc(eap_data->str_pkg_name, I18N_TYPE_Password);
                edit_box_details->guide_txt = sc(eap_data->str_pkg_name, I18N_TYPE_Enter_password);
-               edit_box_details->item = elm_genlist_item_insert_after(view_list, &g_eap_entry_itc, edit_box_details, NULL, eap_data->eap_anonyid_item, ELM_GENLIST_ITEM_NONE, _gl_editbox_sel_cb, NULL);
-               elm_genlist_item_select_mode_set(edit_box_details->item, ELM_OBJECT_SELECT_MODE_NONE);
-               eap_data->eap_pw_item = edit_box_details->item;
+               item_data = g_new0(genlist_item_data_t, 1);
+               item_data->cast_data = edit_box_details;
+               item_data->group_style = GENLIST_ITEM_STYLE_BOTTOM;
+               eap_data->eap_pw_item = elm_genlist_item_insert_after(view_list, &g_eap_entry_itc, item_data,
+                               NULL, eap_data->eap_anonyid_item, ELM_GENLIST_ITEM_NONE, _gl_editbox_sel_cb, NULL);
+               elm_genlist_item_select_mode_set(eap_data->eap_pw_item, ELM_OBJECT_SELECT_MODE_NONE);
 
                if (eap_data->popup) {  /* Popup */
                        __common_eap_popup_set_imf_ctxt_evnt_cb(eap_data);
@@ -942,6 +1035,7 @@ static Evas_Object* _create_list(Evas_Object* parent, void *data)
        /* Create the entry items */
        _create_and_update_list_items_based_on_rules(EAP_SEC_TYPE_PEAP, eap_data);
 
+       evas_object_smart_callback_add(view_list, "realized", _gl_realized, NULL);
        evas_object_smart_callback_add(view_list, "expanded", _gl_exp, eap_data);
        evas_object_smart_callback_add(view_list, "contracted", _gl_con, view_list);
 
@@ -1505,6 +1599,7 @@ eap_info_list_t *eap_info_append_items(wifi_ap_h ap, Evas_Object* view_list,
        char *temp_str = NULL;
        Eina_Bool append_continue = TRUE;
        eap_info_list_t *eap_info_list_data = NULL;
+       genlist_item_data_t *item_data = NULL;
        if (!view_list || !str_pkg_name || !ap) {
                ERROR_LOG(UG_NAME_ERR, "Invalid params passed!");
                return NULL;
@@ -1517,7 +1612,7 @@ eap_info_list_t *eap_info_append_items(wifi_ap_h ap, Evas_Object* view_list,
        auth_type = __common_eap_connect_popup_get_auth_type(ap);
        common_utils_add_dialogue_separator(view_list, "dialogue/separator.2");
 
-       common_utils_add_2_line_txt_disabled_item(view_list, "dialogue/2text.2", sc(str_pkg_name, I18N_TYPE_EAP_method), list_eap_type[eap_type].name);
+       common_utils_add_2_line_txt_disabled_item(view_list, "dialogue/2text.2", sc(str_pkg_name, I18N_TYPE_EAP_method), list_eap_type[eap_type].name, GENLIST_ITEM_STYLE_TOP);
 
        switch (eap_type) {
        case EAP_SEC_TYPE_UNKNOWN:
@@ -1529,7 +1624,7 @@ eap_info_list_t *eap_info_append_items(wifi_ap_h ap, Evas_Object* view_list,
                /* Add EAP provision */
                /* TODO: Fetch EAP provisioning. CAPI not available. */
                temp_str = g_strdup("");
-               common_utils_add_2_line_txt_disabled_item(view_list, "dialogue/2text.2", sc(str_pkg_name, I18N_TYPE_Provisioning), temp_str);
+               common_utils_add_2_line_txt_disabled_item(view_list, "dialogue/2text.2", sc(str_pkg_name, I18N_TYPE_Provisioning), temp_str, GENLIST_ITEM_STYLE_CENTER);
                g_free(temp_str);
                temp_str = NULL;
                break;
@@ -1544,33 +1639,33 @@ eap_info_list_t *eap_info_append_items(wifi_ap_h ap, Evas_Object* view_list,
                common_utils_entry_info_t *edit_box_details;
 
                /* Add EAP phase2 authentication */
-               common_utils_add_2_line_txt_disabled_item(view_list, "dialogue/2text.2", sc(str_pkg_name, I18N_TYPE_Phase_2_authentication), list_eap_auth[auth_type].name);
+               common_utils_add_2_line_txt_disabled_item(view_list, "dialogue/2text.2", sc(str_pkg_name, I18N_TYPE_Phase_2_authentication), list_eap_auth[auth_type].name, GENLIST_ITEM_STYLE_CENTER);
 
                /* Add CA certificate */
                temp_str = NULL;
                wifi_ap_get_eap_ca_cert_file(ap, &temp_str);
                temp_str = temp_str? temp_str : g_strdup(sc(str_pkg_name, I18N_TYPE_Unspecified));
-               common_utils_add_2_line_txt_disabled_item(view_list, "dialogue/2text.2", sc(str_pkg_name, I18N_TYPE_Ca_Certificate), temp_str);
+               common_utils_add_2_line_txt_disabled_item(view_list, "dialogue/2text.2", sc(str_pkg_name, I18N_TYPE_Ca_Certificate), temp_str, GENLIST_ITEM_STYLE_CENTER);
                g_free(temp_str);
 
                /* Add User certificate */
                temp_str = NULL;
                wifi_ap_get_eap_client_cert_file(ap, &temp_str);
                temp_str = temp_str? temp_str : g_strdup(sc(str_pkg_name, I18N_TYPE_Unspecified));
-               common_utils_add_2_line_txt_disabled_item(view_list, "dialogue/2text.2", sc(str_pkg_name, I18N_TYPE_User_Certificate),temp_str);
+               common_utils_add_2_line_txt_disabled_item(view_list, "dialogue/2text.2", sc(str_pkg_name, I18N_TYPE_User_Certificate),temp_str, GENLIST_ITEM_STYLE_CENTER);
                g_free(temp_str);
 
                /* Add EAP ID */
                bool is_paswd_set;
                temp_str = NULL;
                wifi_ap_get_eap_passphrase(ap, &temp_str, &is_paswd_set);
-               common_utils_add_2_line_txt_disabled_item(view_list, "dialogue/2text.2", sc(str_pkg_name, I18N_TYPE_Identity), temp_str);
+               common_utils_add_2_line_txt_disabled_item(view_list, "dialogue/2text.2", sc(str_pkg_name, I18N_TYPE_Identity), temp_str, GENLIST_ITEM_STYLE_CENTER);
                g_free(temp_str);
 
                /* Add EAP Anonymous Identity */
                /* TODO: Fetch the anonymous user id. CAPI not available. */
                temp_str = g_strdup("");
-               common_utils_add_2_line_txt_disabled_item(view_list, "dialogue/2text.2", sc(str_pkg_name, I18N_TYPE_Anonymous_Identity), temp_str);
+               common_utils_add_2_line_txt_disabled_item(view_list, "dialogue/2text.2", sc(str_pkg_name, I18N_TYPE_Anonymous_Identity), temp_str, GENLIST_ITEM_STYLE_CENTER);
                g_free(temp_str);
 
                /* Add EAP Password */
@@ -1587,7 +1682,10 @@ eap_info_list_t *eap_info_append_items(wifi_ap_h ap, Evas_Object* view_list,
                edit_box_details->guide_txt = sc(str_pkg_name, I18N_TYPE_Unchanged);
                edit_box_details->input_panel_cb = input_panel_cb;
                edit_box_details->input_panel_cb_data = input_panel_cb_data;
-               edit_box_details->item = elm_genlist_item_append(view_list, &g_eap_entry_itc, edit_box_details, NULL, ELM_GENLIST_ITEM_NONE, _gl_editbox_sel_cb, NULL);
+               item_data = g_new0(genlist_item_data_t, 1);
+               item_data->cast_data = edit_box_details;
+               item_data->group_style = GENLIST_ITEM_STYLE_BOTTOM;
+               edit_box_details->item = elm_genlist_item_append(view_list, &g_eap_entry_itc, item_data, NULL, ELM_GENLIST_ITEM_NONE, _gl_editbox_sel_cb, NULL);
                elm_genlist_item_select_mode_set(eap_info_list_data->pswd_item, ELM_OBJECT_SELECT_MODE_NONE);
                eap_info_list_data->pswd_item = edit_box_details->item;
        }
index 052bacb..c73bf49 100644 (file)
 
 #define MAX_PORT_NUMBER                65535
 
-typedef struct {
-       char* title;
-       char* description;
-} _view_detail_description_data_t;
-
-struct ip_info_list {
-       const char *str_pkg_name;
-       Evas_Object *genlist;
-
-       Elm_Object_Item* ip_toggle_item;
-       Elm_Object_Item* ip_addr_item;
-       Elm_Object_Item* subnet_mask_item;
-       Elm_Object_Item* gateway_addr_item;
-       Elm_Object_Item* dns_1_item;
-       Elm_Object_Item* dns_2_item;
-       Elm_Object_Item* proxy_addr_item;
-       Elm_Object_Item* proxy_port_item;
-
-       imf_ctxt_panel_cb_t input_panel_cb;
-       void *input_panel_cb_data;
-
-       wifi_ap_h ap;
-       wifi_ip_config_type_e ip_type;
-};
-
 static Elm_Object_Item* _add_description(Evas_Object* genlist, char* title,
-               char* description, Elm_Object_Item* insert_after);
+               char* description, Elm_Object_Item* insert_after, GENLIST_ITEM_STYLE item_style);
 
 static Elm_Genlist_Item_Class ip_toggle_itc ;
 static Elm_Genlist_Item_Class description_itc ;
@@ -71,12 +46,24 @@ static void _ip_info_detail_description_del(void *data, Evas_Object *obj)
 
        retm_if(NULL == data);
 
-       _view_detail_description_data_t* det = (_view_detail_description_data_t*) data;
+       _view_detail_description_data_t* det = (_view_detail_description_data_t*) common_util_genlist_item_data_get(data);
 
        g_free(det->description);
        g_free(det->title);
        g_free(det);
        det = NULL;
+       g_free(data);
+       data = NULL;
+
+       __COMMON_FUNC_EXIT__;
+}
+
+static void _ip_toggle_item_del(void *data, Evas_Object *obj)
+{
+       __COMMON_FUNC_ENTER__;
+
+       g_free(data);
+       data = NULL;
 
        __COMMON_FUNC_EXIT__;
 }
@@ -86,7 +73,7 @@ static char *_ip_info_detail_description_text_get(void *data,
 {
        retvm_if(NULL == data || NULL == part, NULL);
 
-       _view_detail_description_data_t* det = (_view_detail_description_data_t*) data;
+       _view_detail_description_data_t* det = (_view_detail_description_data_t*) common_util_genlist_item_data_get(data);
 
        if(0 == strncmp("elm.text.1", part, strlen(part))) {
                return g_strdup(det->description);
@@ -238,7 +225,7 @@ static void _ip_info_entry_unfocused_cb(void *data, Evas_Object *obj, void *even
 
 static void _ip_info_entry_eraser_clicked_cb(void *data, Evas_Object *obj, void *event_info)
 {
-       common_utils_entry_info_t *entry_info = (common_utils_entry_info_t *)data;
+       common_utils_entry_info_t *entry_info = (common_utils_entry_info_t *) common_util_genlist_item_data_get(data);
        if (!entry_info)
                return;
 
@@ -249,7 +236,8 @@ static void _ip_info_entry_eraser_clicked_cb(void *data, Evas_Object *obj, void
 
 static char *_ip_info_entry_item_text_get(void *data, Evas_Object *obj, const char *part)
 {
-       common_utils_entry_info_t *entry_info = (common_utils_entry_info_t *)data;
+       common_utils_entry_info_t *entry_info = (common_utils_entry_info_t *)common_util_genlist_item_data_get(data);
+
        if (!entry_info)
                return NULL;
 
@@ -261,7 +249,8 @@ static char *_ip_info_entry_item_text_get(void *data, Evas_Object *obj, const ch
 
 static Evas_Object *_ip_info_entry_item_content_get(void *data, Evas_Object *obj, const char *part)
 {
-       common_utils_entry_info_t *entry_info = (common_utils_entry_info_t *)data;
+       common_utils_entry_info_t *entry_info = (common_utils_entry_info_t *)common_util_genlist_item_data_get(data);
+
        if (!entry_info)
                return NULL;
 
@@ -358,7 +347,7 @@ static Evas_Object *_ip_info_entry_item_content_get(void *data, Evas_Object *obj
 
 static void _ip_info_entry_item_del(void *data, Evas_Object *obj)
 {
-       common_utils_entry_info_t *entry_info = (common_utils_entry_info_t *)data;
+       common_utils_entry_info_t *entry_info = (common_utils_entry_info_t *)common_util_genlist_item_data_get(data);
        if (entry_info == NULL)
                return;
 
@@ -374,11 +363,13 @@ static void _ip_info_entry_item_del(void *data, Evas_Object *obj)
        }
 
        g_free(entry_info);
+       g_free(data);
+       data = NULL;
 }
 
 static char *_access_info_cb(void *data, Evas_Object *obj)
 {
-       common_utils_entry_info_t *entry_info = (common_utils_entry_info_t *)data;
+       common_utils_entry_info_t *entry_info = (common_utils_entry_info_t *) common_util_genlist_item_data_get(data);
        if (!entry_info)
                return NULL;
 
@@ -404,7 +395,11 @@ static void _create_static_ip_table(ip_info_list_t *ip_info_list_data)
        edit_box_details->entry_txt = txt;
        edit_box_details->input_panel_cb = ip_info_list_data->input_panel_cb;
        edit_box_details->input_panel_cb_data = ip_info_list_data->input_panel_cb_data;
-       edit_box_details->item = elm_genlist_item_insert_after(ip_info_list_data->genlist, &ip_entry_itc, edit_box_details, NULL, ip_info_list_data->ip_toggle_item, ELM_GENLIST_ITEM_NONE, _gl_editbox_sel_cb, NULL);
+
+       genlist_item_data_t *item_data = g_new0(genlist_item_data_t, 1);
+       item_data->cast_data = edit_box_details;
+       item_data->group_style = GENLIST_ITEM_STYLE_CENTER;
+       edit_box_details->item = elm_genlist_item_insert_after(ip_info_list_data->genlist, &ip_entry_itc, item_data, NULL, ip_info_list_data->ip_toggle_item, ELM_GENLIST_ITEM_NONE, _gl_editbox_sel_cb, NULL);
        elm_genlist_item_select_mode_set(edit_box_details->item, ELM_OBJECT_SELECT_MODE_NONE);
        Evas_Object *ao = elm_object_item_access_object_get(edit_box_details->item);
        elm_access_info_cb_set(ao, ELM_ACCESS_INFO, _access_info_cb, edit_box_details);
@@ -418,7 +413,11 @@ static void _create_static_ip_table(ip_info_list_t *ip_info_list_data)
        edit_box_details->entry_txt = txt;
        edit_box_details->input_panel_cb = ip_info_list_data->input_panel_cb;
        edit_box_details->input_panel_cb_data = ip_info_list_data->input_panel_cb_data;
-       edit_box_details->item = elm_genlist_item_insert_after(ip_info_list_data->genlist, &ip_entry_itc, edit_box_details, NULL, ip_info_list_data->ip_addr_item, ELM_GENLIST_ITEM_NONE, _gl_editbox_sel_cb, NULL);
+
+       item_data = g_new0(genlist_item_data_t, 1);
+       item_data->cast_data = edit_box_details;
+       item_data->group_style = GENLIST_ITEM_STYLE_CENTER;
+       edit_box_details->item = elm_genlist_item_insert_after(ip_info_list_data->genlist, &ip_entry_itc, item_data, NULL, ip_info_list_data->ip_addr_item, ELM_GENLIST_ITEM_NONE, _gl_editbox_sel_cb, NULL);
        elm_genlist_item_select_mode_set(edit_box_details->item, ELM_OBJECT_SELECT_MODE_NONE);
        ao = elm_object_item_access_object_get(edit_box_details->item);
        elm_access_info_cb_set(ao, ELM_ACCESS_INFO, _access_info_cb, edit_box_details);
@@ -432,7 +431,11 @@ static void _create_static_ip_table(ip_info_list_t *ip_info_list_data)
        edit_box_details->entry_txt = txt;
        edit_box_details->input_panel_cb = ip_info_list_data->input_panel_cb;
        edit_box_details->input_panel_cb_data = ip_info_list_data->input_panel_cb_data;
-       edit_box_details->item = elm_genlist_item_insert_after(ip_info_list_data->genlist, &ip_entry_itc, edit_box_details, NULL, ip_info_list_data->subnet_mask_item, ELM_GENLIST_ITEM_NONE, _gl_editbox_sel_cb, NULL);
+
+       item_data = g_new0(genlist_item_data_t, 1);
+       item_data->cast_data = edit_box_details;
+       item_data->group_style = GENLIST_ITEM_STYLE_CENTER;
+       edit_box_details->item = elm_genlist_item_insert_after(ip_info_list_data->genlist, &ip_entry_itc, item_data, NULL, ip_info_list_data->subnet_mask_item, ELM_GENLIST_ITEM_NONE, _gl_editbox_sel_cb, NULL);
        elm_genlist_item_select_mode_set(edit_box_details->item, ELM_OBJECT_SELECT_MODE_NONE);
        ao = elm_object_item_access_object_get(edit_box_details->item);
        elm_access_info_cb_set(ao, ELM_ACCESS_INFO, _access_info_cb, edit_box_details);
@@ -446,7 +449,11 @@ static void _create_static_ip_table(ip_info_list_t *ip_info_list_data)
        edit_box_details->entry_txt = txt;
        edit_box_details->input_panel_cb = ip_info_list_data->input_panel_cb;
        edit_box_details->input_panel_cb_data = ip_info_list_data->input_panel_cb_data;
-       edit_box_details->item = elm_genlist_item_insert_after(ip_info_list_data->genlist, &ip_entry_itc, edit_box_details, NULL, ip_info_list_data->gateway_addr_item, ELM_GENLIST_ITEM_NONE, _gl_editbox_sel_cb, NULL);
+
+       item_data = g_new0(genlist_item_data_t, 1);
+       item_data->cast_data = edit_box_details;
+       item_data->group_style = GENLIST_ITEM_STYLE_CENTER;
+       edit_box_details->item = elm_genlist_item_insert_after(ip_info_list_data->genlist, &ip_entry_itc, item_data, NULL, ip_info_list_data->gateway_addr_item, ELM_GENLIST_ITEM_NONE, _gl_editbox_sel_cb, NULL);
        elm_genlist_item_select_mode_set(edit_box_details->item, ELM_OBJECT_SELECT_MODE_NONE);
        ao = elm_object_item_access_object_get(edit_box_details->item);
        elm_access_info_cb_set(ao, ELM_ACCESS_INFO, _access_info_cb, edit_box_details);
@@ -460,7 +467,11 @@ static void _create_static_ip_table(ip_info_list_t *ip_info_list_data)
        edit_box_details->entry_txt = txt;
        edit_box_details->input_panel_cb = ip_info_list_data->input_panel_cb;
        edit_box_details->input_panel_cb_data = ip_info_list_data->input_panel_cb_data;
-       edit_box_details->item = elm_genlist_item_insert_after(ip_info_list_data->genlist, &ip_entry_itc, edit_box_details, NULL, ip_info_list_data->dns_1_item, ELM_GENLIST_ITEM_NONE, _gl_editbox_sel_cb, NULL);
+
+       item_data = g_new0(genlist_item_data_t, 1);
+       item_data->cast_data = edit_box_details;
+       item_data->group_style = GENLIST_ITEM_STYLE_BOTTOM;
+       edit_box_details->item = elm_genlist_item_insert_after(ip_info_list_data->genlist, &ip_entry_itc, item_data, NULL, ip_info_list_data->dns_1_item, ELM_GENLIST_ITEM_NONE, _gl_editbox_sel_cb, NULL);
        elm_genlist_item_select_mode_set(edit_box_details->item, ELM_OBJECT_SELECT_MODE_NONE);
        ao = elm_object_item_access_object_get(edit_box_details->item);
        elm_access_info_cb_set(ao, ELM_ACCESS_INFO, _access_info_cb, edit_box_details);
@@ -512,7 +523,7 @@ static char* _ip_info_iptoggle_text_get(void *data, Evas_Object *obj,
        retvm_if(NULL == data || NULL == part, NULL);
 
        if (!strncmp(part, "elm.text", strlen(part))) {
-               ip_info_list_t *ip_info_list_data = (ip_info_list_t *)data;
+               ip_info_list_t *ip_info_list_data = (ip_info_list_t *)common_util_genlist_item_data_get(data);
 
                Evas_Object *ao = elm_object_item_access_object_get(ip_info_list_data->ip_toggle_item);
                elm_access_info_set(ao, ELM_ACCESS_TYPE, "on/off button");
@@ -529,7 +540,7 @@ static char* _ip_info_iptoggle_text_get(void *data, Evas_Object *obj,
 }
 
 static Elm_Object_Item* _add_description(Evas_Object* genlist, char* title,
-               char* description, Elm_Object_Item* insert_after)
+               char* description, Elm_Object_Item* insert_after, GENLIST_ITEM_STYLE item_style)
 {
        retvm_if(NULL == genlist, NULL);
 
@@ -539,12 +550,16 @@ static Elm_Object_Item* _add_description(Evas_Object* genlist, char* title,
        description_data->title = g_strdup(title);
        description_data->description = g_strdup(description);
 
+       genlist_item_data_t *item_data = g_new0(genlist_item_data_t, 1);
+       item_data->cast_data = description_data;
+       item_data->group_style = item_style;
+
        Elm_Object_Item* det = NULL;
        if (insert_after) {
                det = elm_genlist_item_insert_after(
                                genlist, /*obj*/
                                &description_itc,/*itc*/
-                               description_data,/*data*/
+                               item_data,/*data*/
                                NULL,/*parent*/
                                insert_after, /*after than*/
                                ELM_GENLIST_ITEM_NONE, /*flags*/
@@ -554,7 +569,7 @@ static Elm_Object_Item* _add_description(Evas_Object* genlist, char* title,
                det = elm_genlist_item_append(
                                genlist,
                                &description_itc,
-                               description_data,
+                               item_data,
                                NULL,
                                ELM_GENLIST_ITEM_NONE,
                                _gl_deselect_callback,
@@ -612,7 +627,7 @@ static void __ip_info_toggle_item_sel_cb(void* data,
                                        ip_info_list_data->genlist,
                                        sc(ip_info_list_data->str_pkg_name, I18N_TYPE_IP_address),
                                        ip_addr,
-                                       ip_info_list_data->ip_toggle_item);
+                                       ip_info_list_data->ip_toggle_item, GENLIST_ITEM_STYLE_BOTTOM);
 
                        elm_object_item_disabled_set(ip_info_list_data->ip_addr_item, EINA_TRUE);
 
@@ -645,7 +660,7 @@ static Evas_Object *_ip_info_iptoggle_content_get(void *data,
 {
        retvm_if(NULL == data || NULL == obj || NULL == part, NULL);
 
-       ip_info_list_t *ip_info_list_data = (ip_info_list_t *)data;
+       ip_info_list_t *ip_info_list_data = (ip_info_list_t *)common_util_genlist_item_data_get(data);
 
        Evas_Object *toggle_btn = elm_check_add(obj);
        retvm_if(NULL == toggle_btn, NULL);
@@ -760,7 +775,7 @@ ip_info_list_t *ip_info_append_items(wifi_ap_h ap, const char *pkg_name,
        ip_toggle_itc.func.text_get = _ip_info_iptoggle_text_get;
        ip_toggle_itc.func.content_get = _ip_info_iptoggle_content_get;
        ip_toggle_itc.func.state_get = NULL;
-       ip_toggle_itc.func.del = NULL;
+       ip_toggle_itc.func.del = _ip_toggle_item_del;
 
        description_itc.item_style = "dialogue/2text.2";
        description_itc.func.text_get = _ip_info_detail_description_text_get;
@@ -780,8 +795,12 @@ ip_info_list_t *ip_info_append_items(wifi_ap_h ap, const char *pkg_name,
        wifi_ip_config_type_e type = WIFI_IP_CONFIG_TYPE_NONE;
        wifi_ap_get_ip_config_type(ap, WIFI_ADDRESS_FAMILY_IPV4, &type);
        ip_info_list_data->ip_type = type;
+
+       genlist_item_data_t *item_data = g_new0(genlist_item_data_t, 1);
+       item_data->cast_data = ip_info_list_data;
+
        ip_info_list_data->ip_toggle_item = elm_genlist_item_append(genlist,
-                       &ip_toggle_itc, ip_info_list_data, NULL, ELM_GENLIST_ITEM_NONE,
+                       &ip_toggle_itc, item_data, NULL, ELM_GENLIST_ITEM_NONE,
                        __ip_info_toggle_item_sel_cb, ip_info_list_data);
 
        /* IP address */
@@ -795,7 +814,7 @@ ip_info_list_t *ip_info_append_items(wifi_ap_h ap, const char *pkg_name,
                ip_info_list_data->ip_addr_item =
                _add_description(genlist,
                        sc(ip_info_list_data->str_pkg_name, I18N_TYPE_IP_address),
-                       ip_addr, NULL);
+                       ip_addr, NULL, GENLIST_ITEM_STYLE_BOTTOM);
                elm_object_item_disabled_set(ip_info_list_data->ip_addr_item, TRUE);
                g_free(ip_addr);
        }
@@ -818,7 +837,7 @@ ip_info_list_t *ip_info_append_items(wifi_ap_h ap, const char *pkg_name,
        item =
        _add_description(genlist,
                sc(ip_info_list_data->str_pkg_name, I18N_TYPE_MAC_addr), mac_addr,
-               NULL);
+               NULL, GENLIST_ITEM_STYLE_TOP);
        elm_object_item_disabled_set(item, TRUE);
        g_free(mac_addr);
 
@@ -845,7 +864,10 @@ ip_info_list_t *ip_info_append_items(wifi_ap_h ap, const char *pkg_name,
        edit_box_details->guide_txt = DEFAULT_GUIDE_PROXY_IP;
        edit_box_details->input_panel_cb = input_panel_cb;
        edit_box_details->input_panel_cb_data = input_panel_cb_data;
-       edit_box_details->item = elm_genlist_item_append(genlist, &ip_entry_itc, edit_box_details, NULL, ELM_GENLIST_ITEM_NONE, _gl_editbox_sel_cb, NULL);
+       item_data = g_new0(genlist_item_data_t, 1);
+       item_data->cast_data = edit_box_details;
+       item_data->group_style = GENLIST_ITEM_STYLE_CENTER;
+       edit_box_details->item = elm_genlist_item_append(genlist, &ip_entry_itc, item_data, NULL, ELM_GENLIST_ITEM_NONE, _gl_editbox_sel_cb, NULL);
        elm_genlist_item_select_mode_set(edit_box_details->item, ELM_OBJECT_SELECT_MODE_NONE);
        Evas_Object *ao = elm_object_item_access_object_get(edit_box_details->item);
        elm_access_info_cb_set(ao, ELM_ACCESS_INFO, _access_info_cb, edit_box_details);
@@ -858,7 +880,10 @@ ip_info_list_t *ip_info_append_items(wifi_ap_h ap, const char *pkg_name,
        edit_box_details->guide_txt = DEFAULT_GUIDE_PROXY_PORT;
        edit_box_details->input_panel_cb = input_panel_cb;
        edit_box_details->input_panel_cb_data = input_panel_cb_data;
-       edit_box_details->item = elm_genlist_item_append(genlist, &ip_entry_itc, edit_box_details, NULL, ELM_GENLIST_ITEM_NONE, _gl_editbox_sel_cb, NULL);
+       item_data = g_new0(genlist_item_data_t, 1);
+       item_data->cast_data = edit_box_details;
+       item_data->group_style = GENLIST_ITEM_STYLE_BOTTOM;
+       edit_box_details->item = elm_genlist_item_append(genlist, &ip_entry_itc, item_data, NULL, ELM_GENLIST_ITEM_NONE, _gl_editbox_sel_cb, NULL);
        elm_genlist_item_select_mode_set(edit_box_details->item, ELM_OBJECT_SELECT_MODE_NONE);
        ao = elm_object_item_access_object_get(edit_box_details->item);
        elm_access_info_cb_set(ao, ELM_ACCESS_INFO, _access_info_cb, edit_box_details);
index 66bffbe..e6b14fc 100644 (file)
@@ -39,7 +39,7 @@ static GSList *managed_idler_list = NULL;
 
 static char *__common_utils_2line_text_get(void *data, Evas_Object *obj, const char *part)
 {
-       two_line_disp_data_t *item_data = (two_line_disp_data_t *)data;
+       two_line_disp_data_t *item_data = (two_line_disp_data_t *)common_util_genlist_item_data_get(data);
        if (!strcmp(part, "elm.text.1")) {
                return g_strdup(item_data->info_str);
        } else if (!strcmp(part, "elm.text.2")) {
@@ -50,12 +50,14 @@ static char *__common_utils_2line_text_get(void *data, Evas_Object *obj, const c
 
 static void __common_utils_2line_text_del(void *data, Evas_Object *obj)
 {
-       two_line_disp_data_t *item_data = (two_line_disp_data_t *)data;
+       two_line_disp_data_t *item_data = (two_line_disp_data_t *)common_util_genlist_item_data_get(data);
        if (item_data) {
                g_free(item_data->info_str);
                g_free(item_data->title_str);
                g_free(item_data);
        }
+       g_free(data);
+       data = NULL;
 }
 
 static void __common_utils_separator_del(void *data, Evas_Object *obj)
@@ -204,6 +206,24 @@ void common_popup_size_get(Ecore_IMF_Context *target_imf, int *width, int *heigh
        __COMMON_FUNC_EXIT__;
 }
 
+void common_util_genlist_item_style_set(Elm_Object_Item *target, GENLIST_ITEM_STYLE stype)
+{
+       switch(stype)
+       {
+               case GENLIST_ITEM_STYLE_TOP:
+                       elm_object_item_signal_emit(target, "elm,state,top", "");
+                       break;
+               case GENLIST_ITEM_STYLE_CENTER:
+                       elm_object_item_signal_emit(target, "elm,state,center", "");
+                       break;
+               case GENLIST_ITEM_STYLE_BOTTOM:
+                       elm_object_item_signal_emit(target, "elm,state,bottom", "");
+                       break;
+               case GENLIST_ITEM_STYLE_NONE:
+                       break;
+       }
+}
+
 void common_utils_entry_password_set(Evas_Object *layout, Eina_Bool pswd_set)
 {
        Evas_Object *entry = elm_object_part_content_get(layout, "elm.swallow.content");
@@ -214,8 +234,10 @@ void common_utils_set_edit_box_imf_panel_evnt_cb(Elm_Object_Item *item,
                                                imf_ctxt_panel_cb_t input_panel_cb, void *user_data)
 {
        __COMMON_FUNC_ENTER__;
-       common_utils_entry_info_t *entry_info;
-       entry_info = elm_object_item_data_get(item);
+
+       void *data = elm_object_item_data_get(item);
+       common_utils_entry_info_t *entry_info = elm_object_item_data_get(data);
+
        if (!entry_info)
                return;
 
@@ -253,7 +275,7 @@ void common_utils_edit_box_focus_set(Elm_Object_Item *item, Eina_Bool focus_set)
        return;
 }
 
-Elm_Object_Item *common_utils_add_2_line_txt_disabled_item(Evas_Object* view_list, const char *style_name, const char *line1_txt, const char *line2_txt)
+Elm_Object_Item *common_utils_add_2_line_txt_disabled_item(Evas_Object* view_list, const char *style_name, const char *line1_txt, const char *line2_txt, GENLIST_ITEM_STYLE style)
 {
        static Elm_Genlist_Item_Class two_line_display_itc;
        two_line_disp_data_t *two_line_data = NULL;
@@ -270,7 +292,10 @@ Elm_Object_Item *common_utils_add_2_line_txt_disabled_item(Evas_Object* view_lis
        two_line_data->info_str = g_strdup(line2_txt);
        INFO_LOG(UG_NAME_NORMAL, "title_str = %s info_str = %s", two_line_data->title_str, two_line_data->info_str);
 
-       item = elm_genlist_item_append(view_list, &two_line_display_itc, two_line_data, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
+       genlist_item_data_t *item_data = g_new0(genlist_item_data_t, 1);
+       item_data->cast_data = two_line_data;
+       item_data->group_style = style;
+       item = elm_genlist_item_append(view_list, &two_line_display_itc, item_data, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
        elm_object_item_disabled_set(item, TRUE);
 
        return item;
@@ -278,8 +303,8 @@ Elm_Object_Item *common_utils_add_2_line_txt_disabled_item(Evas_Object* view_lis
 
 char *common_utils_get_list_item_entry_txt(Elm_Object_Item *entry_item)
 {
-       common_utils_entry_info_t *entry_info =
-                       (common_utils_entry_info_t *)elm_object_item_data_get(entry_item);
+       void *data = elm_object_item_data_get(entry_item);
+       common_utils_entry_info_t *entry_info = (common_utils_entry_info_t *)common_util_genlist_item_data_get(data);
        if (entry_info == NULL)
                return NULL;
 
@@ -431,6 +456,12 @@ int common_utils_get_rotate_angle(enum appcore_rm rotate_mode)
        return rotate_angle;
 }
 
+void* common_util_genlist_item_data_get(void *data)
+{
+       genlist_item_data_t *item_data = (genlist_item_data_t *)data;
+       return item_data->cast_data;
+}
+
 wlan_security_mode_type_t common_utils_get_sec_mode(wifi_security_type_e sec_type)
 {
        switch (sec_type) {
index f240bab..a2e79dd 100644 (file)
@@ -32,7 +32,6 @@ extern "C"
 
 #define DISABLE_FAST_EAP_METHOD
 
-typedef struct eap_info_list eap_info_list_t;
 typedef struct common_eap_connect_data eap_connect_data_t;
 
 eap_connect_data_t *create_eap_view(Evas_Object *win_main,
index 09492f6..678668e 100644 (file)
@@ -33,8 +33,6 @@ extern "C"
 #define DEFAULT_GUIDE_PROXY_IP "proxy.example.com"
 #define DEFAULT_GUIDE_PROXY_PORT "8080"
 
-typedef struct ip_info_list ip_info_list_t;
-
 ip_info_list_t *ip_info_append_items(wifi_ap_h ap, const char *pkg_name, Evas_Object *genlist, imf_ctxt_panel_cb_t input_panel_cb,     void *input_panel_cb_data);
 void ip_info_save_data(ip_info_list_t *ip_info_list);
 void ip_info_remove(ip_info_list_t *ip_info_list);
index 59c3c4f..e9f71cf 100644 (file)
@@ -24,9 +24,8 @@
 extern "C"
 {
 #endif
-
-#include <Evas.h>
 #include <Ecore.h>
+#include <Evas.h>
 #include <wifi.h>
 
 typedef struct {
index a9c10a6..d2f2399 100644 (file)
@@ -50,6 +50,18 @@ typedef enum {
        ENTRY_TYPE_PROXY_PORT,
 } entry_id_type_t;
 
+typedef enum {
+       GENLIST_ITEM_STYLE_NONE = 0,
+       GENLIST_ITEM_STYLE_TOP,
+       GENLIST_ITEM_STYLE_CENTER,
+       GENLIST_ITEM_STYLE_BOTTOM,
+}GENLIST_ITEM_STYLE;
+
+typedef struct {
+       void *cast_data;
+       GENLIST_ITEM_STYLE group_style;
+} genlist_item_data_t;
+
 typedef struct {
        entry_id_type_t entry_id;
        char *title_txt;
@@ -71,6 +83,48 @@ typedef struct {
        const void *btn2_data;
 } popup_btn_info_t;
 
+typedef struct {
+       wifi_ap_h ap;
+       Elm_Object_Item *pswd_item;
+}eap_info_list_t;
+
+typedef struct {
+       char* title;
+       char* description;
+} _view_detail_description_data_t;
+
+typedef struct {
+       const char *str_pkg_name;
+       Evas_Object *genlist;
+
+       Elm_Object_Item* ip_toggle_item;
+       Elm_Object_Item* ip_addr_item;
+       Elm_Object_Item* subnet_mask_item;
+       Elm_Object_Item* gateway_addr_item;
+       Elm_Object_Item* dns_1_item;
+       Elm_Object_Item* dns_2_item;
+       Elm_Object_Item* proxy_addr_item;
+       Elm_Object_Item* proxy_port_item;
+
+       imf_ctxt_panel_cb_t input_panel_cb;
+       void *input_panel_cb_data;
+
+       wifi_ap_h ap;
+       wifi_ip_config_type_e ip_type;
+} ip_info_list_t;
+
+typedef struct {
+       Evas_Object *win;
+       char *ap_image_path;
+       wifi_ap_h ap;
+       eap_info_list_t *eap_info_list;
+       ip_info_list_t *ip_info_list;
+       Evas_Object *forget_confirm_popup;
+       Evas_Object *view_detail_list;
+} view_detail_data;
+
+void* common_util_genlist_item_data_get(void *data);
+
 Elm_Object_Item *common_utils_add_dialogue_separator(
                Evas_Object* genlist, const char *separator_style);
 char *common_utils_get_ap_security_type_info_txt(
@@ -90,7 +144,7 @@ void common_utils_edit_box_focus_set(Elm_Object_Item *item, Eina_Bool focus_set)
 void common_utils_entry_password_set(Evas_Object *layout, Eina_Bool pswd_set);
 Elm_Object_Item *common_utils_add_2_line_txt_disabled_item(
                Evas_Object* view_list, const char *style_name,
-               const char *line1_txt, const char *line2_txt);
+               const char *line1_txt, const char *line2_txt, GENLIST_ITEM_STYLE style);
 char *common_utils_get_list_item_entry_txt(Elm_Object_Item *entry_item);
 Evas_Object *common_utils_create_radio_button(Evas_Object *parent,
                const int value);
@@ -113,6 +167,7 @@ int common_util_get_system_registry(const char *key);
 guint common_util_managed_idle_add(GSourceFunc func, gpointer user_data);
 void common_util_managed_idle_cleanup(void);
 void common_popup_size_get(Ecore_IMF_Context *target_imf, int *width, int *height);
+void common_util_genlist_item_style_set(Elm_Object_Item *target, GENLIST_ITEM_STYLE stype);
 
 #ifdef __cplusplus
 }
index bf94216..0b2f1bf 100644 (file)
@@ -17,7 +17,6 @@
  *
  */
 
-#include <Ecore_X.h>
 #include <Elementary.h>
 
 #include "common.h"
index 57883a0..0969699 100644 (file)
 #include "common_eap_connect.h"
 #include <efl_assist.h>
 
-typedef struct _view_detail_data {
-       Evas_Object *win;
-       char *ap_image_path;
-       wifi_ap_h ap;
-       eap_info_list_t *eap_info_list;
-       ip_info_list_t *ip_info_list;
-       Evas_Object *forget_confirm_popup;
-       Evas_Object *view_detail_list;
-} view_detail_data;
-
 static int view_detail_end = FALSE;
 
 static char *_view_detail_grouptitle_text_get(void *data,
@@ -266,6 +256,21 @@ static gboolean __view_detail_load_ip_info_list_cb(void *data)
        return FALSE;
 }
 
+static void _gl_realized(void *data, Evas_Object *obj, void *event_info)
+{
+       __COMMON_FUNC_ENTER__;
+
+       Elm_Object_Item *item = (Elm_Object_Item *)event_info;
+       assertm_if(NULL == item, "item is NULL");
+
+       genlist_item_data_t *item_data_t = (genlist_item_data_t *)elm_object_item_data_get(item);
+       assertm_if(NULL == item_data_t, "NULL!!");
+
+       common_util_genlist_item_style_set(item, item_data_t->group_style);
+
+       __COMMON_FUNC_EXIT__;
+}
+
 void view_detail(wifi_device_info_t *device_info, Evas_Object *win_main)
 {
        __COMMON_FUNC_ENTER__;
@@ -278,6 +283,7 @@ void view_detail(wifi_device_info_t *device_info, Evas_Object *win_main)
                ERROR_LOG(UG_NAME_NORMAL, "Failed: device_info is NULL");
                return;
        }
+
        Evas_Object *layout = NULL;
        Evas_Object* navi_frame = viewer_manager_get_naviframe();
        if (navi_frame == NULL) {
@@ -326,6 +332,8 @@ void view_detail(wifi_device_info_t *device_info, Evas_Object *win_main)
        evas_object_data_set(navi_frame, SCREEN_TYPE_ID_KEY,
                                (void *)VIEW_MANAGER_VIEW_TYPE_DETAIL);
 
+       evas_object_smart_callback_add(detailview_list, "realized", _gl_realized, NULL);
+
        /* Set pop callback */
        elm_naviframe_item_pop_cb_set(navi_it, detailview_sk_cb, _detail_data);
 
index b93323b..f75ca26 100644 (file)
@@ -218,6 +218,8 @@ static void _gl_realized(void *data, Evas_Object *obj, void *event_info)
                return ;
 
        Elm_Object_Item *item = (Elm_Object_Item *)event_info;
+       assertm_if(NULL == item, "item is NULL!!");
+
        int index = (int)elm_genlist_item_index_get(item);
        int first_item_index = (int)elm_genlist_item_index_get(viewer_list_get_first_item());
        int last_item_index = (int)elm_genlist_item_index_get(viewer_list_get_last_item());
index 041b624..9497346 100644 (file)
@@ -509,6 +509,7 @@ static int app_reset(bundle *b, void *data)
                syspopup_reset(b);
        } else {
                win_main = appcore_create_win(PACKAGE);
+               elm_win_indicator_mode_set (win_main, ELM_WIN_INDICATOR_SHOW);
                assertm_if(NULL == win_main, "win_main is NULL!!");
                evas = evas_object_evas_get(win_main);
                assertm_if(NULL == evas, "evas is NULL!!");