Set additional Wi-Fi Direct status value on vconf 65/91365/1
authorYu Jiung <jiung.yu@samsung.com>
Fri, 7 Oct 2016 07:06:55 +0000 (16:06 +0900)
committerYu Jiung <jiung.yu@samsung.com>
Fri, 7 Oct 2016 07:07:09 +0000 (16:07 +0900)
Change-Id: I88cb1221f7f7e3c20536a87dfd2f0eb5c28f9a84
Signed-off-by: Yu jiung <jiung.yu@samsung.com>
packaging/wifi-direct-manager.spec
src/wifi-direct-event.c
src/wifi-direct-manager.c
src/wifi-direct-session.c
src/wifi-direct-util.c

index 883af52..23e943d 100644 (file)
@@ -2,7 +2,7 @@
 
 Name:          wifi-direct-manager
 Summary:       Wi-Fi Direct manger
-Version:       1.2.208
+Version:       1.2.209
 Release:       1
 Group:      Network & Connectivity/Wireless
 License:    Apache-2.0
index 75eaa3b..252ca4d 100644 (file)
@@ -1032,6 +1032,7 @@ void wfd_event_invitation_req(wfd_oem_event_s *event)
        wfd_session_timer(session, 1);
 
        wfd_state_set(manager, WIFI_DIRECT_STATE_CONNECTING);
+       wfd_util_set_wifi_direct_state(WIFI_DIRECT_STATE_CONNECTING);
 
        res = wfd_session_start(session);
        if (res < 0) {
index 43f26de..84dd488 100644 (file)
@@ -614,6 +614,7 @@ int wfd_manager_activate(wfd_manager_s *manager)
 
        wfd_state_get(manager, &prev_state);
        wfd_state_set(manager, WIFI_DIRECT_STATE_ACTIVATING);
+       wfd_util_set_wifi_direct_state(WIFI_DIRECT_STATE_ACTIVATING);
 #if defined(TIZEN_WLAN_CONCURRENT_ENABLE)
        res = wfd_util_check_wifi_state();
        if (res < 0) {
@@ -625,6 +626,7 @@ int wfd_manager_activate(wfd_manager_s *manager)
        if (res < 0) {
                WDS_LOGE("Failed to activate");
                wfd_state_set(manager, prev_state);
+               wfd_util_set_wifi_direct_state(prev_state);
                return WIFI_DIRECT_ERROR_OPERATION_FAILED;
        }
 #if defined(TIZEN_WLAN_CONCURRENT_ENABLE)
@@ -633,6 +635,7 @@ int wfd_manager_activate(wfd_manager_s *manager)
                if (res < 0) {
                        WDS_LOGE("Failed to activate");
                        wfd_state_set(manager, prev_state);
+                       wfd_util_set_wifi_direct_state(prev_state);
                        return WIFI_DIRECT_ERROR_OPERATION_FAILED;
                }
        }
@@ -675,6 +678,7 @@ int wfd_manager_deactivate(wfd_manager_s *manager)
 
        wfd_state_get(manager, &prev_state);
        wfd_state_set(manager, WIFI_DIRECT_STATE_DEACTIVATING);
+       wfd_util_set_wifi_direct_state(WIFI_DIRECT_STATE_DEACTIVATING);
 
 #ifdef TIZEN_FEATURE_WIFI_DISPLAY
        res = wfd_oem_miracast_init(manager->oem_ops, false);
@@ -700,6 +704,7 @@ int wfd_manager_deactivate(wfd_manager_s *manager)
                if (res < 0) {
                        WDS_LOGE("Failed to deactivate");
                        wfd_state_set(manager, prev_state);
+                       wfd_util_set_wifi_direct_state(prev_state);
                        return WIFI_DIRECT_ERROR_OPERATION_FAILED;
                }
 #if defined(TIZEN_WLAN_CONCURRENT_ENABLE) && defined(TIZEN_PROFILE_MOBILE)
@@ -709,6 +714,7 @@ int wfd_manager_deactivate(wfd_manager_s *manager)
                if (res < 0) {
                        WDS_LOGE("Failed to deactivate");
                        wfd_state_set(manager, prev_state);
+                       wfd_util_set_wifi_direct_state(prev_state);
                        return WIFI_DIRECT_ERROR_OPERATION_FAILED;
                }
                WDS_LOGE("Do not need to deactivate Wi-Fi");
@@ -788,6 +794,7 @@ int wfd_manager_connect(wfd_manager_s *manager, unsigned char *peer_addr)
                return WIFI_DIRECT_ERROR_OPERATION_FAILED;
        }
        wfd_state_set(manager, WIFI_DIRECT_STATE_CONNECTING);
+       wfd_util_set_wifi_direct_state(WIFI_DIRECT_STATE_CONNECTING);
 
        __WDS_LOG_FUNC_EXIT__;
        return WIFI_DIRECT_ERROR_NONE;
@@ -840,6 +847,7 @@ int wfd_manager_asp_connect_session(wfd_manager_s *manager, void *params)
        }
 
        wfd_state_set(manager, WIFI_DIRECT_STATE_CONNECTING);
+       wfd_util_set_wifi_direct_state(WIFI_DIRECT_STATE_CONNECTING);
 
        __WDS_LOG_FUNC_EXIT__;
        return WIFI_DIRECT_ERROR_NONE;
