Add TIZEN_FEATURE_EMULATOR feature for emulator 67/108167/2
authorSeonah Moon <seonah1.moon@samsung.com>
Tue, 3 Jan 2017 07:35:12 +0000 (16:35 +0900)
committerSeonah Moon <seonah1.moon@samsung.com>
Fri, 13 Jan 2017 09:01:56 +0000 (18:01 +0900)
Change-Id: I028435bb44f473ebb09fd43b035dd28bf781293a
Signed-off-by: Seonah Moon <seonah1.moon@samsung.com>
CMakeLists.txt
include/mh_common_utility.h
include/mh_view_main.h
include/mobile_hotspot.h
packaging/ug-setting-mobileap-efl.spec
src/mh_connected_client.c
src/mh_func_onoff.c
src/mh_main_ug.c
src/mh_popup.c
src/mh_view_main.c
src/mh_view_wifi_setup.c

index 8ada2f1..ec25932 100755 (executable)
@@ -24,6 +24,10 @@ IF (TIZEN_FEATURE_DUALSIM_ENABLE)
        ADD_DEFINITIONS(-DTIZEN_FEATURE_DUALSIM_ENABLE)
 ENDIF (TIZEN_FEATURE_DUALSIM_ENABLE)
 
+IF (TIZEN_FEATURE_EMULATOR)
+       ADD_DEFINITIONS(-DTIZEN_FEATURE_EMULATOR)
+ENDIF (TIZEN_FEATURE_EMULATOR)
+
 INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/include)
 
 SET(dependents "elementary evas ui-gadget-1 capi-network-tethering capi-network-connection capi-network-wifi notification aul bundle efl-extension dpm")
index b065cd5..835160d 100755 (executable)
@@ -70,6 +70,11 @@ bool _get_vconf_prev_wifi_state();
 void _handle_network_cellular_state_changed_cb(keynode_t *key, void *data);
 void _handle_mobileap_syspopup_popup_response(keynode_t *key, void *data);
 
+#ifdef TIZEN_FEATURE_EMULATOR
+time_t _get_emul_timestamp(tethering_type_e);
+void __update_emul_clients_genlist(mh_appdata_t *ad);
+#endif
+
 #ifdef __cplusplus
 }
 #endif
index a6f1ebc..cde183d 100755 (executable)
@@ -62,6 +62,13 @@ void _add_connected_clients(mh_appdata_t *ad);
 void _ctxpopup_more_button_callback_add(mh_appdata_t *ad);
 void _ctxpopup_more_button_callback_del(mh_appdata_t *ad);
 
+#ifdef TIZEN_FEATURE_EMULATOR
+tethering_type_e _get_updated_type(void);
+tethering_type_e _get_selected_type(void);
+Eina_Bool _get_selected_state(void);
+void _update_emul_main_view(mh_appdata_t *ad, tethering_type_e type, Eina_Bool state);
+#endif
+
 #ifdef __cplusplus
 }
 #endif
