diff options
author | Ningyuan Wang <nywang@google.com> | 2017-04-21 20:55:11 +0000 |
---|---|---|
committer | android-build-merger <android-build-merger@google.com> | 2017-04-21 20:55:11 +0000 |
commit | 8d55e9da2b98eac379272a5df5f8d5692e702d83 (patch) | |
tree | f8cbb0470a4132c448678c8062cfe048364e90e5 /service | |
parent | 384686310991825b89a4d55ea6ac10f8164cba51 (diff) | |
parent | c99fc3b102491df3a11d867a0b5661aa8d2dd8d0 (diff) |
Merge "Abort ongoing STA scan to prioritize P2P scan" am: 40c24317a3 am: 0b67f4912e
am: c99fc3b102
Change-Id: I322226158e0e3a7e007075632fc2f9dc52e1cfc5
Diffstat (limited to 'service')
3 files changed, 35 insertions, 2 deletions
diff --git a/service/java/com/android/server/wifi/WifiInjector.java b/service/java/com/android/server/wifi/WifiInjector.java index 3d444a448..db1d32eb2 100644 --- a/service/java/com/android/server/wifi/WifiInjector.java +++ b/service/java/com/android/server/wifi/WifiInjector.java @@ -164,7 +164,7 @@ public class WifiInjector { mWifiP2pMonitor = new WifiP2pMonitor(this); mSupplicantP2pIfaceHal = new SupplicantP2pIfaceHal(mWifiP2pMonitor); mWifiP2pNative = new WifiP2pNative(SystemProperties.get("wifi.direct.interface", "p2p0"), - mSupplicantP2pIfaceHal); + mSupplicantP2pIfaceHal, mWificondControl); // Now get instances of all the objects that depend on the HandlerThreads mTrafficPoller = new WifiTrafficPoller(mContext, mWifiServiceHandlerThread.getLooper(), diff --git a/service/java/com/android/server/wifi/WificondControl.java b/service/java/com/android/server/wifi/WificondControl.java index fdd0faffe..8be747828 100644 --- a/service/java/com/android/server/wifi/WificondControl.java +++ b/service/java/com/android/server/wifi/WificondControl.java @@ -465,4 +465,22 @@ public class WificondControl { return false; } + /** + * Abort ongoing single scan triggered by wificond. + * @return Returns true on success. + */ + public boolean abortScan() { + if (mWificondScanner == null) { + Log.e(TAG, "No valid wificond scanner interface handler"); + return false; + } + + try { + return mWificondScanner.abortScan(); + } catch (RemoteException e1) { + Log.e(TAG, "Failed to request abortScan due to remote exception"); + } + return false; + } + } diff --git a/service/java/com/android/server/wifi/p2p/WifiP2pNative.java b/service/java/com/android/server/wifi/p2p/WifiP2pNative.java index bae3faa62..5de6585f4 100644 --- a/service/java/com/android/server/wifi/p2p/WifiP2pNative.java +++ b/service/java/com/android/server/wifi/p2p/WifiP2pNative.java @@ -21,6 +21,8 @@ import android.net.wifi.p2p.WifiP2pGroup; import android.net.wifi.p2p.WifiP2pGroupList; import android.net.wifi.p2p.nsd.WifiP2pServiceInfo; +import com.android.server.wifi.WificondControl; + /** * Native calls for bring up/shut down of the supplicant daemon and for * sending requests to the supplicant daemon @@ -31,11 +33,14 @@ public class WifiP2pNative { private final String mTAG; private final String mInterfaceName; private final SupplicantP2pIfaceHal mSupplicantP2pIfaceHal; + private final WificondControl mWificondControl; - public WifiP2pNative(String interfaceName, SupplicantP2pIfaceHal p2pIfaceHal) { + public WifiP2pNative(String interfaceName, SupplicantP2pIfaceHal p2pIfaceHal, + WificondControl wificondcontrol) { mTAG = "WifiP2pNative-" + interfaceName; mInterfaceName = interfaceName; mSupplicantP2pIfaceHal = p2pIfaceHal; + mWificondControl = wificondcontrol; } public String getInterfaceName() { @@ -247,6 +252,7 @@ public class WifiP2pNative { * @return boolean value indicating whether operation was successful. */ public boolean p2pFind(int timeout) { + abortScan(); return mSupplicantP2pIfaceHal.find(timeout); } @@ -597,4 +603,13 @@ public class WifiP2pNative { public boolean saveConfig() { return mSupplicantP2pIfaceHal.saveConfig(); } + + /** + * Abort ongoing single scan triggered by wificond. + * + * @return true on success, false otherwise. + */ + private boolean abortScan() { + return mWificondControl.abortScan(); + } } |