wifi: Add client connected callback

Add client connected callback support on hostapd HIDL interface

Bug: 163288112
Test: Manuel Test. Hotspot works normally.
Test: atest VtsHalWifiHostapdV1_0TargetTest
Test: atest VtsHalWifiHostapdV1_1TargetTest
Test: atest VtsHalWifiHostapdV1_2TargetTest
Change-Id: Ib0a41b3ef4a46c7c4bf1ed6e01b31ce3a334a213
diff --git a/wifi/hostapd/1.3/IHostapd.hal b/wifi/hostapd/1.3/IHostapd.hal
index 7ac20e4..d16448d 100644
--- a/wifi/hostapd/1.3/IHostapd.hal
+++ b/wifi/hostapd/1.3/IHostapd.hal
@@ -18,8 +18,8 @@
 
 import @1.2::IHostapd;
 import @1.2::HostapdStatus;
-
 import IHostapdCallback;
+
 /**
  * Top-level object for managing SoftAPs.
  */
@@ -39,6 +39,5 @@
      *     |HostapdStatusCode.SUCCESS|,
      *     |HostapdStatusCode.FAILURE_UNKNOWN|
      */
-    registerCallback_1_3(IHostapdCallback callback)
-        generates (HostapdStatus status);
+    registerCallback_1_3(IHostapdCallback callback) generates (HostapdStatus status);
 };
diff --git a/wifi/hostapd/1.3/IHostapdCallback.hal b/wifi/hostapd/1.3/IHostapdCallback.hal
index 5202178..4db470d 100644
--- a/wifi/hostapd/1.3/IHostapdCallback.hal
+++ b/wifi/hostapd/1.3/IHostapdCallback.hal
@@ -17,6 +17,7 @@
 package android.hardware.wifi.hostapd@1.3;
 
 import @1.1::IHostapdCallback;
+import @1.2::MacAddress;
 import Generation;
 
 /**
@@ -24,4 +25,20 @@
  */
 interface IHostapdCallback extends @1.1::IHostapdCallback {
     oneway onInterfaceInfoChanged(string ifaceName, Generation generation);
+
+    /**
+     * Invoked when a client connects/disconnects from the hotspot.
+     *
+     * @param ifaceName Name of the interface which is added via
+     * |IHostapd.addAccessPoint|.
+     * @param apIfaceInstance The identity of the AP instance. The interface
+     * will have two instances in dual AP mode. The apIfaceInstance can be used
+     * to identify which instance the callback is from.
+     * Note: The apIfaceInstance must be same as ifaceName in single AP mode.
+     * @param clientAddress Mac Address of hotspot client.
+     * @param isConnected true when client connected, false when client
+     * disconnected.
+     */
+    oneway onConnectedClientsChanged(string ifaceName, string apIfaceInstance,
+        MacAddress clientAddress, bool isConnected);
 };
diff --git a/wifi/hostapd/1.3/types.hal b/wifi/hostapd/1.3/types.hal
index ce092c0..887ea0f 100644
--- a/wifi/hostapd/1.3/types.hal
+++ b/wifi/hostapd/1.3/types.hal
@@ -34,4 +34,3 @@
     WIFI_STANDARD_11AC = 2,
     WIFI_STANDARD_11AX = 3,
 };
-