index 36ca6ff..474474c 100755 (executable)
@@ -154,6 +154,9 @@ typedef struct ap_app_main {
        Elm_Object_Item         *popup_check_item;
        Elm_Object_Item         *dev_item;
        Elm_Object_Item         *station_items[MAX_CONNECTED_STA];
+#ifdef TIZEN_FEATURE_EMULATOR
+       Elm_Object_Item         *emul_station_items[TETHERING_TYPE_MAX];
+#endif
 
        int no_of_clients;
 #ifdef TETHERING_DATA_USAGE_SUPPORT
index afc61ee..9e0fc89 100755 (executable)
@@ -33,6 +33,9 @@ Tethering UI Gadget Library
 
 %build
 cmake -DCMAKE_INSTALL_PREFIX="%{_ugdir}"  \
+%if "%{?_with_emulator}" == "1"
+       -DTIZEN_FEATURE_EMULATOR=1 \
+%endif
        .
 
 make %{?_smp_mflags}
index 49425f4..95982f0 100755 (executable)
 #include "mobile_hotspot.h"
 #include "mh_string.h"
 
+#ifdef TIZEN_FEATURE_EMULATOR
+static int emul_no_of_clients;
+static time_t emul_timestamp[TETHERING_TYPE_MAX];
+#endif
+
 static void __remove_conn_clients(mh_appdata_t *ad)
 {
        __MOBILE_AP_FUNC_ENTER__;
@@ -138,6 +143,7 @@ static char *__gl_get_dev_label(void *data, Evas_Object *obj, const char *part)
 {
        __MOBILE_AP_FUNC_ENTER__;
 
+#ifndef TIZEN_FEATURE_EMULATOR
        tethering_client_h client = (tethering_client_h)data;
        char *name = NULL;
        char *dev_name = NULL;
@@ -165,7 +171,29 @@ static char *__gl_get_dev_label(void *data, Evas_Object *obj, const char *part)
                tethering_client_get_time(client, &tm);
                return __get_diff_time(tm);
        }
+#else
+       tethering_type_e selected_type = _get_selected_type();
+       tethering_type_e updated_type = _get_updated_type();
+       if (obj == NULL) {
+               ERR("Invalid param\n");
+               return NULL;
+       }
 
+       if (!strcmp("elm.text", part)) {
+               if (selected_type == TETHERING_TYPE_WIFI)
+                       return strdup("wifi_tethering_client");
+               else if (selected_type == TETHERING_TYPE_BT)
+                       return strdup("bt_tethering_client");
+               else
+                       return strdup("usb_tethering_client");
+       } else if (!strcmp("elm.text.sub", part)) {
+               if (updated_type == TETHERING_TYPE_ALL)
+                       return __get_diff_time(emul_timestamp[selected_type]);
+               else
+                       return __get_diff_time(emul_timestamp[updated_type]);
+       }
+
+#endif
        __MOBILE_AP_FUNC_EXIT__;
        return NULL;
 }
@@ -256,6 +284,58 @@ static void __scroll_stop_cb(void *data, Evas_Object *obj, void *event_info)
        __MOBILE_AP_FUNC_EXIT__;
 }
 
+#ifdef TIZEN_FEATURE_EMULATOR
+void __update_emul_clients_genlist(mh_appdata_t *ad)
+{
+       __MOBILE_AP_FUNC_ENTER__;
+
+       if (ad == NULL) {
+               ERR("ad is NULL\n");
+               return;
+       }
+
+       Elm_Object_Item *item = NULL;
+       mh_main_view_t *mv = &ad->main;
+       tethering_type_e selected_type = _get_selected_type();
+       Eina_Bool selected_state = _get_selected_state();
+
+       __set_genlist_itc(ad);
+
+
+       if (selected_state && !mv->emul_station_items[selected_type]) {
+               mv->emul_station_items[selected_type] = elm_genlist_item_append(mv->genlist,
+                       mv->dev_itc[selected_type],
+                       NULL, NULL, ELM_GENLIST_ITEM_NONE,
+                       NULL, NULL);
+               time(&emul_timestamp[selected_type]);
+               emul_no_of_clients++;
+       } else {
+               if (mv->emul_station_items[selected_type]) {
+                       elm_object_item_del(mv->emul_station_items[selected_type]);
+                       mv->emul_station_items[selected_type] = NULL;
+                       emul_timestamp[selected_type] = 0;
+                       emul_no_of_clients--;
+               }
+       }
+
+       elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+
+       evas_object_smart_callback_add(mv->genlist, "scroll,anim,start",
+                       __scroll_start_cb, ad);
+       evas_object_smart_callback_add(mv->genlist, "scroll,drag,start",
+                       __scroll_start_cb, ad);
+       evas_object_smart_callback_add(mv->genlist, "scroll,anim,stop",
+                       __scroll_stop_cb, ad);
+       evas_object_smart_callback_add(mv->genlist, "scroll,drag,stop",
+                       __scroll_stop_cb, ad);
+
+       if (emul_no_of_clients)
+               _start_update_device_conn_time(ad);
+       else
+               _stop_update_device_conn_time(ad);
+}
+#endif
+
 static void __append_clients_genlist(mh_appdata_t *ad)
 {
        __MOBILE_AP_FUNC_ENTER__;
@@ -314,7 +394,6 @@ void _add_connected_clients(mh_appdata_t *ad)
                return;
        }
 
