From 228b7f2b090e473e05ac1b9db0a4f58ebf570d01 Mon Sep 17 00:00:00 2001 From: Roshan Pius Date: Thu, 26 Apr 2018 23:28:14 +0000 Subject: Revert "Revert "WifiService: Return status from startScan()"" This reverts commit bef13ac26de200570a6b5cfc1c679a54f5c436cb. Reason for revert: Compilation failure in Arc++ fixed. Bug: 77297012 Change-Id: I6a999541b3c01af24cf6a0961144c35d16139d9e --- .../com/android/server/wifi/WifiServiceImpl.java | 28 ++++++++++++---------- 1 file changed, 16 insertions(+), 12 deletions(-) (limited to 'service') diff --git a/service/java/com/android/server/wifi/WifiServiceImpl.java b/service/java/com/android/server/wifi/WifiServiceImpl.java index 1a5e0e27d..61daadcd1 100644 --- a/service/java/com/android/server/wifi/WifiServiceImpl.java +++ b/service/java/com/android/server/wifi/WifiServiceImpl.java @@ -601,15 +601,14 @@ public class WifiServiceImpl extends IWifiManager.Stub { } /** - * see {@link android.net.wifi.WifiManager#startScan} - * and {@link android.net.wifi.WifiManager#startCustomizedScan} + * See {@link android.net.wifi.WifiManager#startScan} * * @param packageName Package name of the app that requests wifi scan. */ @Override - public void startScan(String packageName) { + public boolean startScan(String packageName) { if (enforceChangePermission(packageName) != MODE_ALLOWED) { - return; + return false; } int callingUid = Binder.getCallingUid(); @@ -625,19 +624,24 @@ public class WifiServiceImpl extends IWifiManager.Stub { // be sent directly until b/31398592 is fixed. sendFailedScanBroadcast(); mScanPending = true; - return; + return false; } } - boolean success = mWifiInjector.getWifiStateMachineHandler().runWithScissors(() -> { - if (!mScanRequestProxy.startScan(callingUid, packageName)) { - Log.e(TAG, "Failed to start scan"); - } - }, RUN_WITH_SCISSORS_TIMEOUT_MILLIS); - if (!success) { - // TODO: should return false here + Mutable scanSuccess = new Mutable<>(); + boolean runWithScissorsSuccess = mWifiInjector.getWifiStateMachineHandler() + .runWithScissors(() -> { + scanSuccess.value = mScanRequestProxy.startScan(callingUid, packageName); + }, RUN_WITH_SCISSORS_TIMEOUT_MILLIS); + if (!runWithScissorsSuccess) { Log.e(TAG, "Failed to post runnable to start scan"); sendFailedScanBroadcast(); + return false; } + if (!scanSuccess.value) { + Log.e(TAG, "Failed to start scan"); + return false; + } + return true; } // Send a failed scan broadcast to indicate the current scan request failed. -- cgit v1.2.3