diff options
author | Jimmy Chen <jimmycmchen@google.com> | 2019-12-31 04:06:27 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2019-12-31 04:06:27 +0000 |
commit | ccc72cdaf86eed51befe46c74fd9cddbba608446 (patch) | |
tree | ffaf66d49d6598449464842448b712492dc29ee5 /service | |
parent | 395f3631895b13b7555e6c021553a48dce1b8386 (diff) | |
parent | aeba8aa9f46dfe8c70f59118147a0229d2fb2741 (diff) |
Merge "Wifi: abort ongoing scan on p2p group join"
Diffstat (limited to 'service')
-rw-r--r-- | service/java/com/android/server/wifi/WifiInjector.java | 6 | ||||
-rw-r--r-- | service/java/com/android/server/wifi/p2p/WifiP2pNative.java | 22 |
2 files changed, 26 insertions, 2 deletions
diff --git a/service/java/com/android/server/wifi/WifiInjector.java b/service/java/com/android/server/wifi/WifiInjector.java index 080b76d9e..3fbd58ed5 100644 --- a/service/java/com/android/server/wifi/WifiInjector.java +++ b/service/java/com/android/server/wifi/WifiInjector.java @@ -228,7 +228,7 @@ public class WifiInjector { wifiHandler, new Random(), this); mWifiP2pMonitor = new WifiP2pMonitor(this); mSupplicantP2pIfaceHal = new SupplicantP2pIfaceHal(mWifiP2pMonitor); - mWifiP2pNative = new WifiP2pNative( + mWifiP2pNative = new WifiP2pNative(this, mWifiVendorHal, mSupplicantP2pIfaceHal, mHalDeviceManager, mPropertyService); @@ -786,4 +786,8 @@ public class WifiInjector { } return mNetdWrapper; } + + public WifiCondManager getWifiCondManager() { + return mWifiCondManager; + } } diff --git a/service/java/com/android/server/wifi/p2p/WifiP2pNative.java b/service/java/com/android/server/wifi/p2p/WifiP2pNative.java index 7eba9d34c..0732510b3 100644 --- a/service/java/com/android/server/wifi/p2p/WifiP2pNative.java +++ b/service/java/com/android/server/wifi/p2p/WifiP2pNative.java @@ -24,14 +24,19 @@ import android.net.wifi.p2p.WifiP2pConfig; import android.net.wifi.p2p.WifiP2pGroup; import android.net.wifi.p2p.WifiP2pGroupList; import android.net.wifi.p2p.nsd.WifiP2pServiceInfo; +import android.net.wifi.wificond.WifiCondManager; import android.os.Handler; import android.text.TextUtils; import android.util.Log; import com.android.server.wifi.HalDeviceManager; import com.android.server.wifi.PropertyService; +import com.android.server.wifi.WifiInjector; +import com.android.server.wifi.WifiNative; import com.android.server.wifi.WifiVendorHal; +import java.util.Set; + /** * Native calls for bring up/shut down of the supplicant daemon and for * sending requests to the supplicant daemon @@ -42,6 +47,7 @@ public class WifiP2pNative { private static final String TAG = "WifiP2pNative"; private boolean mVerboseLoggingEnabled = false; private final SupplicantP2pIfaceHal mSupplicantP2pIfaceHal; + private final WifiInjector mWifiInjector; private final HalDeviceManager mHalDeviceManager; private final PropertyService mPropertyService; private final WifiVendorHal mWifiVendorHal; @@ -108,9 +114,10 @@ public class WifiP2pNative { } } - public WifiP2pNative(WifiVendorHal wifiVendorHal, + public WifiP2pNative(WifiInjector wifiInjector, WifiVendorHal wifiVendorHal, SupplicantP2pIfaceHal p2pIfaceHal, HalDeviceManager halDeviceManager, PropertyService propertyService) { + mWifiInjector = wifiInjector; mWifiVendorHal = wifiVendorHal; mSupplicantP2pIfaceHal = p2pIfaceHal; mHalDeviceManager = halDeviceManager; @@ -597,6 +604,7 @@ public class WifiP2pNative { default: freq = config.groupOwnerBand; } + abortWifiRunningScanIfNeeded(join); return mSupplicantP2pIfaceHal.groupAdd( config.networkName, config.passphrase, @@ -604,6 +612,18 @@ public class WifiP2pNative { freq, config.deviceAddress, join); } + private void abortWifiRunningScanIfNeeded(boolean isJoin) { + if (!isJoin) return; + + WifiCondManager wifiCondManager = mWifiInjector.getWifiCondManager(); + WifiNative wifiNative = mWifiInjector.getWifiNative(); + Set<String> wifiClientInterfaces = wifiNative.getClientInterfaceNames(); + + for (String interfaceName: wifiClientInterfaces) { + wifiCondManager.abortScan(interfaceName); + } + } + /** * Terminate a P2P group. If a new virtual network interface was used for * the group, it must also be removed. The network interface name of the |