-
        __append_clients_genlist(ad);
 
        DBG("-\n");
index f8bb989..0fe2376 100644 (file)
@@ -667,11 +667,13 @@ int _handle_wifi_onoff_change(mh_appdata_t *ad)
                        _prepare_popup(MH_POPUP_WIFI_OFF, STR_CLOSE_INTERNET_Q);
                        _create_popup(ad);
                } else {
+#ifndef TIZEN_FEATURE_EMULATOR
                        ret = tethering_disable(ad->handle, TETHERING_TYPE_WIFI);
                        if (ret != TETHERING_ERROR_NONE) {
                                ERR("wifi tethering off is failed : %d\n", ret);
                                return -1;
                        }
+#endif
                        _send_signal_qp(QP_SIGNAL_PROGRESS_OFF);
                }
                return 0;
@@ -702,11 +704,13 @@ int _handle_bt_onoff_change(mh_appdata_t *ad)
 
        /* Turn off Bluetooth tethering */
        if (ad->main.hotspot_mode & VCONFKEY_MOBILE_HOTSPOT_MODE_BT) {
+#ifndef TIZEN_FEATURE_EMULATOR
                ret = tethering_disable(ad->handle, TETHERING_TYPE_BT);
                if (ret) {
                        ERR("Error disable bt tethering [%d]\n", ret);
                        return -1;
                }
+#endif
                return 0;
        }
 
@@ -735,11 +739,13 @@ int _handle_usb_onoff_change(mh_appdata_t *ad)
 
        /* Turn off USB tethering */
        if (ad->main.hotspot_mode & VCONFKEY_MOBILE_HOTSPOT_MODE_USB) {
+#ifndef TIZEN_FEATURE_EMULATOR
                ret = tethering_disable(ad->handle, TETHERING_TYPE_USB);
                if (ret) {
                        ERR("Error disable usb tethering : %d\n", ret);
                        return -1;
                }
+#endif
                return 0;
        }
 
index 6552181..304b373 100755 (executable)
@@ -186,12 +186,14 @@ static void *on_create(ui_gadget_h ug, enum ug_mode mode,
        ecore_imf_init();
 
        ret = tethering_create(&ad->handle);
+#ifndef TIZEN_FEATURE_EMULATOR
        if (ret != TETHERING_ERROR_NONE) {
                ERR("tethering_create is failed : %d\n", ret);
                free(ad);
                ugd->ad = NULL;
                return NULL;
        }
+#endif
 
        ad->win = ug_get_parent_layout(ug);
        if (!ad->win) {
index 0774778..397474b 100755 (executable)
@@ -184,9 +184,76 @@ static void __handle_popup_resp(void *data, bool response)
        __MOBILE_AP_FUNC_EXIT__;
 }
 
+#ifdef TIZEN_FEATURE_EMULATOR
+static void __handle_emul_popup_resp(void *data, bool response)
+{
+       __MOBILE_AP_FUNC_ENTER__;
+
+       if (data == NULL) {
+               ERR("The param is NULL\n");
+               return;
+       }
+
+       mh_appdata_t *ad = (mh_appdata_t *)data;
+       Eina_Bool state = 0;
+
+       if (ad->popup_checkbox) {
+               state = elm_check_state_get(ad->popup_checkbox);
+               evas_object_del(ad->popup_checkbox);
+               ad->popup_checkbox = NULL;
+               DBG("Checkbox status is = %d\n", state);
+       }
+       if (ad->popup) {
+               evas_object_del(ad->popup);
+               ad->popup = NULL;
+       }
+
+       if (response == true) {
+               switch (popup_type) {
+               case MH_POPUP_WIFI_ON_CHECKBOX:
+                       if (state)
+                               _set_checkbox_status(TETHERING_TYPE_WIFI, 1);
+                       ad->is_wifi_teth_enabling = false;
+                       break;
+
+               case MH_POPUP_BT_ON_CHECKBOX:
+                       if (state)
+                               _set_checkbox_status(TETHERING_TYPE_BT, 1);
+                       ad->is_bt_teth_enabling = false;
+                       break;
+
+               default:
+                       ERR("Unknown popup_type : %d\n", popup_type);
+                       break;
+               }
+       } else {
+               switch (popup_type) {
+               case MH_POPUP_WIFI_ON_CHECKBOX:
+                       _update_tethering_enabling_item(ad, TETHERING_TYPE_WIFI, MH_STATE_NONE);
+                       _wifi_tethering_checkbox_popup_status_set(false);
+                       break;
+
+               case MH_POPUP_BT_ON_CHECKBOX:
+                       _update_tethering_enabling_item(ad, TETHERING_TYPE_BT, MH_STATE_NONE);
+                       break;
+
+               default:
+                       ERR("Unknown popup_type : %d\n", popup_type);
+                       break;
+               }
+       }
+
+       __MOBILE_AP_FUNC_EXIT__;
+}
+#endif
+
 void _teth_on(mh_appdata_t *ad)
 {
+#ifndef TIZEN_FEATURE_EMULATOR
        __handle_popup_resp(ad, true);
+#else
+       __handle_emul_popup_resp(ad, true);
+#endif
 }
 
 static void __popup_yes_btn_clicked_cb(void *data, Evas_Object *obj, void *event_info)
@@ -196,7 +263,14 @@ static void __popup_yes_btn_clicked_cb(void *data, Evas_Object *obj, void *event
                return;
        }
 
+#ifndef TIZEN_FEATURE_EMULATOR
        __handle_popup_resp(data, true);
+#else
+       mh_appdata_t *ad = (mh_appdata_t *)data;
+
+       __handle_emul_popup_resp(data, true);
+       _update_emul_main_view(ad, _get_selected_type(), _get_selected_state());
+#endif
 }
 
 static void __popup_no_btn_clicked_cb(void *data, Evas_Object *obj, void *event_info)
