summaryrefslogtreecommitdiff
path: root/service
diff options
context:
space:
mode:
authorJimmy Chen <jimmycmchen@google.com>2019-12-31 04:06:27 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2019-12-31 04:06:27 +0000
commitccc72cdaf86eed51befe46c74fd9cddbba608446 (patch)
treeffaf66d49d6598449464842448b712492dc29ee5 /service
parent395f3631895b13b7555e6c021553a48dce1b8386 (diff)
parentaeba8aa9f46dfe8c70f59118147a0229d2fb2741 (diff)
Merge "Wifi: abort ongoing scan on p2p group join"
Diffstat (limited to 'service')
-rw-r--r--service/java/com/android/server/wifi/WifiInjector.java6
-rw-r--r--service/java/com/android/server/wifi/p2p/WifiP2pNative.java22
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