Fix bug N_SE-34398(Wrong PIN message not displayed)
[apps/native/ug-wifi-direct.git] / popup-wifidirect / src / wfd-app-client.c
index 41e258b..d59b00c 100755 (executable)
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
+
+#include <notification.h>
+#include <vconf.h>
+
 #include "wfd-app.h"
 #include "wfd-app-util.h"
 #include "wfd-app-strings.h"
-#include <vconf.h>
 
 /**
  *     This function let the app make a callback for connected peer
@@ -478,7 +481,8 @@ void _cb_connection(int error_code, wifi_direct_connection_state_e connection_st
        }
 
        /* when disconnection, mac_address is empty */
-       if (connection_state <= WIFI_DIRECT_CONNECTION_RSP) {
+       if (connection_state <= WIFI_DIRECT_CONNECTION_RSP ||
+               connection_state == WIFI_DIRECT_INVITATION_REQ) {
                memset(ad->peer_mac, 0, sizeof(ad->peer_mac));
                memset(ad->peer_name, 0, sizeof(ad->peer_name));
                strncpy(ad->peer_mac, mac_address, strlen(mac_address));
@@ -512,14 +516,15 @@ void _cb_connection(int error_code, wifi_direct_connection_state_e connection_st
 
                        /* tickernoti popup */
                        snprintf(msg, WFD_POP_STR_MAX_LEN, IDS_WFD_POP_CONNECTED, ad->peer_name);
-                       wfd_tickernoti_popup(msg);
+                       notification_status_message_post(msg);
+               } else if (error_code == WIFI_DIRECT_ERROR_AUTH_FAILED) {
+                       WDPOP_LOGD(
+                                       "Error Code - WIFI_DIRECT_ERROR_AUTH_FAILED\n");
+                       notification_status_message_post(_("IDS_WFD_POP_PIN_INVALID"));
                } else {
                        if (error_code == WIFI_DIRECT_ERROR_CONNECTION_TIME_OUT) {
                                WDPOP_LOGD(
                                                "Error Code - WIFI_DIRECT_ERROR_CONNECTION_TIME_OUT\n");
-                       } else if (error_code == WIFI_DIRECT_ERROR_AUTH_FAILED) {
-                               WDPOP_LOGD(
-                                               "Error Code - WIFI_DIRECT_ERROR_AUTH_FAILED\n");
                        } else if (error_code == WIFI_DIRECT_ERROR_CONNECTION_FAILED) {
                                WDPOP_LOGD(
                                                "Error Code - WIFI_DIRECT_ERROR_CONNECTION_FAILED\n");
@@ -527,7 +532,7 @@ void _cb_connection(int error_code, wifi_direct_connection_state_e connection_st
 
                        /* tickernoti popup */
                        snprintf(msg, WFD_POP_STR_MAX_LEN, IDS_WFD_POP_CONNECT_FAILED, ad->peer_name);
-                       wfd_tickernoti_popup(msg);
+                       notification_status_message_post(msg);
                }
        }
        break;
@@ -547,9 +552,9 @@ void _cb_connection(int error_code, wifi_direct_connection_state_e connection_st
                if (wps_mode == WIFI_DIRECT_WPS_TYPE_PBC) {
                        WDPOP_LOGD(
                                        "wps_config is WIFI_DIRECT_WPS_TYPE_PBC. Ignore it..\n");
-               } else if (wps_mode == WIFI_DIRECT_WPS_TYPE_PIN_KEYPAD) {
+               } else if (wps_mode == WIFI_DIRECT_WPS_TYPE_PIN_DISPLAY) {
                        char *pin;
-                       WDPOP_LOGD( "wps_config is WIFI_DIRECT_WPS_TYPE_PIN_KEYPAD\n");
+                       WDPOP_LOGD( "wps_config is WIFI_DIRECT_WPS_TYPE_PIN_DISPLAY\n");
 
                        if (wifi_direct_generate_wps_pin() != WIFI_DIRECT_ERROR_NONE) {
                                WDPOP_LOGD( "wifi_direct_generate_wps_pin() is failed\n");
@@ -568,8 +573,8 @@ void _cb_connection(int error_code, wifi_direct_connection_state_e connection_st
                        WDPOP_LOGD( "pin=[%s]\n", ad->pin_number);
 
                        wfd_prepare_popup(WFD_POP_PROG_CONNECT_WITH_PIN, NULL);
-               } else if (wps_mode == WIFI_DIRECT_WPS_TYPE_PIN_DISPLAY) {
-                       WDPOP_LOGD( "wps_config is WIFI_DIRECT_WPS_TYPE_PIN_DISPLAY\n");
+               } else if (wps_mode == WIFI_DIRECT_WPS_TYPE_PIN_KEYPAD) {
+                       WDPOP_LOGD( "wps_config is WIFI_DIRECT_WPS_TYPE_PIN_KEYPAD\n");
                        wfd_prepare_popup(WFD_POP_PROG_CONNECT_WITH_KEYPAD, (void *) NULL);
                } else {
                        WDPOP_LOGD( "wps_config is unkown!\n");
@@ -621,7 +626,7 @@ void _cb_connection(int error_code, wifi_direct_connection_state_e connection_st
 
                /* tickernoti popup */
                snprintf(msg, WFD_POP_STR_MAX_LEN, IDS_WFD_POP_DISCONNECTED, ad->peer_name);
-               wfd_tickernoti_popup(msg);
+               notification_status_message_post(msg);
        }
        break;
 
@@ -635,15 +640,30 @@ void _cb_connection(int error_code, wifi_direct_connection_state_e connection_st
 
                /* tickernoti popup */
                snprintf(msg, WFD_POP_STR_MAX_LEN, IDS_WFD_POP_DISCONNECTED, ad->peer_name);
-               wfd_tickernoti_popup(msg);
+               notification_status_message_post(msg);
        }
        break;
        case WIFI_DIRECT_CONNECTION_IN_PROGRESS:
        {
                WDPOP_LOGD( "event ------------------ WIFI_DIRECT_CONNECTION_IN_PROGRESS\n");
                /* tickernoti popup */
-               wfd_tickernoti_popup(_("IDS_WFD_POP_CONNECTING"));
+               notification_status_message_post(_("IDS_WFD_POP_CONNECTING"));
+       }
+       break;
+       case WIFI_DIRECT_INVITATION_REQ:
+       {
+               WDPOP_LOGD( "event ------------------ WIFI_DIRECT_INVITATION_REQ\n");
+               bool auto_connection_mode = FALSE;
+
+               wifi_direct_is_autoconnection_mode(&auto_connection_mode);
+               if (auto_connection_mode == TRUE) {
+                       result = wifi_direct_connect(ad->peer_mac);
+                       printf("wifi_direct_accept_connection() result=[%d]\n", result);
+               } else {
+                       wfd_prepare_popup(WFD_POP_APRV_CONNECTION_INVITATION_REQ, NULL);
+               }
        }
+       break;
        default:
                break;
 
@@ -827,7 +847,6 @@ int deinit_wfd_popup_client(wfd_appdata_t *ad)
        }
 
        __WDPOP_LOG_FUNC_EXIT__;
-
        if (ret == WIFI_DIRECT_ERROR_NONE) {
                return TRUE;
        } else {