@@ -206,7 +280,11 @@ static void __popup_no_btn_clicked_cb(void *data, Evas_Object *obj, void *event_
                return;
        }
 
+#ifndef TIZEN_FEATURE_EMULATOR
        __handle_popup_resp(data, false);
+#else
+       __handle_emul_popup_resp(data, false);
+#endif
 }
 
 static void __popup_no_btn_mouse_event_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info)
@@ -219,7 +297,11 @@ static void __popup_no_btn_mouse_event_cb(void *data, Evas *evas, Evas_Object *o
        Evas_Event_Mouse_Up *ev = event_info;
 
        if (ev->button == 3)
+#ifndef TIZEN_FEATURE_EMULATOR
                __handle_popup_resp(data, false);
+#else
+               __handle_emul_popup_resp(data, false);
+#endif
 }
 
 static void __popup_block_clicked_cb(void *data, Evas_Object *obj, void *event_info)
@@ -239,7 +321,11 @@ static void __popup_hide_finished_cb(void *data, Evas_Object *obj, void *event_i
                return;
        }
 
+#ifndef TIZEN_FEAUTRE_EMULATOR
        __handle_popup_resp(data, false);
+#else
+       __handle_emul_popup_resp(data, false);
+#endif
 }
 
 void _prepare_popup_with_content(int type, Evas_Object *obj)
index c1403dc..5560fb6 100755 (executable)
@@ -23,6 +23,7 @@
 #include <dpm/restriction.h>
 
 #include "mh_view_main.h"
+#include "mh_common_utility.h"
 #include "mh_popup.h"
 #include "mh_string.h"
 
@@ -38,6 +39,27 @@ void _genlist_update_device_item(mh_appdata_t *ad);
 mh_appdata_t *g_ad = NULL;
 #define UPDATE_INTERVAL 1
 
