diff options
author | Roshan Pius <rpius@google.com> | 2017-03-21 21:42:08 +0000 |
---|---|---|
committer | android-build-merger <android-build-merger@google.com> | 2017-03-21 21:42:08 +0000 |
commit | 9f60c8e06a287f00389554361a89387125a61928 (patch) | |
tree | b03bc3dca88b34fc395d0f8b7182cd7f1ba7416a /service | |
parent | d8324d5655b2e90ade91a9dffe7632e582f72999 (diff) | |
parent | 821a0601577f4f281d4e4cb16f3baf3fe699ae59 (diff) |
Merge changes I0faf4cff,If7c3473b am: 8e048dfa14 am: aa28ee3bcb
am: 821a060157
Change-Id: I6641e88c2f42889157bbe07a1d3a4f2e7edb15a1
Diffstat (limited to 'service')
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); + } } |