From 3ad52dc295d0cf0a0e311377b5a8976647d5c881 Mon Sep 17 00:00:00 2001 From: Abhishek Sansanwal Date: Fri, 6 Jan 2017 09:25:28 +0530 Subject: [PATCH] [TSAM-11694] Merge client list into main view Description: The connected client devices were being listed in a seperate view, this commit adds the connected clients into the main view. Change-Id: I8449ce255b39269e4d83e59f94dc032457086139 Signed-off-by: Abhishek Sansanwal --- include/mh_view_main.h | 4 +- include/mobile_hotspot.h | 15 +--- src/mh_connected_client.c | 170 +++++++++++++++----------------------- src/mh_main_ug.c | 4 +- src/mh_view_main.c | 121 +++++++++------------------ 5 files changed, 113 insertions(+), 201 deletions(-) diff --git a/include/mh_view_main.h b/include/mh_view_main.h index b1448e7..a6f1ebc 100755 --- a/include/mh_view_main.h +++ b/include/mh_view_main.h @@ -55,10 +55,10 @@ void _stop_update_device_conn_time(mh_appdata_t *ad); void _main_draw_contents(mh_appdata_t *ad); void _main_callback_del(mh_appdata_t *ad); void _main_free_genlist_itc(mh_appdata_t *ad); -void _select_connected_dev(void *data, Evas_Object *obj, void *event_info); +void _list_connected_dev(mh_appdata_t *data); void _genlist_update_device_item(mh_appdata_t *ad); void _update_conn_clients(mh_appdata_t *ad); -void _create_connected_client_view(mh_appdata_t *ad); +void _add_connected_clients(mh_appdata_t *ad); void _ctxpopup_more_button_callback_add(mh_appdata_t *ad); void _ctxpopup_more_button_callback_del(mh_appdata_t *ad); diff --git a/include/mobile_hotspot.h b/include/mobile_hotspot.h index 61adffd..36ca6ff 100755 --- a/include/mobile_hotspot.h +++ b/include/mobile_hotspot.h @@ -140,6 +140,7 @@ typedef struct ap_app_main { Elm_Genlist_Item_Class *device0_itc; Elm_Genlist_Item_Class *popup_descp_itc; Elm_Genlist_Item_Class *popup_check_itc; + Elm_Genlist_Item_Class *dev_itc[TETHERING_TYPE_MAX]; Elm_Object_Item *sp_item[4]; Elm_Object_Item *help_sp_item; @@ -151,7 +152,10 @@ typedef struct ap_app_main { Elm_Object_Item *help_item; Elm_Object_Item *popup_descp_item; Elm_Object_Item *popup_check_item; + Elm_Object_Item *dev_item; + Elm_Object_Item *station_items[MAX_CONNECTED_STA]; + int no_of_clients; #ifdef TETHERING_DATA_USAGE_SUPPORT Elm_Genlist_Item_Class *usage_itc; Elm_Object_Item *usage_item; @@ -208,16 +212,6 @@ typedef struct { unsigned long long pdp_total_receive; } mh_data_usage_t; -typedef struct { - Elm_Object_Item *navi_it; - Evas_Object *genlist; - - Elm_Genlist_Item_Class *dev_itc[TETHERING_TYPE_MAX]; - Elm_Object_Item *dev_item; - Elm_Object_Item *station_items[MAX_CONNECTED_STA]; - int no_of_clients; -} mh_conn_client_view_t; - typedef struct { void *gadget; GSList *client_list; @@ -249,7 +243,6 @@ typedef struct { mh_main_view_t main; mh_wifi_setting_view_t setup; mh_data_usage_t data_statistics; - mh_conn_client_view_t connected_device; } mh_appdata_t; typedef struct { diff --git a/src/mh_connected_client.c b/src/mh_connected_client.c index 518359a..49425f4 100755 --- a/src/mh_connected_client.c +++ b/src/mh_connected_client.c @@ -10,31 +10,31 @@ #include "mobile_hotspot.h" #include "mh_string.h" -static void __deconstruct_conn_clients_view(mh_appdata_t *ad) +static void __remove_conn_clients(mh_appdata_t *ad) { __MOBILE_AP_FUNC_ENTER__; - mh_conn_client_view_t *client = &ad->connected_device; - int no_of_dev; + mh_main_view_t *mv = &ad->main; + int connected_clients = 0; int i = 0; - no_of_dev = _get_list_clients_count(ad); - for (i = 0; i < no_of_dev; i++) - _free_genlist_item(&ad->connected_device.station_items[i]); + if (_get_no_of_connected_device(ad, &connected_clients, + TETHERING_TYPE_ALL) == EINA_FALSE) + ERR("Getting the number of connected device is failed"); - _free_genlist_itc(&client->dev_itc[TETHERING_TYPE_WIFI]); - _free_genlist_itc(&client->dev_itc[TETHERING_TYPE_BT]); - _free_genlist_itc(&client->dev_itc[TETHERING_TYPE_USB]); + for (i = 0; i < MAX_CONNECTED_STA; i++) + _free_genlist_item(&ad->main.station_items[i]); + + _free_genlist_itc(&mv->dev_itc[TETHERING_TYPE_WIFI]); + _free_genlist_itc(&mv->dev_itc[TETHERING_TYPE_BT]); + _free_genlist_itc(&mv->dev_itc[TETHERING_TYPE_USB]); - evas_object_del(client->genlist); - client->genlist = NULL; - client->navi_it = NULL; _stop_update_device_conn_time(ad); __MOBILE_AP_FUNC_EXIT__; } -static void __update_connected_client_view(mh_appdata_t *ad) +static void __update_connected_clients(mh_appdata_t *ad) { __MOBILE_AP_FUNC_ENTER__; @@ -48,16 +48,23 @@ static void __update_connected_client_view(mh_appdata_t *ad) GSList *l = NULL; tethering_client_h *handle; int count = 0; - mh_conn_client_view_t *cli_view = &(ad->connected_device); + mh_main_view_t *main_view = &(ad->main); + int i = 0; + int connected_clients = 0; - elm_genlist_clear(cli_view->genlist); + if (_get_no_of_connected_device(ad, &connected_clients, + TETHERING_TYPE_ALL) == EINA_FALSE) + ERR("Getting the number of connected device is failed"); + + for (i = 0; i < MAX_CONNECTED_STA; i++) + _free_genlist_item(&ad->main.station_items[i]); for (l = ad->client_list; l != NULL; l = g_slist_next(l)) { handle = (tethering_client_h *)l->data; tethering_client_get_tethering_type(handle, &connection_type); - item = elm_genlist_item_append(cli_view->genlist, - cli_view->dev_itc[connection_type], + item = elm_genlist_item_append(main_view->genlist, + main_view->dev_itc[connection_type], (void *)handle, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL); @@ -65,10 +72,10 @@ static void __update_connected_client_view(mh_appdata_t *ad) ERR("elm_genlist_item_append is failed\n"); continue; } - cli_view->station_items[count++] = item; + main_view->station_items[count++] = item; elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY); } - cli_view->no_of_clients = count; + main_view->no_of_clients = count; _start_update_device_conn_time(ad); __MOBILE_AP_FUNC_EXIT__; return; @@ -82,15 +89,16 @@ void _update_conn_clients(mh_appdata_t *ad) ERR("Invalid param\n"); return; } - unsigned int no_of_dev = 0; - no_of_dev = _get_list_clients_count(ad); - - if (no_of_dev == 0) { - __deconstruct_conn_clients_view(ad); - elm_naviframe_item_pop(ad->naviframe); - } else { - __update_connected_client_view(ad); - } + int connected_clients = 0; + if (_get_no_of_connected_device(ad, &connected_clients, + TETHERING_TYPE_ALL) == EINA_FALSE) + ERR("Getting the number of connected device is failed"); + + if (connected_clients == 0) + __remove_conn_clients(ad); + else + __update_connected_clients(ad); + __MOBILE_AP_FUNC_EXIT__; return; } @@ -208,26 +216,26 @@ static void __set_genlist_itc(mh_appdata_t *ad) { __MOBILE_AP_FUNC_ENTER__; - ad->connected_device.dev_itc[TETHERING_TYPE_WIFI] = elm_genlist_item_class_new(); - ad->connected_device.dev_itc[TETHERING_TYPE_WIFI]->item_style = MH_GENLIST_2LINE_TOP_TEXT_ICON_STYLE; - ad->connected_device.dev_itc[TETHERING_TYPE_WIFI]->func.text_get = __gl_get_dev_label; - ad->connected_device.dev_itc[TETHERING_TYPE_WIFI]->func.content_get = __gl_get_dev_wifi_icon; - ad->connected_device.dev_itc[TETHERING_TYPE_WIFI]->func.state_get = NULL; - ad->connected_device.dev_itc[TETHERING_TYPE_WIFI]->func.del = NULL; - - ad->connected_device.dev_itc[TETHERING_TYPE_USB] = elm_genlist_item_class_new(); - ad->connected_device.dev_itc[TETHERING_TYPE_USB]->item_style = MH_GENLIST_2LINE_TOP_TEXT_ICON_STYLE; - ad->connected_device.dev_itc[TETHERING_TYPE_USB]->func.text_get = __gl_get_dev_label; - ad->connected_device.dev_itc[TETHERING_TYPE_USB]->func.content_get = __gl_get_dev_usb_icon; - ad->connected_device.dev_itc[TETHERING_TYPE_USB]->func.state_get = NULL; - ad->connected_device.dev_itc[TETHERING_TYPE_USB]->func.del = NULL; - - ad->connected_device.dev_itc[TETHERING_TYPE_BT] = elm_genlist_item_class_new(); - ad->connected_device.dev_itc[TETHERING_TYPE_BT]->item_style = MH_GENLIST_2LINE_TOP_TEXT_ICON_STYLE; - ad->connected_device.dev_itc[TETHERING_TYPE_BT]->func.text_get = __gl_get_dev_label; - ad->connected_device.dev_itc[TETHERING_TYPE_BT]->func.content_get = __gl_get_dev_bt_icon; - ad->connected_device.dev_itc[TETHERING_TYPE_BT]->func.state_get = NULL; - ad->connected_device.dev_itc[TETHERING_TYPE_BT]->func.del = NULL; + ad->main.dev_itc[TETHERING_TYPE_WIFI] = elm_genlist_item_class_new(); + ad->main.dev_itc[TETHERING_TYPE_WIFI]->item_style = MH_GENLIST_2LINE_TOP_TEXT_ICON_STYLE; + ad->main.dev_itc[TETHERING_TYPE_WIFI]->func.text_get = __gl_get_dev_label; + ad->main.dev_itc[TETHERING_TYPE_WIFI]->func.content_get = __gl_get_dev_wifi_icon; + ad->main.dev_itc[TETHERING_TYPE_WIFI]->func.state_get = NULL; + ad->main.dev_itc[TETHERING_TYPE_WIFI]->func.del = NULL; + + ad->main.dev_itc[TETHERING_TYPE_USB] = elm_genlist_item_class_new(); + ad->main.dev_itc[TETHERING_TYPE_USB]->item_style = MH_GENLIST_2LINE_TOP_TEXT_ICON_STYLE; + ad->main.dev_itc[TETHERING_TYPE_USB]->func.text_get = __gl_get_dev_label; + ad->main.dev_itc[TETHERING_TYPE_USB]->func.content_get = __gl_get_dev_usb_icon; + ad->main.dev_itc[TETHERING_TYPE_USB]->func.state_get = NULL; + ad->main.dev_itc[TETHERING_TYPE_USB]->func.del = NULL; + + ad->main.dev_itc[TETHERING_TYPE_BT] = elm_genlist_item_class_new(); + ad->main.dev_itc[TETHERING_TYPE_BT]->item_style = MH_GENLIST_2LINE_TOP_TEXT_ICON_STYLE; + ad->main.dev_itc[TETHERING_TYPE_BT]->func.text_get = __gl_get_dev_label; + ad->main.dev_itc[TETHERING_TYPE_BT]->func.content_get = __gl_get_dev_bt_icon; + ad->main.dev_itc[TETHERING_TYPE_BT]->func.state_get = NULL; + ad->main.dev_itc[TETHERING_TYPE_BT]->func.del = NULL; __MOBILE_AP_FUNC_EXIT__; } @@ -248,7 +256,7 @@ static void __scroll_stop_cb(void *data, Evas_Object *obj, void *event_info) __MOBILE_AP_FUNC_EXIT__; } -static void __create_genlist(mh_appdata_t *ad) +static void __append_clients_genlist(mh_appdata_t *ad) { __MOBILE_AP_FUNC_ENTER__; @@ -257,23 +265,13 @@ static void __create_genlist(mh_appdata_t *ad) return; } - Evas_Object *genlist; Elm_Object_Item *item = NULL; tethering_type_e connection_type = 0; GSList *l = NULL; tethering_client_h *handle; int count = 0; - mh_conn_client_view_t *client = &ad->connected_device; - - genlist = elm_genlist_add(ad->naviframe); - if (genlist == NULL) { - ERR("genlist is NULL\n"); - return; - } - - elm_genlist_mode_set(genlist, ELM_LIST_COMPRESS); - client->genlist = genlist; + mh_main_view_t *mv = &ad->main; __set_genlist_itc(ad); @@ -281,8 +279,8 @@ static void __create_genlist(mh_appdata_t *ad) handle = (tethering_client_h *)l->data; tethering_client_get_tethering_type(handle, &connection_type); - item = elm_genlist_item_append(client->genlist, - client->dev_itc[connection_type], + item = elm_genlist_item_append(mv->genlist, + mv->dev_itc[connection_type], (void *)handle, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL); @@ -290,43 +288,25 @@ static void __create_genlist(mh_appdata_t *ad) ERR("elm_genlist_item_append is failed\n"); continue; } - client->station_items[count++] = item; + mv->station_items[count++] = item; elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY); } - evas_object_smart_callback_add(genlist, "scroll,anim,start", + evas_object_smart_callback_add(mv->genlist, "scroll,anim,start", __scroll_start_cb, ad); - evas_object_smart_callback_add(genlist, "scroll,drag,start", + evas_object_smart_callback_add(mv->genlist, "scroll,drag,start", __scroll_start_cb, ad); - evas_object_smart_callback_add(genlist, "scroll,anim,stop", + evas_object_smart_callback_add(mv->genlist, "scroll,anim,stop", __scroll_stop_cb, ad); - evas_object_smart_callback_add(genlist, "scroll,drag,stop", + evas_object_smart_callback_add(mv->genlist, "scroll,drag,stop", __scroll_stop_cb, ad); - client->no_of_clients = count; + mv->no_of_clients = count; _start_update_device_conn_time(ad); __MOBILE_AP_FUNC_EXIT__; } -static Eina_Bool __back_btn_cb(void *data, Elm_Object_Item *navi_item) -{ - DBG("+\n"); - - if (data == NULL) { - ERR("The param is NULL\n"); - return EINA_FALSE; - } - - mh_appdata_t *ad = (mh_appdata_t *)data; - - __deconstruct_conn_clients_view(ad); - _ctxpopup_more_button_callback_add(ad); - - DBG("-\n"); - return EINA_TRUE; -} - -void _create_connected_client_view(mh_appdata_t *ad) +void _add_connected_clients(mh_appdata_t *ad) { DBG("+\n"); if (ad == NULL) { @@ -334,22 +314,8 @@ void _create_connected_client_view(mh_appdata_t *ad) return; } - mh_conn_client_view_t *client = &ad->connected_device; - - if (client->navi_it != NULL) { - ERR("connected device view already exists\n"); - return; - } - - __create_genlist(ad); - if (client->genlist == NULL) { - ERR("__create_genlist failed NULL\n"); - return; - } - client->navi_it = elm_naviframe_item_push(ad->naviframe, STR_CONN_DEVICES, NULL, NULL, client->genlist, NULL); - elm_object_item_domain_text_translatable_set(client->navi_it, PKGNAME, EINA_TRUE); + __append_clients_genlist(ad); - elm_naviframe_item_pop_cb_set(client->navi_it, __back_btn_cb, (void *)ad); DBG("-\n"); } diff --git a/src/mh_main_ug.c b/src/mh_main_ug.c index d01eab5..6552181 100755 --- a/src/mh_main_ug.c +++ b/src/mh_main_ug.c @@ -254,7 +254,7 @@ static void on_start(ui_gadget_h ug, app_control_h app_control, void *priv) #ifdef TETHERING_DATA_USAGE_SUPPORT _start_update_data_packet_usage(ad); #endif - if (ad->connected_device.navi_it) + if (ad->navi_item) _start_update_device_conn_time(ad); } @@ -308,7 +308,7 @@ static void on_resume(ui_gadget_h ug, app_control_h app_control, void *priv) #ifdef TETHERING_DATA_USAGE_SUPPORT _start_update_data_packet_usage(ad); #endif - if (ad->connected_device.navi_it) + if (ad->navi_item) _start_update_device_conn_time(ad); } DBG("-\n"); diff --git a/src/mh_view_main.c b/src/mh_view_main.c index ab2a861..c1403dc 100755 --- a/src/mh_view_main.c +++ b/src/mh_view_main.c @@ -27,8 +27,10 @@ #include "mh_string.h" static void __ctx_move_more_ctxpopup(Evas_Object *ctx, mh_appdata_t *ad); -static void __ctx_delete_more_ctxpopup_cb(void *data, Evas *e, Evas_Object *obj, void *event_info); -static void __create_ctxpopup_more_button(void *data, Evas_Object *obj, void *event_info); +static void __ctx_delete_more_ctxpopup_cb(void *data, Evas *e, Evas_Object *obj, + void *event_info); +static void __create_ctxpopup_more_button(void *data, Evas_Object *obj, + void *event_info); static Eina_Bool rotate_flag = EINA_FALSE; @@ -36,20 +38,16 @@ void _genlist_update_device_item(mh_appdata_t *ad); mh_appdata_t *g_ad = NULL; #define UPDATE_INTERVAL 1 -void _select_connected_dev(void *data, Evas_Object *obj, void *event_info) +void _list_connected_dev(mh_appdata_t *ap) { __MOBILE_AP_FUNC_ENTER__; - if (data == NULL) { + if (ap == NULL) { ERR("data is NULL\n"); return; } - mh_appdata_t *ad = (mh_appdata_t *)data; - - elm_genlist_item_selected_set((Elm_Object_Item *)event_info, EINA_FALSE); - _ctxpopup_more_button_callback_del(ad); - _create_connected_client_view(ad); + _add_connected_clients(ap); __MOBILE_AP_FUNC_EXIT__; } @@ -139,9 +137,9 @@ Eina_Bool ap_update_device_conn_time(void * data) return ECORE_CALLBACK_CANCEL; } - while (count < ad->connected_device.no_of_clients) { - if (ad->connected_device.station_items[count]) - elm_genlist_item_fields_update(ad->connected_device.station_items[count++], + while (count < ad->main.no_of_clients) { + if (ad->main.station_items[count]) + elm_genlist_item_fields_update(ad->main.station_items[count++], "elm.text.sub", ELM_GENLIST_ITEM_FIELD_TEXT); } return ECORE_CALLBACK_RENEW; @@ -368,25 +366,25 @@ void _genlist_update_device_item(mh_appdata_t *ad) no_of_dev = _get_list_clients_count(ad); Elm_Object_Item *item = NULL; - if (ad->main.device_item) { - elm_object_item_del(ad->main.device_item); - ad->main.device_item = NULL; - if (no_of_dev == 0) { - item = elm_genlist_item_append(ad->main.genlist, - ad->main.device0_itc, ad, NULL, - ELM_GENLIST_ITEM_NONE, NULL, NULL); - elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY); + if (no_of_dev == 0) { + if (ad->main.device_item) { + elm_object_item_del(ad->main.device_item); + ad->main.device_item = NULL; + _update_conn_clients(ad); + } + } else { + if (ad->main.device_item) { + _update_conn_clients(ad); } else { item = elm_genlist_item_append(ad->main.genlist, ad->main.device_itc, ad, NULL, - ELM_GENLIST_ITEM_NONE, _select_connected_dev, (void *)ad); - elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_DEFAULT); + ELM_GENLIST_ITEM_NONE, NULL, NULL); + elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY); + ad->main.device_item = item; + _list_connected_dev(ad); + } } - ad->main.device_item = item; - } - if (ad->connected_device.navi_it) - _update_conn_clients(ad); __MOBILE_AP_FUNC_EXIT__; return; @@ -456,16 +454,13 @@ void _update_main_view(mh_appdata_t *ad, tethering_type_e type) no_of_dev = _get_list_clients_count(ad); if (ad->main.device_item == NULL) { - if (no_of_dev == 0) { - item = elm_genlist_item_append(ad->main.genlist, - ad->main.device0_itc, ad, NULL, - ELM_GENLIST_ITEM_NONE, NULL, NULL); - elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY); - } else { + if (no_of_dev != 0) { item = elm_genlist_item_append(ad->main.genlist, ad->main.device_itc, ad, NULL, - ELM_GENLIST_ITEM_NONE, _select_connected_dev, (void *)ad); + ELM_GENLIST_ITEM_NONE, NULL, NULL); elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_DEFAULT); + _list_connected_dev(ad); + _update_conn_clients(ad); } ad->main.device_item = item; } @@ -985,45 +980,18 @@ static char *__get_help_label(void *data, Evas_Object *obj, const char *part) return NULL; } -static char *__get_no_connected_device_label(void *data, Evas_Object *obj, - const char *part) -{ - mh_appdata_t *ad = (mh_appdata_t*)data; - char buf[MH_LABEL_LENGTH_MAX] = {0, }; - int no_of_dev; - - if (data == NULL) { - ERR("The param is NULL\n"); - return NULL; - } - - if (!strcmp("elm.text.multiline", part)) { - no_of_dev = _get_list_clients_count(ad); - snprintf(buf, MH_LABEL_LENGTH_MAX, "%s
%d", STR_CONNECTED_DEV, no_of_dev); - return strdup(buf); - } - - return NULL; -} - -static char *__get_connected_device_label(void *data, Evas_Object *obj, +static char *__get_device_label(void *data, Evas_Object *obj, const char *part) { - mh_appdata_t *ad = (mh_appdata_t*)data; char buf[MH_LABEL_LENGTH_MAX] = {0, }; - int no_of_dev; if (data == NULL) { ERR("The param is NULL\n"); return NULL; } - if (!strcmp("elm.text.sub", part)) { - g_strlcpy(buf, STR_CONNECTED_DEV, sizeof(buf)); - return strdup(buf); - } else if (!strcmp("elm.text", part)) { - no_of_dev = _get_list_clients_count(ad); - snprintf(buf, MH_LABEL_LENGTH_MAX, "%d", no_of_dev); + if (!strcmp("elm.text", part)) { + snprintf(buf, MH_LABEL_LENGTH_MAX, "%s", STR_CONNECTED_DEV); return strdup(buf); } @@ -1144,18 +1112,6 @@ static void __set_genlist_itc(mh_appdata_t *ad) /* End of Off view's item class for genlist */ - /* On view's item class for genlist */ - ad->main.device0_itc = elm_genlist_item_class_new(); - if (ad->main.device0_itc == NULL) { - ERR("elm_genlist_item_class_new failed\n"); - return; - } - - ad->main.device0_itc->item_style = MH_GENLIST_MULTILINE_TEXT_STYLE; - ad->main.device0_itc->func.text_get = __get_no_connected_device_label; - ad->main.device0_itc->func.content_get = NULL; - ad->main.device0_itc->func.state_get = NULL; - ad->main.device0_itc->func.del = NULL; ad->main.device_itc = elm_genlist_item_class_new(); if (ad->main.device_itc == NULL) { @@ -1163,8 +1119,8 @@ static void __set_genlist_itc(mh_appdata_t *ad) return; } - ad->main.device_itc->item_style = MH_GENLIST_2LINE_BOTTOM_TEXT_STYLE; - ad->main.device_itc->func.text_get = __get_connected_device_label; + ad->main.device_itc->item_style = MH_GENLIST_GROUP_INDEX_STYLE; + ad->main.device_itc->func.text_get = __get_device_label; ad->main.device_itc->func.content_get = NULL; ad->main.device_itc->func.state_get = NULL; ad->main.device_itc->func.del = NULL; @@ -1305,16 +1261,13 @@ static void __create_inner_contents(mh_appdata_t *ad) _connected_clients_cb, (void *)ad); no_of_dev = _get_list_clients_count(ad); - if (no_of_dev == 0) { + if (no_of_dev != 0) { item = elm_genlist_item_append(ad->main.genlist, - ad->main.device0_itc, ad, NULL, + ad->main.device_itc, ad, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL); elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY); - } else { - item = elm_genlist_item_append(ad->main.genlist, - ad->main.device_itc, ad, NULL, - ELM_GENLIST_ITEM_NONE, _select_connected_dev, (void *)ad); - elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_DEFAULT); + _list_connected_dev(ad); + _update_conn_clients(ad); } ad->main.device_item = item; } -- 2.34.1