+#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)
+{
+       return updated_type;
+}
+
+tethering_type_e _get_selected_type(void)
+{
+       return selected_type;
+}
+
+Eina_Bool _get_selected_state(void)
+{
+       return selected_state;
+}
+#endif
+
 void _list_connected_dev(mh_appdata_t *ap)
 {
        __MOBILE_AP_FUNC_ENTER__;
@@ -129,8 +151,37 @@ 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__;
@@ -554,6 +605,99 @@ 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;
@@ -606,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;
@@ -661,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;
@@ -714,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;
index ddb0234..36ab0a5 100755 (executable)
@@ -48,6 +48,7 @@ static void __hide_btn_changed_cb(void *data, Evas_Object *obj, void *event_info
        __MOBILE_AP_FUNC_EXIT__;
 }
 
+#ifndef TIZEN_FEATURE_EMULATOR
 static bool __save_hide_btn_change(mh_appdata_t *ad)
 {
        __MOBILE_AP_FUNC_ENTER__;
@@ -69,6 +70,7 @@ static bool __save_hide_btn_change(mh_appdata_t *ad)
        __MOBILE_AP_FUNC_EXIT__;
        return true;
 }
+#endif
 
 static void __security_btn_changed_cb(void *data, Evas_Object *obj, void *event_info)
 {
@@ -128,6 +130,7 @@ static void __check_box_changed_cb(void *data, Evas_Object *obj, void *event_inf
        return;
 }
 
+#ifndef TIZEN_FEATURE_EMULATOR
 static bool __save_security_btn_change(mh_appdata_t *ad)
 {
        __MOBILE_AP_FUNC_ENTER__;
@@ -148,6 +151,7 @@ static bool __save_security_btn_change(mh_appdata_t *ad)
        __MOBILE_AP_FUNC_EXIT__;
        return true;
 }
+#endif
 
 static char *__gl_device_name_title_label_get(void *data, Evas_Object *obj, const char *part)
 {
@@ -287,6 +291,7 @@ static Evas_Object *__gl_security_icon_get(void *data, Evas_Object *obj,
        return btn;
 }
 
+#ifndef TIZEN_FEATURE_EMULATOR
 static bool __save_wifi_passphrase(mh_appdata_t *ad)
 {
        __MOBILE_AP_FUNC_ENTER__;
@@ -308,6 +313,7 @@ static bool __save_wifi_passphrase(mh_appdata_t *ad)
        __MOBILE_AP_FUNC_EXIT__;
        return true;
 }
+#endif
 
 static void __pw_entry_changed_cb(void *data, Evas_Object *obj,
                                void *event_info)
@@ -798,18 +804,24 @@ static gboolean _update_tethering_param(gpointer data)
 {
        __MOBILE_AP_FUNC_ENTER__;
        mh_appdata_t *ad = (mh_appdata_t *)data;
+#ifndef TIZEN_FEATURE_EMULATOR
        int ret;
+#endif
 
        if (ad == NULL) {
                ERR("Invalid parameter\n");
                return FALSE;
        }
 
+#ifndef TIZEN_FEATURE_EMULATOR
        /* reload wifi settings */
        ret = tethering_wifi_reload_settings(ad->handle, __settings_reloaded_cb,
                        (void *)ad);
        if (ret != TETHERING_ERROR_NONE)
                ERR("reload_configuration is failed : %d\n", ret);
+#else
+       __settings_reloaded_cb(TETHERING_ERROR_NONE, (void *)ad);
+#endif
 
        __MOBILE_AP_FUNC_EXIT__;
        return FALSE;
@@ -825,8 +837,9 @@ static void __save_btn_cb(void *data, Evas_Object *object, void *event_info)
 
        mh_appdata_t *ad = (mh_appdata_t *)data;
        mh_wifi_setting_view_t *st = &ad->setup;
-       bool ret = false;
        bool is_setting_changed = false;
+#ifndef TIZEN_FEATURE_EMULATOR
+       bool ret = false;
 
        /* handle hide button change */
        if (st->visibility != st->visibility_new) {
@@ -869,7 +882,16 @@ static void __save_btn_cb(void *data, Evas_Object *object, void *event_info)
                        }
                }
        }
+#else
+       is_setting_changed = true;
+       ad->setup.visibility = ad->setup.visibility_new;
+       ad->setup.security_type = ad->setup.security_type_new;
+       if (strcmp(st->wifi_passphrase, st->wifi_passphrase_new)) {
+               g_strlcpy(st->wifi_passphrase, st->wifi_passphrase_new,
+                               sizeof(st->wifi_passphrase));
+       }
 
+#endif
        if (is_setting_changed) {
                _update_wifi_item(ad, MH_STATE_PROCESS);