@@ -893,6 +901,7 @@ int wfd_manager_asp_confirm_session(wfd_manager_s *manager, void *params, int co
                return WIFI_DIRECT_ERROR_OPERATION_FAILED;
        }
        wfd_state_set(manager, WIFI_DIRECT_STATE_CONNECTING);
+       wfd_util_set_wifi_direct_state(WIFI_DIRECT_STATE_CONNECTING);
 
        __WDS_LOG_FUNC_EXIT__;
        return WIFI_DIRECT_ERROR_NONE;
@@ -968,6 +977,7 @@ int wfd_manager_accept_connection(wfd_manager_s *manager, unsigned char *peer_ad
                return WIFI_DIRECT_ERROR_OPERATION_FAILED;
        }
        wfd_state_set(manager, WIFI_DIRECT_STATE_CONNECTING);
+       wfd_util_set_wifi_direct_state(WIFI_DIRECT_STATE_CONNECTING);
 
        __WDS_LOG_FUNC_EXIT__;
        return WIFI_DIRECT_ERROR_NONE;
@@ -999,10 +1009,12 @@ int wfd_manager_cancel_connection(wfd_manager_s *manager, unsigned char *peer_ad
        group = (wfd_group_s*) manager->group;
        if (group)
                wfd_group_remove_member(group, peer_addr);
+       else
+               manager->local->dev_role = WFD_DEV_ROLE_NONE;
 
        if (manager->local->dev_role == WFD_DEV_ROLE_GO) {
                wfd_state_set(manager, WIFI_DIRECT_STATE_GROUP_OWNER);
-               if (group && group->member_count)
+               if (group->member_count)
                        wfd_util_set_wifi_direct_state(WIFI_DIRECT_STATE_GROUP_OWNER);
        } else {
                wfd_state_set(manager, WIFI_DIRECT_STATE_ACTIVATED);
@@ -1091,6 +1103,7 @@ int wfd_manager_disconnect(wfd_manager_s *manager, unsigned char *peer_addr)
        }
 
        wfd_state_set(manager, WIFI_DIRECT_STATE_DISCONNECTING);
+       wfd_util_set_wifi_direct_state(WIFI_DIRECT_STATE_DISCONNECTING);
 
        if (manager->local->dev_role == WFD_DEV_ROLE_GO) {
                if (peer->is_p2p)
@@ -1156,6 +1169,7 @@ int wfd_manager_disconnect_all(wfd_manager_s *manager)
        }
 
        wfd_state_set(manager, WIFI_DIRECT_STATE_DISCONNECTING);
+       wfd_util_set_wifi_direct_state(WIFI_DIRECT_STATE_DISCONNECTING);
 
        res = wfd_oem_destroy_group(manager->oem_ops, group->ifname);
        if (res < 0) {
index c45c198..156febe 100644 (file)
@@ -938,6 +938,7 @@ int wfd_session_process_event(wfd_manager_s *manager, wfd_oem_event_s *event)
                manager->local->wps_mode = event->wps_mode;
 
                wfd_state_set(manager, WIFI_DIRECT_STATE_CONNECTING);
+               wfd_util_set_wifi_direct_state(WIFI_DIRECT_STATE_CONNECTING);
 
                if (session->type == SESSION_TYPE_INVITE) {
                        WDS_LOGD("Start WPS corresponding to OEM event [%d]", event->event_id);
@@ -1051,6 +1052,7 @@ int wfd_session_process_event(wfd_manager_s *manager, wfd_oem_event_s *event)
                        session->state = SESSION_STATE_GO_NEG;
                        wfd_session_timer(session, 1);
                        wfd_state_set(manager, WIFI_DIRECT_STATE_CONNECTING);
+                       wfd_util_set_wifi_direct_state(WIFI_DIRECT_STATE_CONNECTING);
 
                        char peer_mac_address[MACSTR_LEN+1] = {0, };
                        g_snprintf(peer_mac_address, MACSTR_LEN, MACSTR, MAC2STR(event->dev_addr));
index 7ac97b7..feff461 100644 (file)
@@ -569,6 +569,14 @@ int wfd_util_set_wifi_direct_state(int state)
                vconf_state = VCONFKEY_WIFI_DIRECT_GROUP_OWNER;
        else if (state == WIFI_DIRECT_STATE_DISCOVERING)
                vconf_state = VCONFKEY_WIFI_DIRECT_DISCOVERING;
+       else if (state == WIFI_DIRECT_STATE_DEACTIVATING)
+               vconf_state = VCONFKEY_WIFI_DIRECT_DEACTIVATING;
+       else if (state == WIFI_DIRECT_STATE_ACTIVATING)
+               vconf_state = VCONFKEY_WIFI_DIRECT_ACTIVATING;
+       else if (state == WIFI_DIRECT_STATE_CONNECTING)
+               vconf_state = VCONFKEY_WIFI_DIRECT_CONNECTING;
+       else if (state == WIFI_DIRECT_STATE_DISCONNECTING)
+               vconf_state = VCONFKEY_WIFI_DIRECT_DISCONNECTING;
        else {
                WDS_LOGE("This state cannot be set as wifi_direct vconf state[%d]", state);
                return 0;