*
*/
-#include "mh_view_main.h"
-
-static void _gl_device_item_sel(void *data, Evas_Object *obj, void *event_info);
-static void _gl_exp(void *data, Evas_Object *obj, void *event_info);
-static void _gl_con(void *data, Evas_Object *obj, void *event_info);
+#include <time.h>
+#include <limits.h>
+#include <efl_extension.h>
-static bool _connected_clients_cb(tethering_client_h client, void *user_data)
+#include "mh_view_main.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 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)
{
- if (user_data == NULL) {
- ERR("user_data is NULL\n");
- return true;
- }
-
- mh_appdata_t *ad = (mh_appdata_t *)user_data;
- int i = ad->clients.number++;
+ __MOBILE_AP_FUNC_ENTER__;
- tethering_client_clone(&(ad->clients.handle[i]), client);
+ int change_ang = 0;
- return true;
+ 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__;
}
+#endif
-static void __genlist_update_device_subitem(mh_appdata_t *ad)
+void _select_connected_dev(void *data, Evas_Object *obj, void *event_info)
{
__MOBILE_AP_FUNC_ENTER__;
- if (ad == NULL) {
- ERR("Invalid param\n");
+ if (data == NULL) {
+ ERR("data is NULL\n");
return;
}
- Elm_Object_Item *item = NULL;
- tethering_type_e connection_type = 0;
- int i;
-
- for (i = 0; i < ad->clients.number; i++) {
- tethering_client_get_tethering_type(ad->clients.handle[i], &connection_type);
-
- item = elm_genlist_item_append(ad->main.genlist,
- ad->main.dev_itc[connection_type],
- (void *)ad->clients.handle[i],
- ad->main.device_item, ELM_GENLIST_ITEM_NONE,
- NULL, NULL);
- if (item == NULL) {
- ERR("elm_genlist_item_append is failed\n");
- continue;
- }
-
- elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
- }
+ 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);
__MOBILE_AP_FUNC_EXIT__;
-
- return;
}
-static void __genlist_update_device_item(mh_appdata_t *ad, int no_of_dev)
+static bool _connected_clients_cb(tethering_client_h client, void *user_data)
{
__MOBILE_AP_FUNC_ENTER__;
- if (ad == NULL) {
- ERR("Invalid param\n");
- return;
- }
-
- Elm_Object_Item *item = NULL;
- const Elm_Genlist_Item_Class *itc = NULL;
- Elm_Genlist_Item_Type item_flags = ELM_GENLIST_ITEM_NONE;
- Eina_Bool expanded = EINA_FALSE;
-
- if (ad->main.device_item != NULL) {
- itc = elm_genlist_item_item_class_get(ad->main.device_item);
- if (itc == NULL) {
- ERR("itc is NULL\n");
- return;
- }
-
- if ((itc == ad->main.device0_itc && no_of_dev == 0) ||
- (itc == ad->main.device_itc && no_of_dev > 0)) {
- DBG("No need to change genlist item flags\n");
- elm_genlist_item_update(ad->main.device_item);
-
- expanded = elm_genlist_item_expanded_get(ad->main.device_item);
- if (expanded == EINA_TRUE) {
- elm_genlist_item_subitems_clear(ad->main.device_item);
- __genlist_update_device_subitem(ad);
- }
-
- return;
- }
-
- elm_genlist_item_subitems_clear(ad->main.device_item);
- elm_object_item_del(ad->main.device_item);
- ad->main.device_item = NULL;
- }
-
- if (no_of_dev == 0) {
- itc = ad->main.device0_itc;
- item_flags = ELM_GENLIST_ITEM_NONE;
- } else if (no_of_dev > 0) {
- itc = ad->main.device_itc;
- item_flags = ELM_GENLIST_ITEM_TREE;
+ if (user_data == NULL) {
+ ERR("user_data is NULL\n");
+ return true;
}
- item = elm_genlist_item_insert_before(ad->main.genlist,
- itc, ad, NULL, ad->main.usage_item, item_flags,
- _gl_device_item_sel, NULL);
- if (item == NULL) {
- ERR("elm_genlist_item_insert_before is failed\n");
- return;
- }
- ad->main.device_item = item;
+ mh_appdata_t *ad = (mh_appdata_t *)user_data;
- if (no_of_dev == 0) {
- elm_genlist_item_select_mode_set(item,
- ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
- evas_object_smart_callback_del(ad->main.genlist, "expanded",
- _gl_exp);
- evas_object_smart_callback_del(ad->main.genlist, "contracted",
- _gl_con);
- } else if (no_of_dev > 0) {
- evas_object_smart_callback_add(ad->main.genlist, "expanded",
- _gl_exp, ad);
- evas_object_smart_callback_add(ad->main.genlist, "contracted",
- _gl_con, ad);
- }
+ _append_list_client_handle(ad, client);
__MOBILE_AP_FUNC_EXIT__;
-
- return;
+ return true;
}
void ap_update_data_device(mh_appdata_t *ad)
return;
}
- int i;
-
- if (ad->clients.number > 0) {
- for (i = 0; i < ad->clients.number; i++) {
- if (!ad->clients.handle[i])
- continue;
-
- tethering_client_destroy(ad->clients.handle[i]);
- ad->clients.handle[i] = NULL;
- }
- }
- ad->clients.number = 0;
-
- tethering_foreach_connected_clients(ad->handle, TETHERING_TYPE_ALL,
- _connected_clients_cb, (void *)ad);
- __genlist_update_device_item(ad, ad->clients.number);
+ _genlist_update_device_item(ad);
__MOBILE_AP_FUNC_EXIT__;
}
+#ifdef TETHERING_DATA_USAGE_SUPPORT
Eina_Bool ap_update_data_packet_usage(mh_appdata_t *ad)
{
if (ad == NULL) {
ERR("Invalid param\n");
return EINA_FALSE;
}
+ if (ad->main.usage_item == NULL) {
+ return EINA_TRUE;
+ }
- elm_genlist_item_update(ad->main.usage_item);
+ if (ad->main.usage_item)
+ elm_genlist_item_update(ad->main.usage_item);
return EINA_TRUE;
}
mh_appdata_t *ad = (mh_appdata_t *)data;
if (ad->main.hotspot_mode == VCONFKEY_MOBILE_HOTSPOT_MODE_NONE) {
- DBG("Mobile hotspot is turned off.\n");
ad->update_statistics_handle = NULL;
return ECORE_CALLBACK_CANCEL;
}
/* 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. */
return ECORE_CALLBACK_RENEW;
}
+#endif
+
+Eina_Bool ap_update_device_conn_time(void * data)
+{
+ if (!data) {
+ ERR("The param is NULL\n");
+ return ECORE_CALLBACK_CANCEL;
+ }
+ mh_appdata_t *ad = (mh_appdata_t *)data;
+
+ int count = 0;
+ 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++],
+ "elm.text.sub", ELM_GENLIST_ITEM_FIELD_TEXT);
+ }
+ return ECORE_CALLBACK_RENEW;
+}
+
+void _start_update_device_conn_time(mh_appdata_t *ad)
+{
+ __MOBILE_AP_FUNC_ENTER__;
+
+ if (ad == NULL) {
+ ERR("Invalid param\n");
+ __MOBILE_AP_FUNC_EXIT__;
+ return;
+ }
+
+ 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);
+
+ __MOBILE_AP_FUNC_EXIT__;
+}
+
+void _stop_update_device_conn_time(mh_appdata_t *ad)
+{
+ __MOBILE_AP_FUNC_ENTER__;
+
+ if (ad == NULL) {
+ ERR("Invalid param\n");
+ return;
+ }
+
+ if (ad->update_conn_time_handle) {
+ ecore_timer_del(ad->update_conn_time_handle);
+ ad->update_conn_time_handle = NULL;
+ }
+ __MOBILE_AP_FUNC_EXIT__;
+}
+#ifdef TETHERING_DATA_USAGE_SUPPORT
void _start_update_data_packet_usage(mh_appdata_t *ad)
{
__MOBILE_AP_FUNC_ENTER__;
}
if (ad->update_statistics_handle) {
- DBG("update_statistics_handle is not NULL.\n");
_stop_update_data_packet_usage(ad);
}
__MOBILE_AP_FUNC_EXIT__;
return;
}
+#endif
static void __read_setting(mh_appdata_t *ad)
{
int ret = 0;
char *ssid = NULL;
char *passphrase = NULL;
+ bool visibility;
+ tethering_wifi_security_type_e type;
ad->main.hotspot_mode = _get_vconf_hotspot_mode();
- ret = vconf_get_int(VCONFKEY_MOBILE_HOTSPOT_CONNECTED_DEVICE,
- &ad->clients.number);
- if (ret != 0) {
- ERR("vconf_get_int is failed\n");
- ad->clients.number = 0;
- }
-
+#ifdef TETHERING_DATA_USAGE_SUPPORT
ad->data_statistics.pdp_total_sent = 0;
ad->data_statistics.pdp_total_receive = 0;
if (ad->main.hotspot_mode != VCONFKEY_MOBILE_HOTSPOT_MODE_NONE)
tethering_get_data_usage(ad->handle, _data_usage_cb, (void *)ad);
+#endif
ret = tethering_wifi_get_ssid(ad->handle, &ssid);
if (ret != TETHERING_ERROR_NONE || ssid == NULL) {
- ERR("tethering_wifi_get_ssid is failed : %d %s\n", ret, ssid);
+ ERR("tethering_wifi_get_ssid is failed : %d\n", ret);
return;
}
g_strlcpy(ad->setup.device_name, ssid, sizeof(ad->setup.device_name));
ret = tethering_wifi_get_passphrase(ad->handle, &passphrase);
if (ret != TETHERING_ERROR_NONE || passphrase == NULL) {
- ERR("tethering_wifi_get_ssid is failed : %d %s\n", ret, ssid);
+ ERR("tethering_wifi_get_passphrase is failed : %d\n", ret);
return;
}
+
g_strlcpy(ad->setup.wifi_passphrase, passphrase,
sizeof(ad->setup.wifi_passphrase));
g_strlcpy(ad->setup.wifi_passphrase_new, passphrase,
sizeof(ad->setup.wifi_passphrase_new));
free(passphrase);
- ret = tethering_wifi_get_ssid_visibility(ad->handle, &ad->setup.visibility);
+ ret = tethering_wifi_get_ssid_visibility(ad->handle, &visibility);
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, &ad->setup.security_type);
+ ret = tethering_wifi_get_security_type(ad->handle, &type);
if (ret != TETHERING_ERROR_NONE) {
ERR("tethering_wifi_get_security_type is failed\n");
}
-
- DBG("VCONFKEY_MOBILE_HOTSPOT_MODE : %d\n", ad->main.hotspot_mode);
- DBG("Device name - %s\n", ad->setup.device_name);
- DBG("Wifi passphrase- %s\n", ad->setup.wifi_passphrase);
- DBG("Connected device : %d\n", ad->clients.number);
- DBG("Visibility: %d\n", ad->setup.visibility);
- DBG("Security: %d\n", ad->setup.security_type);
- DBG("End of Load setting value \n");
+ ad->setup.security_type = type;
+ ad->setup.security_type_new = type;
__MOBILE_AP_FUNC_EXIT__;
}
__MOBILE_AP_FUNC_ENTER__;
if (ad->main.wifi_state == wifi_state) {
- DBG("aready updated\n");
return;
}
if (ad->main.wifi_state == MH_STATE_PROCESS) {
ad->main.wifi_state = MH_STATE_NONE;
elm_genlist_item_select_mode_set(ad->main.wifi_item, ELM_OBJECT_SELECT_MODE_DEFAULT);
- elm_object_item_disabled_set(ad->main.setup_item, EINA_FALSE);
} else if (ad->main.wifi_state == MH_STATE_NONE) {
ad->main.wifi_state = MH_STATE_PROCESS;
elm_genlist_item_select_mode_set(ad->main.wifi_item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
- elm_object_item_disabled_set(ad->main.setup_item, EINA_TRUE);
}
- elm_genlist_item_update(ad->main.wifi_item);
- elm_object_item_signal_emit(ad->main.setup_item, "elm,state,bottom", "");
+ if (ad->main.wifi_item)
+ elm_genlist_item_update(ad->main.wifi_item);
+
+ if (ad->main.setup_item)
+ elm_object_item_signal_emit(ad->main.setup_item, "elm,state,bottom", "");
__MOBILE_AP_FUNC_EXIT__;
__MOBILE_AP_FUNC_ENTER__;
if (ad->main.bt_state == bt_state) {
- DBG("aready updated\n");
return;
}
elm_genlist_item_select_mode_set(ad->main.bt_item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
}
- elm_genlist_item_update(ad->main.bt_item);
+ if (ad->main.bt_item)
+ elm_genlist_item_update(ad->main.bt_item);
__MOBILE_AP_FUNC_EXIT__;
__MOBILE_AP_FUNC_ENTER__;
if (ad->main.usb_state == usb_state) {
- DBG("aready updated\n");
return;
}
return;
}
-void _update_main_view(mh_appdata_t *ad)
+void _genlist_update_device_item(mh_appdata_t *ad)
+{
+ __MOBILE_AP_FUNC_ENTER__;
+
+ if (ad == NULL) {
+ ERR("Invalid param\n");
+ return;
+ }
+ unsigned int no_of_dev = 0;
+ 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);
+ } 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);
+ }
+ ad->main.device_item = item;
+ }
+
+ if (ad->connected_device.navi_it) {
+ _update_conn_clients(ad);
+ }
+
+ __MOBILE_AP_FUNC_EXIT__;
+ return;
+}
+
+void _update_main_view(mh_appdata_t *ad, tethering_type_e type)
{
__MOBILE_AP_FUNC_ENTER__;
Eina_Bool wifi_state = EINA_FALSE;
Eina_Bool bt_state = EINA_FALSE;
Eina_Bool usb_state = EINA_FALSE;
+ Eina_Bool wifi_ap_state = EINA_FALSE;
Elm_Object_Item *item = NULL;
+ Evas_Object *obj;
+ int no_of_dev = 0;
ad->main.hotspot_mode = _get_vconf_hotspot_mode();
state = ad->main.hotspot_mode;
- ap_update_data_device(ad);
-
wifi_state = (Eina_Bool)(state & VCONFKEY_MOBILE_HOTSPOT_MODE_WIFI);
bt_state = (Eina_Bool)(state & VCONFKEY_MOBILE_HOTSPOT_MODE_BT);
usb_state = (Eina_Bool)(state & VCONFKEY_MOBILE_HOTSPOT_MODE_USB);
- DBG("wifi_state : %d, bt_state : %d, usb_state : %d\n",
- wifi_state, bt_state, usb_state);
-
- /* Update Wi-Fi tethering on / off button */
- if (ad->main.wifi_state != MH_STATE_NONE) {
- _update_wifi_item(ad, MH_STATE_NONE);
- } else {
- elm_check_state_set(ad->main.wifi_btn, wifi_state);
- }
-
- /* Update BT tethering on / off button */
- if (ad->main.bt_state != MH_STATE_NONE) {
- _update_bt_item(ad, MH_STATE_NONE);
- } else {
- elm_check_state_set(ad->main.bt_btn, bt_state);
- }
-
- /* Update USB tethering on / off button */
- if (ad->main.usb_state != MH_STATE_NONE) {
- _update_usb_item(ad, MH_STATE_NONE);
+ wifi_ap_state = (Eina_Bool)(state & VCONFKEY_MOBILE_HOTSPOT_MODE_WIFI_AP);
+
+ if (wifi_ap_state) {
+ if (ad->main.wifi_item)
+ elm_object_item_disabled_set(ad->main.wifi_item, EINA_TRUE);
+ if (ad->main.setup_item)
+ elm_object_item_disabled_set(ad->main.setup_item, EINA_TRUE);
+ if (ad->main.bt_item)
+ elm_object_item_disabled_set(ad->main.bt_item, EINA_TRUE);
+ if (ad->main.usb_item)
+ elm_object_item_disabled_set(ad->main.usb_item, EINA_TRUE);
} else {
- elm_check_state_set(ad->main.usb_btn, usb_state);
+ if (ad->main.setup_item)
+ 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 (ad->main.usb_item)
+ elm_object_item_disabled_set(ad->main.usb_item, EINA_TRUE);
+ } else {
+ if (ad->main.usb_item)
+ elm_object_item_disabled_set(ad->main.usb_item, EINA_FALSE);
+ }
}
if (wifi_state || bt_state || usb_state) {
- _start_update_data_packet_usage(ad);
+#ifdef TETHERING_DATA_USAGE_SUPPORT
+ if (ad->main.usage_item == NULL) {
+ item = elm_genlist_item_insert_before(ad->main.genlist,
+ ad->main.usage_itc, ad, NULL,
+ ad->main.sp_item[0],
+ ELM_GENLIST_ITEM_NONE, NULL, NULL);
+ elm_genlist_item_select_mode_set(item,
+ ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+ ad->main.usage_item = item;
+ }
+#endif
+
+ 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 {
+ 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);
+ }
+ ad->main.device_item = item;
+ }
+ } else {
+ if (ad->main.device_item) {
+ elm_object_item_del(ad->main.device_item);
+ ad->main.device_item = NULL;
+ }
+#ifdef TETHERING_DATA_USAGE_SUPPORT
+ if (ad->main.usage_item) {
+ elm_object_item_del(ad->main.usage_item);
+ ad->main.usage_item = NULL;
+ }
+#endif
}
- if (wifi_state || bt_state) {
+ if (wifi_state) {
if (ad->main.help_item) {
- DBG("Just update genlist\n");
elm_genlist_item_update(ad->main.help_item);
- return;
} else {
- DBG("Add help item\n");
item = elm_genlist_item_insert_after(ad->main.genlist,
ad->main.help_itc, ad, NULL,
- ad->main.usb_item,
+ ad->main.wifi_item,
ELM_GENLIST_ITEM_NONE, NULL,
NULL);
if (item == NULL) {
ERR("elm_genlist_item_insert_after NULL\n");
- return;
+ } else {
+ elm_genlist_item_select_mode_set(item,
+ ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+ ad->main.help_item = item;
}
- elm_genlist_item_select_mode_set(item,
- ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
- ad->main.help_item = item;
}
} else {
- if (!ad->main.help_item) {
- DBG("No need to update\n");
- return;
- } else {
- DBG("Remove help item\n");
+ if (ad->main.help_item) {
elm_object_item_del(ad->main.help_item);
ad->main.help_item = NULL;
}
}
+ switch (type) {
+ case TETHERING_TYPE_WIFI:
+ /* Update Wi-Fi tethering on / off button */
+ if (ad->main.wifi_state != MH_STATE_NONE) {
+ _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) {
+ elm_check_state_set(obj, wifi_state);
+ }
+
+ if (ad->main.wifi_item) {
+ elm_genlist_item_update(ad->main.wifi_item);
+ }
+ }
+ break;
+
+ case TETHERING_TYPE_BT:
+ /* Update BT tethering on / off button */
+ if (ad->main.bt_state != MH_STATE_NONE) {
+ _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) {
+ elm_check_state_set(obj, bt_state);
+ }
+
+ if (ad->main.bt_item) {
+ elm_genlist_item_update(ad->main.bt_item);
+ }
+ }
+ break;
+
+ case TETHERING_TYPE_USB:
+ /* Update USB tethering on / off button */
+ if (ad->main.usb_state != MH_STATE_NONE) {
+ _update_usb_item(ad, MH_STATE_NONE);
+ } else {
+ obj = elm_object_item_part_content_get(ad->main.usb_item, "elm.swallow.end");
+ if (obj != NULL)
+ elm_check_state_set(obj, usb_state);
+
+ if (ad->main.usb_item)
+ elm_genlist_item_update(ad->main.usb_item);
+ }
+ break;
+
+ default:
+ DBG("Unknown tethering type : %d\n", type);
+ break;
+ }
+
__MOBILE_AP_FUNC_EXIT__;
+
+ return;
}
static void __wifi_onoff_changed_cb(void *data, Evas_Object *obj,
mh_appdata_t *ad = (mh_appdata_t *)data;
_update_wifi_item(ad, MH_STATE_PROCESS);
-
+ ad->type = TETHERING_TYPE_WIFI;
+ ad->is_wifi_teth_enabling = true;
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;
}
__MOBILE_AP_FUNC_EXIT__;
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);
-
- __wifi_onoff_changed_cb(data, ad->main.wifi_btn, NULL);
-
- __MOBILE_AP_FUNC_EXIT__;
-
- return;
-}
-
-static void __select_setup_item(void *data, Evas_Object *obj, void *event_info)
-{
- __MOBILE_AP_FUNC_ENTER__;
-
- Elm_Object_Item *item = (Elm_Object_Item *)event_info;
- mh_appdata_t *ad = (mh_appdata_t *)data;
- int connected_wifi_clients = 0;
- int ret = 0;
-
- if (data == NULL) {
- ERR("The param is NULL\n");
- return;
- }
-
- elm_genlist_item_selected_set(item, EINA_FALSE);
-
- if (tethering_is_enabled(ad->handle, TETHERING_TYPE_WIFI) == false) {
- mh_draw_wifi_setup_view(ad);
- return;
- }
-
- DBG("Wi-Fi tethering is on\n");
- if (_get_no_of_connected_device(ad->handle, &connected_wifi_clients,
- TETHERING_TYPE_WIFI) == FALSE) {
- ERR("Getting the number of connected device is failed\n");
- }
-
- if (connected_wifi_clients > 0) {
- _prepare_popup(ad, MH_POP_ENTER_TO_WIFI_SETUP_CONF,
- _("IDS_MOBILEAP_POP_CONNECTED_DEVICE_WILL_BE_DISCONNECTED"));
- _create_popup(ad);
- } else {
- _update_wifi_item(ad, MH_STATE_PROCESS);
- ret = tethering_disable(ad->handle, TETHERING_TYPE_WIFI);
- if (ret != TETHERING_ERROR_NONE) {
- ERR("wifi tethering off is failed : %d\n", ret);
- _update_wifi_item(ad, MH_STATE_NONE);
- } else
- ad->main.old_wifi_state = true;
-
- mh_draw_wifi_setup_view(ad);
- }
+ mh_draw_wifi_setup_view(ad);
__MOBILE_AP_FUNC_EXIT__;
mh_appdata_t *ad = (mh_appdata_t *)data;
_update_bt_item(ad, MH_STATE_PROCESS);
+ ad->type = TETHERING_TYPE_BT;
+ ad->is_bt_teth_enabling = true;
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;
}
__MOBILE_AP_FUNC_EXIT__;
{
__MOBILE_AP_FUNC_ENTER__;
+ Evas_Object *content;
Elm_Object_Item *item = (Elm_Object_Item *)event_info;
- mh_appdata_t *ad = (mh_appdata_t *)data;
if (data == NULL) {
ERR("The param is NULL\n");
elm_genlist_item_selected_set(item, EINA_FALSE);
- __bt_onoff_changed_cb(data, ad->main.bt_btn, NULL);
+ content = elm_object_item_part_content_get(item, "elm.icon");
+ __bt_onoff_changed_cb(data, content, NULL);
__MOBILE_AP_FUNC_EXIT__;
}
mh_appdata_t *ad = (mh_appdata_t *)data;
-
_update_usb_item(ad, MH_STATE_PROCESS);
+ ad->type = TETHERING_TYPE_USB;
+ ad->is_usb_teth_enabling = true;
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;
}
__MOBILE_AP_FUNC_EXIT__;
{
__MOBILE_AP_FUNC_ENTER__;
+ Evas_Object *content;
Elm_Object_Item *item = (Elm_Object_Item *)event_info;
- mh_appdata_t *ad = (mh_appdata_t *)data;
if (data == NULL) {
ERR("The param is NULL\n");
elm_genlist_item_selected_set(item, EINA_FALSE);
- __usb_onoff_changed_cb(data, ad->main.usb_btn, NULL);
+ content = elm_object_item_part_content_get(item, "elm.icon");
+ __usb_onoff_changed_cb(data, content, NULL);
__MOBILE_AP_FUNC_EXIT__;
return;
}
-static void __back_btn_cb(void *data, Evas_Object *obj, void *event_info)
+static void __back_btn_cb(void *data, Elm_Object_Item *navi_item)
{
- __MOBILE_AP_FUNC_ENTER__;
+ INFO("+\n");
if (data == NULL) {
ERR("The param is NULL\n");
mh_appdata_t *ad = (mh_appdata_t*)data;
+ _release_list_client_handle(ad);
+ _main_callback_del(ad);
+
ug_destroy_me(((mh_ugdata_t *)ad->gadget)->ug);
- __MOBILE_AP_FUNC_EXIT__;
+ INFO("-\n");
+ return;
}
static char *__get_wifi_label(void *data, Evas_Object *obj, const char *part)
{
- if (strcmp(part, "elm.text") != 0) {
- ERR("Invalid param\n");
- return NULL;
+ if (!strcmp("elm.text", part)) {
+ return strdup(STR_WIFI_TETH);
}
- return strdup(_("IDS_MOBILEAP_MBODY_WI_FI_TETHERING"));
+ return NULL;
}
static Evas_Object *__get_wifi_icon(void *data, Evas_Object *obj,
const char *part)
{
- __MOBILE_AP_FUNC_ENTER__;
+ mh_appdata_t *ad = (mh_appdata_t*)data;
+ Evas_Object *btn = NULL;
if (data == NULL) {
ERR("The param is NULL\n");
return NULL;
}
- if (strcmp(part, "elm.icon") != 0) {
- ERR("Invalid param\n");
- return NULL;
- }
+ if (!strcmp("elm.swallow.end", part)) {
+ if (ad->main.wifi_state == MH_STATE_PROCESS) {
+ btn = _create_progressbar(obj, "process_medium");
+ } else {
+ btn = elm_check_add(obj);
+ elm_object_style_set(btn, "on&off");
- mh_appdata_t *ad = (mh_appdata_t*)data;
- Evas_Object *btn = NULL;
- Evas_Object *progressbar = NULL;
+ 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);
- if (ad->main.wifi_state == MH_STATE_PROCESS) {
- progressbar = elm_progressbar_add(obj);
- if (progressbar == NULL) {
- ERR("progressbar is NULL\n");
- return NULL;
+ evas_object_smart_callback_add(btn, "changed", __wifi_onoff_changed_cb, ad);
+ evas_object_show(btn);
}
- elm_object_style_set(progressbar, "list_process");
- elm_progressbar_horizontal_set(progressbar, EINA_TRUE);
- elm_progressbar_pulse(progressbar, EINA_TRUE);
- evas_object_show(progressbar);
- ad->main.wifi_btn = progressbar;
- } 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);
- elm_check_state_set(btn, ad->main.hotspot_mode &
- VCONFKEY_MOBILE_HOTSPOT_MODE_WIFI ? EINA_TRUE : EINA_FALSE);
+ return btn;
+}
- evas_object_smart_callback_add(btn, "changed", __wifi_onoff_changed_cb,
- ad);
- ad->main.wifi_btn = btn;
+static char *__get_bt_label(void *data, Evas_Object *obj, const char *part)
+{
+ if (!strcmp("elm.text", part)) {
+ return strdup(STR_BLUETOOTH_TETH);
}
- __MOBILE_AP_FUNC_EXIT__;
- return ad->main.wifi_btn;
+ return NULL;
}
-static char *__get_setup_label(void *data, Evas_Object *obj, const char *part)
+static Evas_Object *__get_bt_icon(void *data, Evas_Object *obj, const char *part)
{
- if (data == NULL) {
+ mh_appdata_t *ad = (mh_appdata_t *)data;
+ Evas_Object *btn = NULL;
+ if (data == NULL) {
ERR("The param is NULL\n");
return NULL;
}
- if (strcmp(part, "elm.text") != 0) {
- ERR("Invalid param\n");
- return NULL;
+ if (!strcmp("elm.swallow.end", part)) {
+ if (ad->main.bt_state == MH_STATE_PROCESS) {
+ btn = _create_progressbar(obj, "process_medium");
+ } else {
+ btn = elm_check_add(obj);
+ if (btn == NULL) {
+ ERR("btn is NULL\n");
+ return NULL;
+ }
+ elm_object_style_set(btn, "on&off");
+ evas_object_pass_events_set(btn, EINA_TRUE);
+ evas_object_propagate_events_set(btn, EINA_FALSE);
+ elm_check_state_set(btn, ad->main.hotspot_mode &
+ 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);
+ }
}
- return strdup(_("IDS_MOBILEAP_MBODY_WI_FI_TETHERING_SETTINGS"));
+ return btn;
}
-static char *__get_bt_label(void *data, Evas_Object *obj, const char *part)
+static char *__get_usb_label(void *data, Evas_Object *obj, const char *part)
{
- if (strcmp(part, "elm.text") != 0) {
- ERR("Invalid param\n");
- return NULL;
+ if (!strcmp("elm.text", part)) {
+ return strdup(STR_USB_TETH);
}
- return strdup(_("IDS_MOBILEAP_BODY_BLUETOOTH_TETHERING"));
-}
-
-static Evas_Object *__get_bt_icon(void *data, Evas_Object *obj, const char *part)
-{
- __MOBILE_AP_FUNC_ENTER__;
-
- mh_appdata_t *ad = (mh_appdata_t *)data;
- Evas_Object *btn = NULL;
- Evas_Object *progressbar = NULL;
-
- if (strcmp(part, "elm.icon") != 0) {
- ERR("Invalid param\n");
- return NULL;
- }
-
- if (data == NULL) {
- ERR("The param is NULL\n");
- return NULL;
- }
-
- ad->main.bt_btn = NULL;
- if (ad->main.bt_state == MH_STATE_PROCESS) {
- progressbar = elm_progressbar_add(obj);
- if (progressbar == NULL) {
- ERR("progressbar is NULL\n");
- return NULL;
- }
- elm_object_style_set(progressbar, "list_process");
- elm_progressbar_horizontal_set(progressbar, EINA_TRUE);
- elm_progressbar_pulse(progressbar, EINA_TRUE);
- evas_object_show(progressbar);
- ad->main.bt_btn = progressbar;
- } else {
- btn = elm_check_add(obj);
- if (btn == NULL) {
- ERR("btn is NULL\n");
- return NULL;
- }
- elm_object_style_set(btn, "on&off");
- evas_object_pass_events_set(btn, EINA_TRUE);
- evas_object_propagate_events_set(btn, EINA_FALSE);
- elm_check_state_set(btn, ad->main.hotspot_mode &
- 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);
- ad->main.bt_btn = btn;
- }
-
- __MOBILE_AP_FUNC_EXIT__;
-
- return ad->main.bt_btn;
-}
-
-static char *__get_usb_label(void *data, Evas_Object *obj, const char *part)
-{
- if (strcmp(part, "elm.text") != 0) {
- ERR("Invalid param\n");
- return NULL;
- }
-
- return strdup(_("IDS_MOBILEAP_MBODY_USB_TETHERING"));
+ return NULL;
}
static Evas_Object *__get_usb_icon(void *data, Evas_Object *obj,
const char *part)
{
- __MOBILE_AP_FUNC_ENTER__;
-
mh_appdata_t *ad = (mh_appdata_t *)data;
Evas_Object *btn = NULL;
- Evas_Object *progressbar = NULL;
-
- if (strcmp(part, "elm.icon") != 0) {
- ERR("Invalid param\n");
- return NULL;
- }
if (data == NULL) {
ERR("The param is NULL\n");
return NULL;
}
- ad->main.usb_btn = NULL;
- if (ad->main.usb_state == MH_STATE_PROCESS) {
- progressbar = elm_progressbar_add(obj);
- if (progressbar == NULL) {
- ERR("progressbar is NULL\n");
- return NULL;
- }
- elm_object_style_set(progressbar, "list_process");
- elm_progressbar_horizontal_set(progressbar, EINA_TRUE);
- elm_progressbar_pulse(progressbar, EINA_TRUE);
- evas_object_show(progressbar);
- ad->main.usb_btn = progressbar;
- } else {
- btn = elm_check_add(obj);
- if (btn == NULL) {
- ERR("btn is NULL\n");
- return NULL;
- }
- elm_object_style_set(btn, "on&off");
- evas_object_pass_events_set(btn, EINA_TRUE);
- evas_object_propagate_events_set(btn, EINA_FALSE);
- elm_check_state_set(btn, ad->main.hotspot_mode &
+ if (!strcmp("elm.swallow.end", part)) {
+ if (ad->main.usb_state == MH_STATE_PROCESS) {
+ btn = _create_progressbar(obj, "process_medium");
+ } else {
+ btn = elm_check_add(obj);
+ if (btn == NULL) {
+ ERR("btn is NULL\n");
+ return NULL;
+ }
+ elm_object_style_set(btn, "on&off");
+ evas_object_pass_events_set(btn, EINA_TRUE);
+ evas_object_propagate_events_set(btn, EINA_FALSE);
+ elm_check_state_set(btn, ad->main.hotspot_mode &
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);
- ad->main.usb_btn = btn;
+ evas_object_show(btn);
+ evas_object_smart_callback_add(btn, "changed", __usb_onoff_changed_cb, ad);
+ }
}
- __MOBILE_AP_FUNC_EXIT__;
-
- return ad->main.usb_btn;
+ return btn;
}
static char *__get_help_label(void *data, Evas_Object *obj, const char *part)
{
- __MOBILE_AP_FUNC_ENTER__;
-
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 *fmt = STR_SECURITY_TYPE_PS;
char *hidden = "";
char *ptr = NULL;
+ char *device_name_utf = NULL;
int wifi_state = VCONFKEY_MOBILE_HOTSPOT_MODE_NONE;
- if (strcmp(part, "elm.text") != 0) {
- ERR("Invalid param : %s\n", part);
- return NULL;
- }
-
if (data == NULL) {
ERR("The param is NULL\n");
return NULL;
}
- ptr = elm_entry_utf8_to_markup(ad->setup.device_name);
- if (ptr == NULL) {
- ERR("elm_entry_utf8_to_markup is failed\n");
- return NULL;
- }
- g_strlcpy(device_name, ptr, MH_LABEL_LENGTH_MAX);
- free(ptr);
+ if (!strcmp("elm.text.multiline", part)) {
+ device_name_utf = vconf_get_str(VCONFKEY_SETAPPL_DEVICE_NAME_STR);
+ if (device_name_utf == NULL) {
+ ERR("vconf_get_str failed \n");
+ return NULL;
+ }
- if (ad->setup.security_type != TETHERING_WIFI_SECURITY_TYPE_NONE) {
- ptr = elm_entry_utf8_to_markup(ad->setup.wifi_passphrase);
+ ptr = elm_entry_utf8_to_markup(device_name_utf);
if (ptr == NULL) {
+ g_free(device_name_utf);
ERR("elm_entry_utf8_to_markup is failed\n");
return NULL;
}
- g_strlcpy(passphrase, ptr, MH_LABEL_LENGTH_MAX);
- free(ptr);
- }
-
- wifi_state = ad->main.hotspot_mode & VCONFKEY_MOBILE_HOTSPOT_MODE_WIFI;
-
- if (wifi_state && ad->setup.visibility == false)
- hidden = _("IDS_MOBILEAP_BODY_WI_FI_TETHERING_HIDDEN");
-
- if (wifi_state && ad->setup.security_type != TETHERING_WIFI_SECURITY_TYPE_NONE) {
- snprintf(buf, MH_LABEL_LENGTH_MAX,
- "%s: %s<br>"
- "%s: %s<br><br>"
- "%s"
- "%s"
- "%s",
- _("IDS_MOBILEAP_BODY_DEVICE_NAME"),
- device_name,
- _("IDS_MOBILEAP_BODY_PASSWORD"),
- passphrase,
- _("IDS_MOBILEAP_BODY_THIS_PASSWORD_IS_ONLY_FOR_WI_FI_TETHERING"),
- hidden[0] != '\0' ? "<br>" : "",
- hidden);
- } else {
- snprintf(buf, MH_LABEL_LENGTH_MAX,
- "%s : %s%s%s",
- _("IDS_MOBILEAP_BODY_DEVICE_NAME"),
- device_name,
- hidden[0] != '\0' ? "<br>" : "",
- hidden);
- }
+ g_strlcpy(ad->setup.device_name, ptr,
+ sizeof(ad->setup.device_name));
+ g_strlcpy(device_name, ptr, MH_LABEL_LENGTH_MAX);
+ g_free(device_name_utf);
+ g_free(ptr);
+ ptr = NULL;
+
+ if (ad->setup.security_type != TETHERING_WIFI_SECURITY_TYPE_NONE) {
+ ptr = elm_entry_utf8_to_markup(ad->setup.wifi_passphrase);
+ if (ptr == NULL) {
+ ERR("elm_entry_utf8_to_markup is failed\n");
+ return NULL;
+ }
+ g_strlcpy(passphrase, ptr, MH_LABEL_LENGTH_MAX);
+ g_free(ptr);
- __MOBILE_AP_FUNC_EXIT__;
+ snprintf(security_type, sizeof(security_type),
+ fmt, "WPA2 PSK");
+ }
- return strdup(buf);
-}
+ wifi_state = ad->main.hotspot_mode & VCONFKEY_MOBILE_HOTSPOT_MODE_WIFI;
+
+ if (wifi_state && ad->setup.visibility == false)
+ hidden = STR_WIFI_TETH_HIDDEN;
+
+ if (wifi_state && ad->setup.security_type != TETHERING_WIFI_SECURITY_TYPE_NONE) {
+ snprintf(buf, MH_LABEL_LENGTH_MAX,
+ "<font_size=30>"
+ "%s: %s<br>"
+ "%s: %s<br>"
+ "%s<br>"
+ "%s%s"
+ "%s"
+ "</font_size>",
+ STR_DEV_NAME,
+ device_name,
+ STR_PASSWORD,
+ passphrase,
+ security_type,
+ STR_PASSWORD_FOR_WIFI_TETH,
+ hidden[0] != '\0' ? "<br>" : "",
+ hidden);
+ } else {
+ snprintf(buf, MH_LABEL_LENGTH_MAX,
+ "<font_size=30>"
+ "%s: %s%s"
+ "%s"
+ "</font_size>",
+ STR_DEV_NAME,
+ device_name,
+ hidden[0] != '\0' ? "<br>" : "",
+ hidden);
+ }
-static char *__get_connected_device_label(void *data, Evas_Object *obj,
- const char *part)
-{
- if (strcmp(part, "elm.text.1") != 0 && strcmp(part, "elm.text.2") != 0) {
- ERR("Invalid param\n");
- return NULL;
+ return strdup(buf);
}
- if (data == NULL) {
- ERR("The param is NULL\n");
- return NULL;
- }
+ 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 (strcmp(part, "elm.text.1") != 0)
- snprintf(buf, MH_LABEL_LENGTH_MAX, "%d",
- ad->clients.number);
- else if (strcmp(part, "elm.text.2") != 0)
- g_strlcpy(buf, _("IDS_MOBILEAP_BODY_CONNECTED_DEVICE"),
- sizeof(buf));
-
- return strdup(buf);
-}
-
-static char *__get_usage_label(void *data, Evas_Object *obj, const char *part)
-{
if (data == NULL) {
ERR("The param is NULL\n");
return NULL;
}
- if (strcmp(part, "elm.text.1") != 0 && strcmp(part, "elm.text.2") != 0) {
- ERR("Invalid param\n");
- return NULL;
- }
-
- mh_appdata_t *ad = (mh_appdata_t*)data;
- int sent = 0;
- int received = 0;
- char *sent_str = NULL;
- char *received_str = NULL;
- char fmt[MH_LABEL_LENGTH_MAX] = {0, };
- char label[MH_LABEL_LENGTH_MAX] = {0, };
-
- if (strcmp(part, "elm.text.1") != 0 ) {
- sent = ad->data_statistics.pdp_total_sent;
- received = ad->data_statistics.pdp_total_receive;
-
- if (sent >= MH_MB) {
- sent /= MH_MB;
- sent_str = _("IDS_MOBILEAP_BODY_PD_MB");
- } else if (sent >= MH_KB) {
- sent /= MH_KB;
- sent_str = _("IDS_MOBILEAP_BODY_PD_KB");
- } else {
- sent_str = _("IDS_MOBILEAP_BODY_PD_BYTES");
- }
-
- if (received >= MH_MB) {
- received /= MH_MB;
- received_str = _("IDS_MOBILEAP_BODY_PD_MB");
- } else if (received >= MH_KB) {
- received /= MH_KB;
- received_str = _("IDS_MOBILEAP_BODY_PD_KB");
- } else {
- received_str = _("IDS_MOBILEAP_BODY_PD_BYTES");
- }
-
- snprintf(fmt, sizeof(fmt), "%s %s / %s %s",
- _("IDS_MOBILEAP_BODY_SENT_C"),
- sent_str,
- _("IDS_MOBILEAP_BODY_RECEIVED_C"),
- received_str);
- snprintf(label, sizeof(label), fmt, sent, received);
- } else if (strcmp(part, "elm.text.2") != 0)
- g_strlcpy(label, _("IDS_MOBILEAP_MBODY_DATA_USAGE"),
- sizeof(label));
-
- return strdup(label);
-}
-
-static char *__gl_get_dev_label(void *data, Evas_Object *obj, const char *part)
-{
- if (data == NULL || part == NULL) {
- ERR("Invalid param\n");
- return NULL;
- }
-
- tethering_client_h client = (tethering_client_h)data;
- char *name = NULL;
-
- if (!strcmp(part, "elm.text")) {
- tethering_client_get_name(client, &name);
- DBG("Device name : %s\n", name);
-
- if (!strcmp(name, "UNKNOWN")) {
- return strdup(_(MH_DEVICE_LIST_NO_NAME));
- }
-
- return name;
+ if (!strcmp("elm.text.multiline", part)) {
+ no_of_dev = _get_list_clients_count(ad);
+ snprintf(buf, MH_LABEL_LENGTH_MAX, "<font_size=30>%s<br>%d</font_size>", STR_CONNECTED_DEV, no_of_dev);
+ return strdup(buf);
}
return NULL;
}
-static Evas_Object *__gl_get_dev_wifi_icon(void *data, Evas_Object *obj,
+static char *__get_connected_device_label(void *data, Evas_Object *obj,
const char *part)
{
- Evas_Object *icon;
+ mh_appdata_t *ad = (mh_appdata_t*)data;
+ char buf[MH_LABEL_LENGTH_MAX] = {0, };
+ int no_of_dev;
- if (!strncmp(part, "elm.icon", 8)) {
- icon = elm_icon_add(obj);
- elm_image_file_set(icon, EDJDIR"/"TETHERING_IMAGES_EDJ, WIFI_ICON);
- evas_object_size_hint_aspect_set(icon,
- EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
- return icon;
+ if (data == NULL) {
+ ERR("The param is NULL\n");
+ return NULL;
}
- return NULL;
-}
-
-static Evas_Object *__gl_get_dev_usb_icon(void *data, Evas_Object *obj,
- const char *part)
-{
- Evas_Object *icon;
- if (!strncmp(part, "elm.icon", 8)) {
- icon = elm_icon_add(obj);
- elm_image_file_set(icon, EDJDIR"/"TETHERING_IMAGES_EDJ, USB_ICON);
- evas_object_size_hint_aspect_set(icon,
- EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
- return icon;
+ 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);
+ return strdup(buf);
}
- return NULL;
-}
-
-static Evas_Object *__gl_get_dev_bt_icon(void *data, Evas_Object *obj,
- const char *part)
-{
- Evas_Object *icon;
- if (!strncmp(part, "elm.icon", 8)) {
- icon = elm_icon_add(obj);
- elm_image_file_set(icon, EDJDIR"/"TETHERING_IMAGES_EDJ, BT_ICON);
- evas_object_size_hint_aspect_set(icon,
- EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
- return icon;
- }
return NULL;
}
-static void _gl_exp(void *data, Evas_Object *obj, void *event_info)
+#ifdef TETHERING_DATA_USAGE_SUPPORT
+static char *__get_usage_label(void *data, Evas_Object *obj, const char *part)
{
- __MOBILE_AP_FUNC_ENTER__;
+ mh_appdata_t *ad = (mh_appdata_t*)data;
+ unsigned long long total = 0;
+ unsigned long long sent = 0;
+ unsigned long long received = 0;
+ char *fmt_str;
+ char buf[MH_LABEL_LENGTH_MAX] = {0, };
+ char label[MH_LABEL_LENGTH_MAX] = {0, };
if (data == NULL) {
- ERR("Invalid param\n");
- return;
+ ERR("The param is NULL\n");
+ return NULL;
}
- mh_appdata_t *ad = (mh_appdata_t *)data;
+ if (!strcmp("elm.text", part)) {
+ g_strlcpy(label, STR_DATA_USAGE, sizeof(label));
+ return strdup(label);
+ } else if (!strcmp("elm.text.multiline", part)) {
+ sent = ad->data_statistics.pdp_total_sent;
+ received = ad->data_statistics.pdp_total_receive;
- ap_update_data_device(ad);
+ if (sent >= MH_MB || received >= MH_MB) {
+ sent /= MH_MB;
+ received /= MH_MB;
- __MOBILE_AP_FUNC_EXIT__;
-}
+ total = sent + received;
+ fmt_str = STR_MB;
+ } else if (sent + received >= MH_MB) {
+ total = (sent + received) / MH_MB;
+ fmt_str = STR_MB;
+ } else if (sent >= MH_KB || received >= MH_KB) {
+ sent /= MH_KB;
+ received /= MH_KB;
-static void _gl_con(void *data, Evas_Object *obj, void *event_info)
-{
- __MOBILE_AP_FUNC_ENTER__;
+ total = sent + received;
+ fmt_str = STR_KB;
+ } else if (sent + received >= MH_KB) {
+ total = (sent + received) / MH_KB;
+ fmt_str = STR_KB;
+ } else {
+ total = sent + received;
+ fmt_str = STR_BYTE;
+ }
- if (event_info == NULL) {
- ERR("Invalid param\n");
- return;
+ if (total > INT_MAX) {
+ ERR("data usage overflow\n");
+ total = 0;
+ }
+ snprintf(label, MH_LABEL_LENGTH_MAX, fmt_str, (int)total);
+ return strdup(label);
}
- mh_appdata_t *ad = (mh_appdata_t *)data;
-
- elm_genlist_item_subitems_clear(ad->main.device_item);
-
- __MOBILE_AP_FUNC_EXIT__;
-}
-
-static void _gl_device_item_sel(void *data, Evas_Object *obj, void *event_info)
-{
- __MOBILE_AP_FUNC_ENTER__;
-
- Elm_Object_Item *item = (Elm_Object_Item*)event_info;
-
- elm_genlist_item_selected_set(item, EINA_FALSE);
-
- Eina_Bool status = elm_genlist_item_expanded_get(item);
- DBG("+ expand status:%d\n", status);
-
- elm_genlist_item_expanded_set(item, !status);
-
- __MOBILE_AP_FUNC_EXIT__;
-
- return;
-}
-
-static void __free_genlist_itc(mh_appdata_t *ad)
-{
- elm_genlist_item_class_free(ad->main.sp_itc);
- elm_genlist_item_class_free(ad->main.wifi_itc);
- elm_genlist_item_class_free(ad->main.setup_itc);
- elm_genlist_item_class_free(ad->main.bt_itc);
- elm_genlist_item_class_free(ad->main.usb_itc);
- elm_genlist_item_class_free(ad->main.help_itc);
- elm_genlist_item_class_free(ad->main.device_itc);
- elm_genlist_item_class_free(ad->main.device0_itc);
- elm_genlist_item_class_free(ad->main.usage_itc);
- elm_genlist_item_class_free(ad->main.dev_itc[TETHERING_TYPE_WIFI]);
- elm_genlist_item_class_free(ad->main.dev_itc[TETHERING_TYPE_USB]);
- elm_genlist_item_class_free(ad->main.dev_itc[TETHERING_TYPE_BT]);
- return;
+ return NULL;
}
+#endif
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();
- ad->main.wifi_itc->item_style = "dialogue/1text.1icon";
+ if (ad->main.wifi_itc == NULL) {
+ ERR("elm_genlist_item_class_new failed\n");
+ return;
+ }
+
+ ad->main.wifi_itc->item_style = MH_GENLIST_1LINE_TEXT_ICON_STYLE;
ad->main.wifi_itc->func.text_get = __get_wifi_label;
- ad->main.wifi_itc->func.content_get = __get_wifi_icon;
+ ad->main.wifi_itc->func.content_get = __get_wifi_icon;
ad->main.wifi_itc->func.state_get = NULL;
ad->main.wifi_itc->func.del = NULL;
- ad->main.end_sp_itc = elm_genlist_item_class_new();
- ad->main.end_sp_itc->item_style = "dialogue/separator";
- ad->main.end_sp_itc->func.text_get = NULL;
- ad->main.end_sp_itc->func.content_get = NULL;
- ad->main.end_sp_itc->func.state_get = NULL;
- ad->main.end_sp_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 */
- ad->main.setup_itc = elm_genlist_item_class_new();
- ad->main.setup_itc->item_style = "dialogue/1text";
- ad->main.setup_itc->func.text_get = __get_setup_label;
- ad->main.setup_itc->func.content_get = NULL;
- ad->main.setup_itc->func.state_get = NULL;
- ad->main.setup_itc->func.del = NULL;
-
ad->main.bt_itc = elm_genlist_item_class_new();
- ad->main.bt_itc->item_style = "dialogue/1text.1icon";
+ if (ad->main.bt_itc == NULL) {
+ ERR("elm_genlist_item_class_new failed\n");
+ return;
+ }
+
+ ad->main.bt_itc->item_style = MH_GENLIST_1LINE_TEXT_ICON_STYLE;
ad->main.bt_itc->func.text_get = __get_bt_label;
ad->main.bt_itc->func.content_get = __get_bt_icon;
ad->main.bt_itc->func.state_get = NULL;
ad->main.bt_itc->func.del = NULL;
ad->main.usb_itc = elm_genlist_item_class_new();
- ad->main.usb_itc->item_style = "dialogue/1text.1icon";
+ if (ad->main.usb_itc == NULL) {
+ ERR("elm_genlist_item_class_new failed\n");
+ return;
+ }
+
+ ad->main.usb_itc->item_style = MH_GENLIST_1LINE_TEXT_ICON_STYLE;
ad->main.usb_itc->func.text_get = __get_usb_label;
ad->main.usb_itc->func.content_get = __get_usb_icon;
ad->main.usb_itc->func.state_get = NULL;
ad->main.usb_itc->func.del = NULL;
ad->main.help_itc = elm_genlist_item_class_new();
- ad->main.help_itc->item_style = "multiline/1text";
+ if (ad->main.help_itc == NULL) {
+ ERR("elm_genlist_item_class_new failed\n");
+ return;
+ }
+
+ ad->main.help_itc->item_style = MH_GENLIST_MULTILINE_TEXT_STYLE;
ad->main.help_itc->func.text_get = __get_help_label;
ad->main.help_itc->func.content_get = NULL;
ad->main.help_itc->func.state_get = NULL;
/* 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();
- ad->main.device_itc->item_style = "dialogue/2text.3/expandable";
+ if (ad->main.device_itc == NULL) {
+ ERR("elm_genlist_item_class_new failed\n");
+ 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->func.content_get = NULL;
ad->main.device_itc->func.state_get = NULL;
ad->main.device_itc->func.del = NULL;
- ad->main.device0_itc = elm_genlist_item_class_new();
- ad->main.device0_itc->item_style = "dialogue/2text.3";
- ad->main.device0_itc->func.text_get = __get_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;
-
+#ifdef TETHERING_DATA_USAGE_SUPPORT
ad->main.usage_itc = elm_genlist_item_class_new();
- ad->main.usage_itc->item_style = "dialogue/2text.3";
+ if (ad->main.usage_itc == NULL) {
+ ERR("elm_genlist_item_class_new failed\n");
+ return;
+ }
+
+ ad->main.usage_itc->item_style = MH_GENLIST_MULTILINE_TEXT_STYLE;
ad->main.usage_itc->func.text_get = __get_usage_label;
ad->main.usage_itc->func.content_get = NULL;
ad->main.usage_itc->func.state_get = NULL;
ad->main.usage_itc->func.del = NULL;
-
- ad->main.dev_itc[TETHERING_TYPE_WIFI] = elm_genlist_item_class_new();
- ad->main.dev_itc[TETHERING_TYPE_WIFI]->item_style =
- "dialogue/1text.1icon/expandable2";
- 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 =
- "dialogue/1text.1icon/expandable2";
- 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 =
- "dialogue/1text.1icon/expandable2";
- 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;
+#endif
/* End of On view's item class for genlist */
-
return;
}
static void __gl_realized(void *data, Evas_Object *obj, void *event_info)
{
+ if (data == NULL || event_info == NULL) {
+ ERR("Invalid param\n");
+ return;
+ }
+
mh_appdata_t *ad = (mh_appdata_t *)data;
Elm_Object_Item *item = (Elm_Object_Item *)event_info;
+ Evas_Object *ao;
+ Evas_Object *btn;
+ char str[MH_LABEL_LENGTH_MAX] = {0, };
+ int i = 0;
+
+ if (item == ad->main.wifi_item || item == ad->main.bt_item || item == ad->main.usb_item) {
+ ao = elm_object_item_access_object_get(item);
+ btn = elm_object_item_part_content_get(item, "on&off");
+ snprintf(str, sizeof(str), "%s, %s", "On/off button",
+ (elm_check_state_get(btn) ? "On" : "Off"));
+ elm_access_info_set(ao, ELM_ACCESS_CONTEXT_INFO, str);
+
+ if (item == ad->main.wifi_item || item == ad->main.bt_item) {
+ DBG("Wi-Fi or BT item : %p\n", item);
+ elm_object_item_signal_emit(item, "elm,state,top", "");
+ } else if (item == ad->main.usb_item) {
+ DBG("USB item\n");
+ elm_object_item_signal_emit(item, "elm,state,bottom", "");
+ }
+ } else if (item == ad->main.setup_item) {
+ DBG("setup_item\n");
+ ao = elm_object_item_access_object_get(item);
+ elm_access_info_set(ao, ELM_ACCESS_CONTEXT_INFO, "Item");
- if (item == ad->main.wifi_item || item == ad->main.bt_item || item == ad->main.device_item)
- elm_object_item_signal_emit(item, "elm,state,top", "");
- else if (item == ad->main.setup_item || item == ad->main.usage_item || item == ad->main.usb_item)
elm_object_item_signal_emit(item, "elm,state,bottom", "");
+ } else if (item == ad->main.device_item) {
+ DBG("device_item\n");
+ ao = elm_object_item_access_object_get(item);
+ snprintf(str, sizeof(str), "%s, %s", "Expandable list",
+ "Double tap to open list");
+ elm_access_info_set(ao, ELM_ACCESS_CONTEXT_INFO, str);
+ elm_object_item_signal_emit(item, "elm,state,top", "");
+ } else if (ad->main.device_item != NULL &&
+ ad->main.device_item == elm_genlist_item_parent_get(item)) {
+ DBG("device_item's child\n");
+ elm_object_item_signal_emit(item, "elm,state,center", "");
+ } else {
+ for (i = 0; i < 4; i++) {
+ if (item == ad->main.sp_item[i])
+ elm_object_item_access_unregister(item);
+ }
+ }
+#ifdef TETHERING_DATA_USAGE_SUPPORT
+ if (item == ad->main.usage_item) {
+ DBG("usage_item\n");
+ elm_object_item_signal_emit(item, "elm,state,bottom", "");
+ }
+#endif
return;
}
__MOBILE_AP_FUNC_ENTER__;
Elm_Object_Item *item = NULL;
+ int no_of_dev = 0;
__read_setting(ad);
- if (ad->main.hotspot_mode != VCONFKEY_MOBILE_HOTSPOT_MODE_NONE)
- _start_update_data_packet_usage(ad);
-
ad->main.genlist = elm_genlist_add(ad->naviframe);
elm_genlist_mode_set(ad->main.genlist, ELM_LIST_COMPRESS);
evas_object_smart_callback_add(ad->main.genlist, "realized", __gl_realized, ad);
__set_genlist_itc(ad);
- /* separator */
- item = elm_genlist_item_append(ad->main.genlist, ad->main.sp_itc, NULL,
- NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
- elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
-
item = elm_genlist_item_append(ad->main.genlist, ad->main.wifi_itc,
ad, NULL, ELM_GENLIST_ITEM_NONE,
__select_wifi_item, ad);
ad->main.wifi_item = item;
- item = elm_genlist_item_append(ad->main.genlist, ad->main.setup_itc,
- ad, NULL, ELM_GENLIST_ITEM_NONE,
- __select_setup_item, ad);
- ad->main.setup_item = item;
-
- /* separator */
- item = elm_genlist_item_append(ad->main.genlist, ad->main.sp_itc, NULL,
- NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
- elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+ if (ad->main.hotspot_mode & VCONFKEY_MOBILE_HOTSPOT_MODE_WIFI) {
+ item = elm_genlist_item_append(ad->main.genlist, ad->main.help_itc,
+ ad, NULL, ELM_GENLIST_ITEM_NONE,
+ NULL, NULL);
+ elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+ ad->main.help_item = item;
+ }
item = elm_genlist_item_append(ad->main.genlist, ad->main.bt_itc,
ad, NULL, ELM_GENLIST_ITEM_NONE,
ad, NULL, ELM_GENLIST_ITEM_NONE,
__select_usb_item, ad);
ad->main.usb_item = item;
-
- if (ad->main.hotspot_mode & VCONFKEY_MOBILE_HOTSPOT_MODE_WIFI ||
- ad->main.hotspot_mode & VCONFKEY_MOBILE_HOTSPOT_MODE_BT) {
- item = elm_genlist_item_append(ad->main.genlist, ad->main.help_itc,
- ad, NULL, ELM_GENLIST_ITEM_NONE,
- NULL, NULL);
- elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
- DBG("elm_genlist_item_append for help_itc : %x\n", item);
- ad->main.help_item = item;
+ if (_get_vconf_usb_state() != VCONFKEY_SYSMAN_USB_AVAILABLE) {
+ if (ad->main.usb_item)
+ elm_object_item_disabled_set(ad->main.usb_item, EINA_TRUE);
+ } else {
+ if (ad->main.usb_item)
+ elm_object_item_disabled_set(ad->main.usb_item, EINA_FALSE);
+ }
+ if (ad->main.hotspot_mode & (VCONFKEY_MOBILE_HOTSPOT_MODE_WIFI |
+ VCONFKEY_MOBILE_HOTSPOT_MODE_USB |
+ VCONFKEY_MOBILE_HOTSPOT_MODE_BT)) {
+#ifdef TETHERING_DATA_USAGE_SUPPORT
+ item = elm_genlist_item_append(ad->main.genlist, ad->main.usage_itc,
+ ad, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
+ elm_genlist_item_select_mode_set(item,
+ ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+ ad->main.usage_item = item;
+#endif
+ /* Insert "Connected devices" item */
+ tethering_foreach_connected_clients(ad->handle, TETHERING_TYPE_ALL,
+ _connected_clients_cb, (void *)ad);
+
+ no_of_dev = _get_list_clients_count(ad);
+ 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 {
+ 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);
+ }
+ ad->main.device_item = item;
}
- /* separator */
- item = elm_genlist_item_append(ad->main.genlist, ad->main.sp_itc, ad,
- NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
- elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+ if (ad->main.hotspot_mode & VCONFKEY_MOBILE_HOTSPOT_MODE_WIFI_AP) {
+ if (ad->main.wifi_item)
+ elm_object_item_disabled_set(ad->main.wifi_item, EINA_TRUE);
+ if (ad->main.setup_item)
+ elm_object_item_disabled_set(ad->main.setup_item, EINA_TRUE);
+ if (ad->main.bt_item)
+ elm_object_item_disabled_set(ad->main.bt_item, EINA_TRUE);
+ if (ad->main.usb_item)
+ elm_object_item_disabled_set(ad->main.usb_item, EINA_TRUE);
+ }
- item = elm_genlist_item_append(ad->main.genlist, ad->main.usage_itc,
- ad, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
- elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
- ad->main.usage_item = item;
+ __MOBILE_AP_FUNC_EXIT__;
+ return;
+}
- /* Insert "Connected devices" item */
- ap_update_data_device(ad);
+void _main_free_genlist_itc(mh_appdata_t *ad)
+{
+ __MOBILE_AP_FUNC_ENTER__;
- item = elm_genlist_item_append(ad->main.genlist, ad->main.end_sp_itc, NULL,
- NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
- elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+ if (ad == NULL)
+ return;
+ mh_main_view_t *mv = &ad->main;
+
+#ifdef TETHERING_DATA_USAGE_SUPPORT
+ _free_genlist_itc(&mv->usage_itc);
+#endif
+ _free_genlist_itc(&mv->device_itc);
+ _free_genlist_itc(&mv->device0_itc);
+ _free_genlist_itc(&mv->help_itc);
+ _free_genlist_itc(&mv->usb_itc);
+ _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;
}
-void ap_callback_del(mh_appdata_t *ad)
+void _main_callback_del(mh_appdata_t *ad)
{
__MOBILE_AP_FUNC_ENTER__;
return;
}
- evas_object_smart_callback_del(ad->main.back_btn, "clicked",
- __back_btn_cb);
- evas_object_smart_callback_del(ad->main.wifi_btn, "changed",
- __wifi_onoff_changed_cb);
- evas_object_smart_callback_del(ad->main.bt_btn, "changed",
- __bt_onoff_changed_cb);
- evas_object_smart_callback_del(ad->main.usb_btn, "changed",
- __usb_onoff_changed_cb);
+ Evas_Object *obj;
+
+ obj = elm_object_item_part_content_get(ad->main.wifi_item, "elm.swallow.end");
+ if (obj != NULL)
+ evas_object_smart_callback_del(obj, "changed", __wifi_onoff_changed_cb);
+
+ obj = elm_object_item_part_content_get(ad->main.bt_item, "elm.swallow.end");
+ if (obj != NULL)
+ evas_object_smart_callback_del(obj, "changed", __bt_onoff_changed_cb);
+
+ obj = elm_object_item_part_content_get(ad->main.usb_item, "elm.swallow.end");
+ if (obj != NULL)
+ evas_object_smart_callback_del(obj, "changed", __usb_onoff_changed_cb);
- evas_object_smart_callback_del(ad->main.genlist, "expanded", _gl_exp);
- evas_object_smart_callback_del(ad->main.genlist, "contracted", _gl_con);
evas_object_smart_callback_del(ad->main.genlist, "realized", __gl_realized);
__MOBILE_AP_FUNC_EXIT__;
}
-void ap_update_data_onoff(void* data)
+#if 0 /* device rename not supported */
+static void __ctx_move_more_ctxpopup(Evas_Object *ctx, mh_appdata_t *ad)
+{
+ Evas_Coord w;
+ Evas_Coord h;
+ int pos = -1;
+ __MOBILE_AP_FUNC_ENTER__;
+
+ elm_win_screen_size_get(ad->win, NULL, NULL, &w, &h);
+ 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;
+ }
+ __MOBILE_AP_FUNC_EXIT__;
+}
+
+static void __rotate_more_ctxpopup_cb(void *data, Evas_Object *obj, void *event_info)
{
__MOBILE_AP_FUNC_ENTER__;
+ mh_appdata_t *ad = (mh_appdata_t *)data;
+ Evas_Object *ctx = ad->ctxpopup;
+
+ __ctx_move_more_ctxpopup(ctx, ad);
+ evas_object_show(ctx);
+
__MOBILE_AP_FUNC_EXIT__;
}
-void ap_draw_contents(mh_appdata_t *ad)
+static void __dismissed_more_ctxpopup_cb(void *data, Evas_Object *obj, void *event)
{
__MOBILE_AP_FUNC_ENTER__;
+ mh_appdata_t *ad = (mh_appdata_t *)data;
+ Evas_Object *ctx = ad->ctxpopup;
+
+ if (!rotate_flag) {
+ evas_object_del(ctx);
+ ctx = NULL;
+ } else {
+ __ctx_move_more_ctxpopup(ctx, ad);
+ evas_object_show(ctx);
+ rotate_flag = EINA_FALSE;
+ }
+ __MOBILE_AP_FUNC_EXIT__;
+}
+
+static void __ctx_delete_more_ctxpopup_cb(void *data, Evas *e, Evas_Object *obj,
+ void *event_info)
+{
+ Evas_Object *navi = (Evas_Object *)data;
+ Evas_Object *ctx = obj;
+
+ if (navi == NULL) {
+ ERR("data is null\n");
+ return;
+ }
+ __MOBILE_AP_FUNC_ENTER__;
+
+ evas_object_smart_callback_del(ctx, "dismissed",
+ __dismissed_more_ctxpopup_cb);
+ evas_object_smart_callback_del(elm_object_top_widget_get(ctx),
+ "rotation,changed", __rotate_more_ctxpopup_cb);
+ evas_object_event_callback_del_full(ctx, EVAS_CALLBACK_DEL,
+ __ctx_delete_more_ctxpopup_cb, navi);
+ __MOBILE_AP_FUNC_EXIT__;
+}
+
+static void _gl_rename_device_sel(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");
+ return;
+ }
+ evas_object_del(ad->ctxpopup);
+ ad->ctxpopup = NULL;
+
+ _create_rename_device_popup((void *)ad);
+ __MOBILE_AP_FUNC_EXIT__;
+}
+
+static void __create_ctxpopup_more_button(void *data, Evas_Object *obj,
+ void *event_info)
+{
+ mh_appdata_t *ad = (mh_appdata_t *)data;
+ Evas_Object *ctxpopup = NULL;
+
+ if (ad == NULL) {
+ ERR("ad is null\n");
+ return;
+ }
+ __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);
+ elm_ctxpopup_auto_hide_disabled_set(ctxpopup, EINA_TRUE);
+
+ eext_object_event_callback_add(ctxpopup, EEXT_CALLBACK_BACK,
+ eext_ctxpopup_back_cb, ad);
+ eext_object_event_callback_add(ctxpopup, EEXT_CALLBACK_MORE,
+ eext_ctxpopup_back_cb, ad);
+ elm_object_style_set(ctxpopup, "more/default");
+ evas_object_smart_callback_add(ctxpopup, "dismissed",
+ __dismissed_more_ctxpopup_cb, ad);
+ evas_object_smart_callback_add(elm_object_top_widget_get(ctxpopup), "rotation,changed",
+ __rotate_more_ctxpopup_cb, ad);
+ evas_object_event_callback_add(ctxpopup, EVAS_CALLBACK_DEL,
+ __ctx_delete_more_ctxpopup_cb, ad->naviframe);
+
+ elm_ctxpopup_direction_priority_set(ctxpopup, ELM_CTXPOPUP_DIRECTION_UP,
+ ELM_CTXPOPUP_DIRECTION_DOWN,
+ ELM_CTXPOPUP_DIRECTION_UNKNOWN,
+ 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);
+
+ evas_object_show(ctxpopup);
+
+ ad->ctxpopup = ctxpopup;
+
+ __MOBILE_AP_FUNC_EXIT__;
+}
+#endif
+
+void _main_draw_contents(mh_appdata_t *ad)
+{
+ INFO("+\n");
+
+ Elm_Object_Item *navi_item;
+
__create_inner_contents(ad);
ad->main.back_btn = elm_button_add(ad->naviframe);
}
return;
}
-
elm_object_style_set(ad->main.back_btn, "naviframe/back_btn/default");
- evas_object_smart_callback_add(ad->main.back_btn, "clicked",
- __back_btn_cb, ad);
- elm_naviframe_item_push(ad->naviframe,
- _("IDS_MOBILEAP_BODY_TETHERING"),
- ad->main.back_btn, NULL, ad->main.genlist, NULL);
+ 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
- __MOBILE_AP_FUNC_EXIT__;
+ 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);
+
+ navi_item = elm_naviframe_item_push(ad->naviframe, IDS_TETH,
+ ad->main.back_btn, NULL, ad->main.genlist, NULL);
+ elm_object_item_domain_text_translatable_set(navi_item, PKGNAME, EINA_TRUE);
+
+ elm_naviframe_item_pop_cb_set(navi_item, (Elm_Naviframe_Item_Pop_Cb)__back_btn_cb, (void *)ad);
+ ad->navi_item = navi_item;
+ g_ad = ad;
+ INFO("-\n");
return;
}