X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=src%2Fmh_view_main.c;h=2bbff107e3634b7ef79d2fec468f4d522067b35c;hb=refs%2Ftags%2Faccepted%2Ftizen%2F6.0%2Funified%2Fhotfix%2F20201103.052828;hp=84b9c7d4fc6f77d99b8bb437ab16383959f9455a;hpb=0d5c3ebf5ec7e2ba60fdff2afc6a64591a0c3e75;p=apps%2Fnative%2Fug-mobile-ap.git diff --git a/src/mh_view_main.c b/src/mh_view_main.c index 84b9c7d..2bbff10 100755 --- a/src/mh_view_main.c +++ b/src/mh_view_main.c @@ -3,7 +3,7 @@ * * Copyright 2012 Samsung Electronics Co., Ltd -* Licensed under the Flora License, Version 1.0 (the "License"); +* Licensed under the Flora License, Version 1.1 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at @@ -20,50 +20,56 @@ #include #include #include +#include #include "mh_view_main.h" +#include "mh_common_utility.h" #include "mh_popup.h" #include "mh_string.h" -#if 0 /* device rename not supported */ 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 __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; -#endif + void _genlist_update_device_item(mh_appdata_t *ad); mh_appdata_t *g_ad = NULL; #define UPDATE_INTERVAL 1 -#if 0 /* device rename not supported */ -void _rotate_adjust_rename_popup(void) +#ifdef TIZEN_FEATURE_EMULATOR +static tethering_type_e updated_type = TETHERING_TYPE_ALL; +static tethering_type_e selected_type = TETHERING_TYPE_ALL; +static Eina_Bool selected_state = EINA_FALSE; + +tethering_type_e _get_updated_type(void) { - __MOBILE_AP_FUNC_ENTER__; + return updated_type; +} - int change_ang = 0; +tethering_type_e _get_selected_type(void) +{ + return selected_type; +} - change_ang = elm_win_rotation_get(g_ad->win); - if (change_ang == 0 || change_ang == 180) { - _hadnle_rename_popup_rotation(EINA_TRUE); - } else { - _hadnle_rename_popup_rotation(EINA_FALSE); - } - __MOBILE_AP_FUNC_EXIT__; +Eina_Bool _get_selected_state(void) +{ + return selected_state; } #endif -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); - _create_connected_client_view(ad); + _add_connected_clients(ap); __MOBILE_AP_FUNC_EXIT__; } @@ -105,9 +111,6 @@ Eina_Bool ap_update_data_packet_usage(mh_appdata_t *ad) ERR("Invalid param\n"); return EINA_FALSE; } - if (ad->main.usage_item == NULL) { - return EINA_TRUE; - } if (ad->main.usage_item) elm_genlist_item_update(ad->main.usage_item); @@ -129,9 +132,8 @@ Eina_Bool ap_get_data_statistics(void *data) } /* If previous data is not updated, new data is not required */ - if (ad->data_statistics.is_updated == false) { + if (ad->data_statistics.is_updated == false) return ECORE_CALLBACK_RENEW; - } /* Because previous data is updated, new data is required. It will be returned asynchronously. */ @@ -149,17 +151,46 @@ Eina_Bool ap_update_device_conn_time(void * data) return ECORE_CALLBACK_CANCEL; } mh_appdata_t *ad = (mh_appdata_t *)data; - int count = 0; + +#ifdef TIZEN_FEATURE_EMULATOR + if (ad->main.hotspot_mode == VCONFKEY_MOBILE_HOTSPOT_MODE_NONE) { + _stop_update_device_conn_time(ad); + return ECORE_CALLBACK_CANCEL; + } + + if (ad->main.hotspot_mode & VCONFKEY_MOBILE_HOTSPOT_MODE_WIFI) { + updated_type = TETHERING_TYPE_WIFI; + elm_genlist_item_fields_update(ad->main.emul_station_items[TETHERING_TYPE_WIFI], + "elm.text.sub", ELM_GENLIST_ITEM_FIELD_TEXT); + } + + if (ad->main.hotspot_mode & VCONFKEY_MOBILE_HOTSPOT_MODE_BT) { + updated_type = TETHERING_TYPE_BT; + elm_genlist_item_fields_update(ad->main.emul_station_items[TETHERING_TYPE_BT], + "elm.text.sub", ELM_GENLIST_ITEM_FIELD_TEXT); + } + + if (ad->main.hotspot_mode & VCONFKEY_MOBILE_HOTSPOT_MODE_USB) { + updated_type = TETHERING_TYPE_USB; + elm_genlist_item_fields_update(ad->main.emul_station_items[TETHERING_TYPE_USB], + "elm.text.sub", ELM_GENLIST_ITEM_FIELD_TEXT); + } + + updated_type = TETHERING_TYPE_ALL; + + return ECORE_CALLBACK_RENEW; +#endif + if (ad->main.hotspot_mode == VCONFKEY_MOBILE_HOTSPOT_MODE_NONE) { _stop_update_device_conn_time(ad); __MOBILE_AP_FUNC_EXIT__; 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; @@ -175,9 +206,9 @@ void _start_update_device_conn_time(mh_appdata_t *ad) return; } - if (ad->update_conn_time_handle) { + if (ad->update_conn_time_handle) _stop_update_device_conn_time(ad); - } + ad->update_conn_time_handle = ecore_timer_add(UPDATE_INTERVAL, ap_update_device_conn_time, (void *)ad); @@ -210,9 +241,8 @@ void _start_update_data_packet_usage(mh_appdata_t *ad) return; } - if (ad->update_statistics_handle) { + if (ad->update_statistics_handle) _stop_update_data_packet_usage(ad); - } ad->data_statistics.is_updated = false; tethering_get_data_usage(ad->handle, _data_usage_cb, (void *)ad); @@ -288,16 +318,16 @@ static void __read_setting(mh_appdata_t *ad) free(passphrase); ret = tethering_wifi_get_ssid_visibility(ad->handle, &visibility); - if (ret != TETHERING_ERROR_NONE) { + if (ret != TETHERING_ERROR_NONE) ERR("tethering_wifi_get_ssid_visibility is failed\n"); - } + ad->setup.visibility = visibility; ad->setup.visibility_new = visibility; ret = tethering_wifi_get_security_type(ad->handle, &type); - if (ret != TETHERING_ERROR_NONE) { + if (ret != TETHERING_ERROR_NONE) ERR("tethering_wifi_get_security_type is failed\n"); - } + ad->setup.security_type = type; ad->setup.security_type_new = type; @@ -308,9 +338,8 @@ void _update_wifi_item(mh_appdata_t *ad, int wifi_state) { __MOBILE_AP_FUNC_ENTER__; - if (ad->main.wifi_state == wifi_state) { + if (ad->main.wifi_state == wifi_state) return; - } if (ad->main.wifi_state == MH_STATE_PROCESS) { ad->main.wifi_state = MH_STATE_NONE; @@ -335,9 +364,8 @@ void _update_bt_item(mh_appdata_t *ad, int bt_state) { __MOBILE_AP_FUNC_ENTER__; - if (ad->main.bt_state == bt_state) { + if (ad->main.bt_state == bt_state) return; - } if (ad->main.bt_state == MH_STATE_PROCESS) { ad->main.bt_state = MH_STATE_NONE; @@ -359,9 +387,8 @@ void _update_usb_item(mh_appdata_t *ad, int usb_state) { __MOBILE_AP_FUNC_ENTER__; - if (ad->main.usb_state == usb_state) { + if (ad->main.usb_state == usb_state) return; - } if (ad->main.usb_state == MH_STATE_PROCESS) { ad->main.usb_state = MH_STATE_NONE; @@ -390,26 +417,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; @@ -455,7 +481,7 @@ void _update_main_view(mh_appdata_t *ad, tethering_type_e type) elm_object_item_disabled_set(ad->main.setup_item, EINA_FALSE); if (ad->main.bt_item) elm_object_item_disabled_set(ad->main.bt_item, EINA_FALSE); - if (_get_vconf_usb_state() != VCONFKEY_SYSMAN_USB_AVAILABLE) { + if (_get_vconf_usb_state() == VCONFKEY_SYSMAN_USB_DISCONNECTED) { if (ad->main.usb_item) elm_object_item_disabled_set(ad->main.usb_item, EINA_TRUE); } else { @@ -479,16 +505,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; } @@ -536,13 +559,11 @@ void _update_main_view(mh_appdata_t *ad, tethering_type_e type) _update_wifi_item(ad, MH_STATE_NONE); } else { obj = elm_object_item_part_content_get(ad->main.wifi_item, "elm.swallow.end"); - if (obj != NULL) { + if (obj != NULL) elm_check_state_set(obj, wifi_state); - } - if (ad->main.wifi_item) { + if (ad->main.wifi_item) elm_genlist_item_update(ad->main.wifi_item); - } } break; @@ -552,13 +573,11 @@ void _update_main_view(mh_appdata_t *ad, tethering_type_e type) _update_bt_item(ad, MH_STATE_NONE); } else { obj = elm_object_item_part_content_get(ad->main.bt_item, "elm.swallow.end"); - if (obj != NULL) { + if (obj != NULL) elm_check_state_set(obj, bt_state); - } - if (ad->main.bt_item) { + if (ad->main.bt_item) elm_genlist_item_update(ad->main.bt_item); - } } break; @@ -586,11 +605,141 @@ void _update_main_view(mh_appdata_t *ad, tethering_type_e type) return; } +#ifdef TIZEN_FEATURE_EMULATOR +void _update_emul_main_view(mh_appdata_t *ad, tethering_type_e type, Eina_Bool state) +{ + __MOBILE_AP_FUNC_ENTER__; + + if (ad == NULL) { + ERR("Invalid param\n"); + return; + } + + Elm_Object_Item *item = NULL; + + switch (type) { + case TETHERING_TYPE_WIFI: + /* Update Wi-Fi tethering on / off button */ + _update_wifi_item(ad, MH_STATE_NONE); + if (state) { + ad->main.hotspot_mode |= VCONFKEY_MOBILE_HOTSPOT_MODE_WIFI; + if (ad->main.help_item) { + elm_genlist_item_update(ad->main.help_item); + } else { + item = elm_genlist_item_insert_after(ad->main.genlist, + ad->main.help_itc, ad, NULL, + ad->main.wifi_item, + ELM_GENLIST_ITEM_NONE, NULL, + NULL); + if (item == NULL) { + ERR("elm_genlist_item_insert_after NULL\n"); + } else { + elm_genlist_item_select_mode_set(item, + ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY); + ad->main.help_item = item; + } + } + } else { + ad->main.hotspot_mode ^= VCONFKEY_MOBILE_HOTSPOT_MODE_WIFI; + if (ad->main.help_item) { + elm_object_item_del(ad->main.help_item); + ad->main.help_item = NULL; + } + } + + if (ad->main.wifi_item) + elm_genlist_item_update(ad->main.wifi_item); + break; + + case TETHERING_TYPE_BT: + /* Update BT tethering on / off button */ + _update_bt_item(ad, MH_STATE_NONE); + if (state) + ad->main.hotspot_mode |= VCONFKEY_MOBILE_HOTSPOT_MODE_BT; + else + ad->main.hotspot_mode ^= VCONFKEY_MOBILE_HOTSPOT_MODE_BT; + + if (ad->main.bt_item) + elm_genlist_item_update(ad->main.bt_item); + break; + + case TETHERING_TYPE_USB: + /* Update USB tethering on / off button */ + _update_usb_item(ad, MH_STATE_NONE); + if (state) + ad->main.hotspot_mode |= VCONFKEY_MOBILE_HOTSPOT_MODE_USB; + else + ad->main.hotspot_mode ^= VCONFKEY_MOBILE_HOTSPOT_MODE_USB; + + if (ad->main.usb_item) + elm_genlist_item_update(ad->main.usb_item); + break; + + default: + DBG("Unknown tethering type : %d\n", type); + break; + } + + if (ad->main.hotspot_mode && ad->main.device_item == NULL) { + item = elm_genlist_item_append(ad->main.genlist, + ad->main.device_itc, ad, NULL, + ELM_GENLIST_ITEM_NONE, NULL, NULL); + elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_DEFAULT); + ad->main.device_item = item; + } else if (ad->main.hotspot_mode == 0 && ad->main.device_item) { + elm_object_item_del(ad->main.device_item); + ad->main.device_item = NULL; + } + + __update_emul_clients_genlist(ad); + + __MOBILE_AP_FUNC_EXIT__; + return; +} +#endif + +static int __is_allowed(tethering_type_e type) +{ + int state = 0; + device_policy_manager_h dpm = NULL; + + dpm = dpm_manager_create(); + if (dpm == NULL) { + ERR("Failed to create device policy manager!!"); + return 0; + } + + switch (type) { + case TETHERING_TYPE_WIFI: + dpm_restriction_get_wifi_hotspot_state(dpm, &state); + break; + case TETHERING_TYPE_USB: + dpm_restriction_get_usb_tethering_state(dpm, &state); + break; + case TETHERING_TYPE_BT: + dpm_restriction_get_bluetooth_tethering_state(dpm, &state); + break; + default: + break; + } + + dpm_manager_destroy(dpm); + + return state; +} + static void __wifi_onoff_changed_cb(void *data, Evas_Object *obj, void *event_info) { __MOBILE_AP_FUNC_ENTER__; + if (!__is_allowed(TETHERING_TYPE_WIFI)) { + ERR("Wi-Fi tethering is restricted!!"); + elm_check_state_set(obj, EINA_FALSE); + _create_security_restriction_noti(TETHERING_TYPE_WIFI); + return; + } + if (data == NULL) { ERR("The param is NULL\n"); return; @@ -601,12 +750,24 @@ static void __wifi_onoff_changed_cb(void *data, Evas_Object *obj, _update_wifi_item(ad, MH_STATE_PROCESS); ad->type = TETHERING_TYPE_WIFI; ad->is_wifi_teth_enabling = true; + +#ifdef TIZEN_FEATURE_EMULATOR + selected_type = TETHERING_TYPE_WIFI; + selected_state = (ad->main.hotspot_mode & VCONFKEY_MOBILE_HOTSPOT_MODE_WIFI) ? EINA_FALSE : EINA_TRUE; + DBG("type [%d] state[%d]", selected_type, selected_state); +#endif + if (_handle_wifi_onoff_change(ad) != 0) { ERR("_handle_wifi_onoff_change is failed\n"); _update_wifi_item(ad, MH_STATE_NONE); ad->is_wifi_teth_enabling = false; } +#ifdef TIZEN_FEATURE_EMULATOR + if (_get_checkbox_status(selected_type) || !selected_state) + _update_emul_main_view(ad, selected_type, selected_state); +#endif + __MOBILE_AP_FUNC_EXIT__; return; @@ -616,14 +777,18 @@ static void __select_wifi_item(void *data, Evas_Object *obj, void *event_info) { __MOBILE_AP_FUNC_ENTER__; + Evas_Object *content; + Elm_Object_Item *item = (Elm_Object_Item *)event_info; + if (data == NULL) { ERR("The param is NULL\n"); return; } - mh_appdata_t *ad = (mh_appdata_t *)data; - elm_genlist_item_selected_set((Elm_Object_Item *)event_info, EINA_FALSE); - mh_draw_wifi_setup_view(ad); + elm_genlist_item_selected_set(item, EINA_FALSE); + + content = elm_object_item_part_content_get(item, "elm.icon"); + __wifi_onoff_changed_cb(data, content, NULL); __MOBILE_AP_FUNC_EXIT__; @@ -634,6 +799,13 @@ static void __bt_onoff_changed_cb(void *data, Evas_Object *obj, void *event_info { __MOBILE_AP_FUNC_ENTER__; + if (!__is_allowed(TETHERING_TYPE_BT)) { + ERR("BT tethering is restricted!!"); + elm_check_state_set(obj, EINA_FALSE); + _create_security_restriction_noti(TETHERING_TYPE_BT); + return; + } + if (data == NULL) { ERR("The param is NULL\n"); return; @@ -645,12 +817,23 @@ static void __bt_onoff_changed_cb(void *data, Evas_Object *obj, void *event_info ad->type = TETHERING_TYPE_BT; ad->is_bt_teth_enabling = true; +#ifdef TIZEN_FEATURE_EMULATOR + selected_type = TETHERING_TYPE_BT; + selected_state = (ad->main.hotspot_mode & VCONFKEY_MOBILE_HOTSPOT_MODE_BT) ? EINA_FALSE : EINA_TRUE; + DBG("type [%d] state[%d]", selected_type, selected_state); +#endif + if (_handle_bt_onoff_change(ad) != 0) { ERR("_handle_bt_onoff_change is failed\n"); _update_bt_item(ad, MH_STATE_NONE); ad->is_bt_teth_enabling = false; } +#ifdef TIZEN_FEATURE_EMULATOR + if (_get_checkbox_status(selected_type) || !selected_state) + _update_emul_main_view(ad, selected_type, selected_state); +#endif + __MOBILE_AP_FUNC_EXIT__; return; @@ -682,6 +865,13 @@ static void __usb_onoff_changed_cb(void *data, Evas_Object *obj, void *event_inf { __MOBILE_AP_FUNC_ENTER__; + if (!__is_allowed(TETHERING_TYPE_USB)) { + ERR("USB tethering is restricted!!"); + elm_check_state_set(obj, EINA_FALSE); + _create_security_restriction_noti(TETHERING_TYPE_USB); + return; + } + if (data == NULL) { ERR("The param is NULL\n"); return; @@ -691,12 +881,23 @@ static void __usb_onoff_changed_cb(void *data, Evas_Object *obj, void *event_inf _update_usb_item(ad, MH_STATE_PROCESS); ad->type = TETHERING_TYPE_USB; ad->is_usb_teth_enabling = true; + +#ifdef TIZEN_FEATURE_EMULATOR + selected_type = TETHERING_TYPE_USB; + selected_state = (ad->main.hotspot_mode & VCONFKEY_MOBILE_HOTSPOT_MODE_USB) ? EINA_FALSE : EINA_TRUE; +#endif + if (_handle_usb_onoff_change(ad) != 0) { ERR("_handle_usb_onoff_change is failed\n"); _update_usb_item(ad, MH_STATE_NONE); ad->is_usb_teth_enabling = false; } +#ifdef TIZEN_FEATURE_EMULATOR + if (_get_checkbox_status(selected_type) || !selected_state) + _update_emul_main_view(ad, selected_type, selected_state); +#endif + __MOBILE_AP_FUNC_EXIT__; return; @@ -746,9 +947,8 @@ static void __back_btn_cb(void *data, Elm_Object_Item *navi_item) static char *__get_wifi_label(void *data, Evas_Object *obj, const char *part) { - if (!strcmp("elm.text", part)) { - return strdup(STR_WIFI_TETH); - } + if (!strcmp("elm.text", part)) + return strdup(STR_MOBILE_HOTSPOT); return NULL; } @@ -758,8 +958,6 @@ static Evas_Object *__get_wifi_icon(void *data, Evas_Object *obj, { mh_appdata_t *ad = (mh_appdata_t*)data; Evas_Object *btn = NULL; - Evas_Object *progressbar = NULL; - Evas_Object *icon_layout = NULL; if (data == NULL) { ERR("The param is NULL\n"); @@ -767,35 +965,30 @@ static Evas_Object *__get_wifi_icon(void *data, Evas_Object *obj, } if (!strcmp("elm.swallow.end", part)) { - icon_layout = elm_layout_add(obj); - elm_layout_theme_set(icon_layout, "layout", "list/C/type.3", "default"); - if (ad->main.wifi_state == MH_STATE_PROCESS) { - progressbar = _create_progressbar(obj, "process_medium"); - elm_layout_content_set(icon_layout, "elm.swallow.content", progressbar); + btn = _create_progressbar(obj, "process_medium"); } else { btn = elm_check_add(obj); elm_object_style_set(btn, "on&off"); - evas_object_show(btn); - evas_object_pass_events_set(btn, EINA_TRUE); evas_object_propagate_events_set(btn, EINA_FALSE); + evas_object_size_hint_align_set(btn, EVAS_HINT_FILL, EVAS_HINT_FILL); + evas_object_size_hint_weight_set(btn, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); elm_check_state_set(btn, ad->main.hotspot_mode & VCONFKEY_MOBILE_HOTSPOT_MODE_WIFI ? EINA_TRUE : EINA_FALSE); evas_object_smart_callback_add(btn, "changed", __wifi_onoff_changed_cb, ad); - elm_layout_content_set(icon_layout, "elm.swallow.content", btn); + evas_object_show(btn); } } - return icon_layout; + return btn; } static char *__get_bt_label(void *data, Evas_Object *obj, const char *part) { - if (!strcmp("elm.text", part)) { + if (!strcmp("elm.text", part)) return strdup(STR_BLUETOOTH_TETH); - } return NULL; } @@ -804,8 +997,6 @@ static Evas_Object *__get_bt_icon(void *data, Evas_Object *obj, const char *part { mh_appdata_t *ad = (mh_appdata_t *)data; Evas_Object *btn = NULL; - Evas_Object *progressbar = NULL; - Evas_Object *icon_layout = NULL; if (data == NULL) { ERR("The param is NULL\n"); @@ -813,12 +1004,8 @@ static Evas_Object *__get_bt_icon(void *data, Evas_Object *obj, const char *part } if (!strcmp("elm.swallow.end", part)) { - icon_layout = elm_layout_add(obj); - elm_layout_theme_set(icon_layout, "layout", "list/C/type.3", "default"); - if (ad->main.bt_state == MH_STATE_PROCESS) { - progressbar = _create_progressbar(obj, "process_medium"); - elm_layout_content_set(icon_layout, "elm.swallow.content", progressbar); + btn = _create_progressbar(obj, "process_medium"); } else { btn = elm_check_add(obj); if (btn == NULL) { @@ -832,18 +1019,16 @@ static Evas_Object *__get_bt_icon(void *data, Evas_Object *obj, const char *part VCONFKEY_MOBILE_HOTSPOT_MODE_BT ? EINA_TRUE : EINA_FALSE); evas_object_show(btn); evas_object_smart_callback_add(btn, "changed", __bt_onoff_changed_cb, ad); - elm_layout_content_set(icon_layout, "elm.swallow.content", btn); } } - return icon_layout; + return btn; } static char *__get_usb_label(void *data, Evas_Object *obj, const char *part) { - if (!strcmp("elm.text", part)) { + if (!strcmp("elm.text", part)) return strdup(STR_USB_TETH); - } return NULL; } @@ -853,8 +1038,6 @@ static Evas_Object *__get_usb_icon(void *data, Evas_Object *obj, { mh_appdata_t *ad = (mh_appdata_t *)data; Evas_Object *btn = NULL; - Evas_Object *progressbar = NULL; - Evas_Object *icon_layout = NULL; if (data == NULL) { ERR("The param is NULL\n"); @@ -862,12 +1045,8 @@ static Evas_Object *__get_usb_icon(void *data, Evas_Object *obj, } if (!strcmp("elm.swallow.end", part)) { - icon_layout = elm_layout_add(obj); - elm_layout_theme_set(icon_layout, "layout", "list/C/type.3", "default"); - if (ad->main.usb_state == MH_STATE_PROCESS) { - progressbar = _create_progressbar(obj, "process_medium"); - elm_layout_content_set(icon_layout, "elm.swallow.content", progressbar); + btn = _create_progressbar(obj, "process_medium"); } else { btn = elm_check_add(obj); if (btn == NULL) { @@ -881,20 +1060,20 @@ static Evas_Object *__get_usb_icon(void *data, Evas_Object *obj, VCONFKEY_MOBILE_HOTSPOT_MODE_USB ? EINA_TRUE : EINA_FALSE); evas_object_show(btn); evas_object_smart_callback_add(btn, "changed", __usb_onoff_changed_cb, ad); - elm_layout_content_set(icon_layout, "elm.swallow.content", btn); } } - return icon_layout; + return btn; } static char *__get_help_label(void *data, Evas_Object *obj, const char *part) { mh_appdata_t *ad = (mh_appdata_t *)data; char buf[MH_LABEL_LENGTH_MAX] = {0, }; - char device_name[MH_LABEL_LENGTH_MAX] = {0, }; - char passphrase[MH_LABEL_LENGTH_MAX] = {0, }; - char security_type[MH_LABEL_LENGTH_MAX] = {0, }; + char device_name[DEVICE_NAME_LENGTH_MAX] = {0, }; + char passphrase[WIFI_PASSPHRASE_LENGTH_MAX] = {0, }; + char security_type[SECURITY_TYPE_LENGTH_MAX] = {0, }; + char *fmt = STR_SECURITY_TYPE_PS; char *hidden = ""; char *ptr = NULL; char *device_name_utf = NULL; @@ -936,13 +1115,13 @@ static char *__get_help_label(void *data, Evas_Object *obj, const char *part) g_free(ptr); snprintf(security_type, sizeof(security_type), - STR_SECURITY_TYPE_PS, "WPA2 PSK"); + fmt, "WPA2 PSK"); } wifi_state = ad->main.hotspot_mode & VCONFKEY_MOBILE_HOTSPOT_MODE_WIFI; if (wifi_state && ad->setup.visibility == false) - hidden = STR_WIFI_TETH_HIDDEN; + hidden = STR_MOBILE_HOTSPOT_IS_HIDDEN; if (wifi_state && ad->setup.security_type != TETHERING_WIFI_SECURITY_TYPE_NONE) { snprintf(buf, MH_LABEL_LENGTH_MAX, @@ -958,8 +1137,8 @@ static char *__get_help_label(void *data, Evas_Object *obj, const char *part) STR_PASSWORD, passphrase, security_type, - STR_PASSWORD_FOR_WIFI_TETH, - hidden[0] != '\0' ? "
" : "", + STR_ENTER_THE_PASSWORD_ON_THE_OTHER_DEVICE, + hidden && hidden[0] != '\0' ? "
" : "", hidden); } else { snprintf(buf, MH_LABEL_LENGTH_MAX, @@ -969,7 +1148,7 @@ static char *__get_help_label(void *data, Evas_Object *obj, const char *part) "", STR_DEV_NAME, device_name, - hidden[0] != '\0' ? "
" : "", + hidden && hidden[0] != '\0' ? "
" : "", hidden); } @@ -979,45 +1158,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, +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.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, - 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); } @@ -1085,19 +1237,6 @@ static char *__get_usage_label(void *data, Evas_Object *obj, const char *part) static void __set_genlist_itc(mh_appdata_t *ad) { /* On, Off view's item class for genlist */ -#if 0 /* not used */ - ad->main.sp_itc = elm_genlist_item_class_new(); - if (ad->main.sp_itc == NULL) { - ERR("elm_genlist_item_class_new failed\n"); - return; - } - - ad->main.sp_itc->item_style = "dialogue/separator"; - ad->main.sp_itc->func.text_get = NULL; - ad->main.sp_itc->func.content_get = NULL; - ad->main.sp_itc->func.state_get = NULL; - ad->main.sp_itc->func.del = NULL; -#endif ad->main.wifi_itc = elm_genlist_item_class_new(); if (ad->main.wifi_itc == NULL) { ERR("elm_genlist_item_class_new failed\n"); @@ -1110,19 +1249,6 @@ static void __set_genlist_itc(mh_appdata_t *ad) ad->main.wifi_itc->func.state_get = NULL; ad->main.wifi_itc->func.del = NULL; -#if 0 /* not used */ - ad->main.sp2_itc = elm_genlist_item_class_new(); - if (ad->main.sp2_itc == NULL) { - ERR("elm_genlist_item_class_new failed\n"); - return; - } - - ad->main.sp2_itc->item_style = "dialogue/separator.2"; - ad->main.sp2_itc->func.text_get = NULL; - ad->main.sp2_itc->func.content_get = NULL; - ad->main.sp2_itc->func.state_get = NULL; - ad->main.sp2_itc->func.del = NULL; -#endif /* End of On, Off view's item class for genlist */ /* Off view's item class for genlist */ @@ -1164,18 +1290,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) { @@ -1183,8 +1297,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; @@ -1303,7 +1417,7 @@ static void __create_inner_contents(mh_appdata_t *ad) ad, NULL, ELM_GENLIST_ITEM_NONE, __select_usb_item, ad); ad->main.usb_item = item; - if (_get_vconf_usb_state() != VCONFKEY_SYSMAN_USB_AVAILABLE) { + if (_get_vconf_usb_state() == VCONFKEY_SYSMAN_USB_DISCONNECTED) { if (ad->main.usb_item) elm_object_item_disabled_set(ad->main.usb_item, EINA_TRUE); } else { @@ -1325,16 +1439,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; } @@ -1373,10 +1484,6 @@ void _main_free_genlist_itc(mh_appdata_t *ad) _free_genlist_itc(&mv->bt_itc); _free_genlist_itc(&mv->setup_itc); _free_genlist_itc(&mv->wifi_itc); -#if 0 /* not used */ - _free_genlist_itc(&mv->sp_itc); - _free_genlist_itc(&mv->sp2_itc); -#endif __MOBILE_AP_FUNC_EXIT__; return; } @@ -1409,7 +1516,18 @@ void _main_callback_del(mh_appdata_t *ad) __MOBILE_AP_FUNC_EXIT__; } -#if 0 /* device rename not supported */ +void _ctxpopup_more_button_callback_add(mh_appdata_t *ad) +{ + eext_object_event_callback_add(ad->naviframe, EEXT_CALLBACK_MORE, + __create_ctxpopup_more_button, ad); +} + +void _ctxpopup_more_button_callback_del(mh_appdata_t *ad) +{ + eext_object_event_callback_del(ad->naviframe, EEXT_CALLBACK_MORE, + __create_ctxpopup_more_button); +} + static void __ctx_move_more_ctxpopup(Evas_Object *ctx, mh_appdata_t *ad) { Evas_Coord w; @@ -1421,16 +1539,16 @@ static void __ctx_move_more_ctxpopup(Evas_Object *ctx, mh_appdata_t *ad) pos = elm_win_rotation_get(ad->win); switch (pos) { - case 0: - case 180: - evas_object_move(ctx, w/2, h); - break; - case 90: - evas_object_move(ctx, h/2, w); - break; - case 270: - evas_object_move(ctx, h/2, w); - break; + case 0: + case 180: + evas_object_move(ctx, w/2, h); + break; + case 90: + evas_object_move(ctx, h/2, w); + break; + case 270: + evas_object_move(ctx, h/2, w); + break; } __MOBILE_AP_FUNC_EXIT__; } @@ -1487,21 +1605,26 @@ static void __ctx_delete_more_ctxpopup_cb(void *data, Evas *e, Evas_Object *obj, __MOBILE_AP_FUNC_EXIT__; } -static void _gl_rename_device_sel(void *data, Evas_Object *obj, void *event_info) +static void __gl_configure_wifi_tethering(void *data, Evas_Object *obj, void *event_info) { __MOBILE_AP_FUNC_ENTER__; - mh_appdata_t *ad = (mh_appdata_t *)data; - - if (ad == NULL) { - ERR("ad is null\n"); + if (data == NULL) { + ERR("The param is NULL\n"); return; } + mh_appdata_t *ad = (mh_appdata_t *)data; + evas_object_del(ad->ctxpopup); ad->ctxpopup = NULL; - _create_rename_device_popup((void *)ad); + elm_genlist_item_selected_set((Elm_Object_Item *)event_info, EINA_FALSE); + _ctxpopup_more_button_callback_del(ad); + mh_draw_wifi_setup_view(ad); + __MOBILE_AP_FUNC_EXIT__; + + return; } static void __create_ctxpopup_more_button(void *data, Evas_Object *obj, @@ -1516,12 +1639,7 @@ static void __create_ctxpopup_more_button(void *data, Evas_Object *obj, } __MOBILE_AP_FUNC_ENTER__; - if (ad->setup.navi_it == NULL) { - return; - } - - elm_naviframe_item_pop_cb_set(ad->setup.navi_it, _setting_back_btn_cb, (void *)ad); - ctxpopup = elm_ctxpopup_add(ad->naviframe); + ctxpopup = elm_ctxpopup_add(ad->win); elm_ctxpopup_auto_hide_disabled_set(ctxpopup, EINA_TRUE); eext_object_event_callback_add(ctxpopup, EEXT_CALLBACK_BACK, @@ -1542,8 +1660,8 @@ static void __create_ctxpopup_more_button(void *data, Evas_Object *obj, ELM_CTXPOPUP_DIRECTION_UNKNOWN); __ctx_move_more_ctxpopup(ctxpopup, ad); - elm_ctxpopup_item_append(ctxpopup, STR_RENAME_DEVICE_HEADER, - NULL, _gl_rename_device_sel, ad); + elm_ctxpopup_item_append(ctxpopup, STR_CONFIGURE_MOBILE_HOTSPOT, + NULL, __gl_configure_wifi_tethering, ad); evas_object_show(ctxpopup); @@ -1551,7 +1669,7 @@ static void __create_ctxpopup_more_button(void *data, Evas_Object *obj, __MOBILE_AP_FUNC_EXIT__; } -#endif + void _main_draw_contents(mh_appdata_t *ad) { @@ -1574,11 +1692,7 @@ void _main_draw_contents(mh_appdata_t *ad) eext_object_event_callback_add(ad->naviframe, EEXT_CALLBACK_BACK, eext_naviframe_back_cb, NULL); -#if 0 /* device rename not supported */ - eext_object_event_callback_add(ad->naviframe, EEXT_CALLBACK_MORE, - __create_ctxpopup_more_button, ad); -#endif - + _ctxpopup_more_button_callback_add(ad); evas_object_smart_callback_add(ad->main.back_btn, "clicked", (Evas_Smart_Cb)__back_btn_cb, (void *)ad); elm_object_focus_allow_set(ad->main.back_btn, EINA_FALSE);