From a5be415f511725fa8bff8bb6a2e8e58d32c9cf29 Mon Sep 17 00:00:00 2001 From: Hyunjee Kim Date: Mon, 20 Jan 2014 15:05:01 +0900 Subject: [PATCH] Fix eap, detail view grouping Change-Id: Ib634a8d9f05ed6ab6ce647c99661625ba70080c4 Signed-off-by: Hyunjee Kim --- packaging/wifi-efl-ug.spec | 2 +- sources/libraries/Common/common_eap_connect.c | 186 ++++++++++++++++----- sources/libraries/Common/common_ip_info.c | 125 ++++++++------ sources/libraries/Common/common_utils.c | 47 +++++- .../libraries/Common/include/common_eap_connect.h | 1 - sources/libraries/Common/include/common_ip_info.h | 2 - .../libraries/Common/include/common_pswd_popup.h | 3 +- sources/libraries/Common/include/common_utils.h | 57 ++++++- sources/libraries/appcoreWrapper/appcoreWrapper.c | 1 - sources/ui-gadget/viewers-layout/view_detail.c | 28 ++-- .../ui-gadget/viewers-layout/wifi_viewer_list.c | 2 + sources/wifi-syspopup/wifi-syspopup.c | 1 + 12 files changed, 335 insertions(+), 120 deletions(-) diff --git a/packaging/wifi-efl-ug.spec b/packaging/wifi-efl-ug.spec index ed1d7ac..5a13b6c 100644 --- a/packaging/wifi-efl-ug.spec +++ b/packaging/wifi-efl-ug.spec @@ -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 diff --git a/sources/libraries/Common/common_eap_connect.c b/sources/libraries/Common/common_eap_connect.c index a110706..b5cf65b 100644 --- a/sources/libraries/Common/common_eap_connect.c +++ b/sources/libraries/Common/common_eap_connect.c @@ -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; } diff --git a/sources/libraries/Common/common_ip_info.c b/sources/libraries/Common/common_ip_info.c index 052bacb..c73bf49 100644 --- a/sources/libraries/Common/common_ip_info.c +++ b/sources/libraries/Common/common_ip_info.c @@ -27,33 +27,8 @@ #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); diff --git a/sources/libraries/Common/common_utils.c b/sources/libraries/Common/common_utils.c index 66bffbe..e6b14fc 100644 --- a/sources/libraries/Common/common_utils.c +++ b/sources/libraries/Common/common_utils.c @@ -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) { diff --git a/sources/libraries/Common/include/common_eap_connect.h b/sources/libraries/Common/include/common_eap_connect.h index f240bab..a2e79dd 100644 --- a/sources/libraries/Common/include/common_eap_connect.h +++ b/sources/libraries/Common/include/common_eap_connect.h @@ -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, diff --git a/sources/libraries/Common/include/common_ip_info.h b/sources/libraries/Common/include/common_ip_info.h index 09492f6..678668e 100644 --- a/sources/libraries/Common/include/common_ip_info.h +++ b/sources/libraries/Common/include/common_ip_info.h @@ -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); diff --git a/sources/libraries/Common/include/common_pswd_popup.h b/sources/libraries/Common/include/common_pswd_popup.h index 59c3c4f..e9f71cf 100644 --- a/sources/libraries/Common/include/common_pswd_popup.h +++ b/sources/libraries/Common/include/common_pswd_popup.h @@ -24,9 +24,8 @@ extern "C" { #endif - -#include #include +#include #include typedef struct { diff --git a/sources/libraries/Common/include/common_utils.h b/sources/libraries/Common/include/common_utils.h index a9c10a6..d2f2399 100644 --- a/sources/libraries/Common/include/common_utils.h +++ b/sources/libraries/Common/include/common_utils.h @@ -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 } diff --git a/sources/libraries/appcoreWrapper/appcoreWrapper.c b/sources/libraries/appcoreWrapper/appcoreWrapper.c index bf94216..0b2f1bf 100644 --- a/sources/libraries/appcoreWrapper/appcoreWrapper.c +++ b/sources/libraries/appcoreWrapper/appcoreWrapper.c @@ -17,7 +17,6 @@ * */ -#include #include #include "common.h" diff --git a/sources/ui-gadget/viewers-layout/view_detail.c b/sources/ui-gadget/viewers-layout/view_detail.c index 57883a0..0969699 100644 --- a/sources/ui-gadget/viewers-layout/view_detail.c +++ b/sources/ui-gadget/viewers-layout/view_detail.c @@ -27,16 +27,6 @@ #include "common_eap_connect.h" #include -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); diff --git a/sources/ui-gadget/viewers-layout/wifi_viewer_list.c b/sources/ui-gadget/viewers-layout/wifi_viewer_list.c index b93323b..f75ca26 100644 --- a/sources/ui-gadget/viewers-layout/wifi_viewer_list.c +++ b/sources/ui-gadget/viewers-layout/wifi_viewer_list.c @@ -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()); diff --git a/sources/wifi-syspopup/wifi-syspopup.c b/sources/wifi-syspopup/wifi-syspopup.c index 041b624..9497346 100644 --- a/sources/wifi-syspopup/wifi-syspopup.c +++ b/sources/wifi-syspopup/wifi-syspopup.c @@ -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!!"); -- 2.7.4