summaryrefslogtreecommitdiff
path: root/service
diff options
context:
space:
mode:
authorRoshan Pius <rpius@google.com>2017-03-21 21:42:08 +0000
committerandroid-build-merger <android-build-merger@google.com>2017-03-21 21:42:08 +0000
commit9f60c8e06a287f00389554361a89387125a61928 (patch)
treeb03bc3dca88b34fc395d0f8b7182cd7f1ba7416a /service
parentd8324d5655b2e90ade91a9dffe7632e582f72999 (diff)
parent821a0601577f4f281d4e4cb16f3baf3fe699ae59 (diff)
Merge changes I0faf4cff,If7c3473b am: 8e048dfa14 am: aa28ee3bcb
am: 821a060157 Change-Id: I6641e88c2f42889157bbe07a1d3a4f2e7edb15a1
Diffstat (limited to 'service')
-rw-r--r--service/java/com/android/server/wifi/WifiStateMachine.java10
-rw-r--r--service/java/com/android/server/wifi/p2p/SupplicantP2pIfaceCallback.java16
-rw-r--r--service/java/com/android/server/wifi/p2p/WifiP2pMonitor.java18
3 files changed, 43 insertions, 1 deletions
diff --git a/service/java/com/android/server/wifi/WifiStateMachine.java b/service/java/com/android/server/wifi/WifiStateMachine.java
index 1741f092a..9c7eff772 100644
--- a/service/java/com/android/server/wifi/WifiStateMachine.java
+++ b/service/java/com/android/server/wifi/WifiStateMachine.java
@@ -4683,6 +4683,10 @@ public class WifiStateMachine extends StateMachine implements WifiNative.WifiRss
@Override
public void enter() {
+ if (!mWifiNative.removeAllNetworks()) {
+ loge("Failed to remove networks on entering connect mode");
+ }
+
// Let the system know that wifi is available in client mode.
setWifiState(WIFI_STATE_ENABLED);
@@ -4692,7 +4696,6 @@ public class WifiStateMachine extends StateMachine implements WifiNative.WifiRss
// initialize network state
setNetworkDetailedState(DetailedState.DISCONNECTED);
-
// Inform WifiConnectivityManager that Wifi is enabled
mWifiConnectivityManager.setWifiEnabled(true);
// Inform metrics that Wifi is Enabled (but not yet connected)
@@ -4706,10 +4709,15 @@ public class WifiStateMachine extends StateMachine implements WifiNative.WifiRss
// Let the system know that wifi is not available since we are exiting client mode.
mNetworkInfo.setIsAvailable(false);
if (mNetworkAgent != null) mNetworkAgent.sendNetworkInfo(mNetworkInfo);
+
// Inform WifiConnectivityManager that Wifi is disabled
mWifiConnectivityManager.setWifiEnabled(false);
// Inform metrics that Wifi is being disabled (Toggled, airplane enabled, etc)
mWifiMetrics.setWifiState(WifiMetricsProto.WifiLog.WIFI_DISABLED);
+
+ if (!mWifiNative.removeAllNetworks()) {
+ loge("Failed to remove networks on exiting connect mode");
+ }
}
@Override
diff --git a/service/java/com/android/server/wifi/p2p/SupplicantP2pIfaceCallback.java b/service/java/com/android/server/wifi/p2p/SupplicantP2pIfaceCallback.java
index 6f3878cf4..c7004adf9 100644
--- a/service/java/com/android/server/wifi/p2p/SupplicantP2pIfaceCallback.java
+++ b/service/java/com/android/server/wifi/p2p/SupplicantP2pIfaceCallback.java
@@ -463,6 +463,14 @@ public class SupplicantP2pIfaceCallback extends ISupplicantP2pIfaceCallback.Stub
*/
public void onStaAuthorized(byte[] srcAddress, byte[] p2pDeviceAddress) {
logd("STA authorized on " + mInterface);
+ WifiP2pDevice device = new WifiP2pDevice();
+ try {
+ device.deviceAddress = NativeUtil.macAddressFromByteArray(p2pDeviceAddress);
+ } catch (Exception e) {
+ Log.e(TAG, "Could not decode MAC address.", e);
+ return;
+ }
+ mMonitor.broadcastP2pApStaConnected(mInterface, device);
}
@@ -474,6 +482,14 @@ public class SupplicantP2pIfaceCallback extends ISupplicantP2pIfaceCallback.Stub
*/
public void onStaDeauthorized(byte[] srcAddress, byte[] p2pDeviceAddress) {
logd("STA deauthorized on " + mInterface);
+ WifiP2pDevice device = new WifiP2pDevice();
+ try {
+ device.deviceAddress = NativeUtil.macAddressFromByteArray(p2pDeviceAddress);
+ } catch (Exception e) {
+ Log.e(TAG, "Could not decode MAC address.", e);
+ return;
+ }
+ mMonitor.broadcastP2pApStaDisconnected(mInterface, device);
}
diff --git a/service/java/com/android/server/wifi/p2p/WifiP2pMonitor.java b/service/java/com/android/server/wifi/p2p/WifiP2pMonitor.java
index 37b4d6807..50fd9325f 100644
--- a/service/java/com/android/server/wifi/p2p/WifiP2pMonitor.java
+++ b/service/java/com/android/server/wifi/p2p/WifiP2pMonitor.java
@@ -506,4 +506,22 @@ public class WifiP2pMonitor {
String iface, List<WifiP2pServiceResponse> services) {
sendMessage(iface, P2P_SERV_DISC_RESP_EVENT, services);
}
+
+ /**
+ * Broadcast AP STA connection event.
+ *
+ * @param iface Name of iface on which this occurred.
+ */
+ public void broadcastP2pApStaConnected(String iface, WifiP2pDevice device) {
+ sendMessage(iface, AP_STA_CONNECTED_EVENT, device);
+ }
+
+ /**
+ * Broadcast AP STA disconnection event.
+ *
+ * @param iface Name of iface on which this occurred.
+ */
+ public void broadcastP2pApStaDisconnected(String iface, WifiP2pDevice device) {
+ sendMessage(iface, AP_STA_DISCONNECTED_EVENT, device);
+ }
}