Merge "[AWARE][CTS] Check for location setting for test needing to disable Wi-Fi" into oc-dev
am: ba16d61c91
Change-Id: Iaee56d95f394116b731e8092ad2507eb113bb50c
diff --git a/tests/cts/net/src/android/net/wifi/aware/cts/SingleDeviceTest.java b/tests/cts/net/src/android/net/wifi/aware/cts/SingleDeviceTest.java
index d4982a5..87e22d8 100644
--- a/tests/cts/net/src/android/net/wifi/aware/cts/SingleDeviceTest.java
+++ b/tests/cts/net/src/android/net/wifi/aware/cts/SingleDeviceTest.java
@@ -37,7 +37,9 @@
import android.net.wifi.aware.WifiAwareSession;
import android.os.Handler;
import android.os.HandlerThread;
+import android.provider.Settings;
import android.test.AndroidTestCase;
+import android.util.Log;
import java.util.ArrayDeque;
import java.util.ArrayList;
@@ -74,6 +76,13 @@
// used to store any WifiAwareSession allocated during tests - will clean-up after tests
private List<WifiAwareSession> mSessions = new ArrayList<>();
+ // Return true if location is enabled.
+ private boolean isLocationEnabled() {
+ return Settings.Secure.getInt(getContext().getContentResolver(),
+ Settings.Secure.LOCATION_MODE, Settings.Secure.LOCATION_MODE_OFF) !=
+ Settings.Secure.LOCATION_MODE_OFF;
+ }
+
private class WifiAwareBroadcastReceiver extends BroadcastReceiver {
private CountDownLatch mBlocker = new CountDownLatch(1);
@@ -422,6 +431,18 @@
return;
}
+ if (isLocationEnabled()) {
+ /* Can't execute this test with location on since it means that Aware will not get
+ * disabled even if we disable Wi-Fi (which when location is enabled does not correspond
+ * to disabling the Wi-Fi chip).
+ *
+ * Considering other tests may require locationing to be enable we can't also fail the
+ * test in such a case. Hence it is skipped.
+ */
+ Log.d(TAG, "Skipping test since location scans are enabled");
+ return;
+ }
+
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction(WifiAwareManager.ACTION_WIFI_AWARE_STATE_CHANGED);