aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/com/google/android/mobly/snippet
diff options
context:
space:
mode:
authorDavid T.H. Kao <dthkao@gmail.com>2017-06-13 14:18:27 -0700
committerGitHub <noreply@github.com>2017-06-13 14:18:27 -0700
commit1888b5d2ba38ad60ada2c00c03469d05c7cc4ef8 (patch)
tree17a077a57be726fe2fa87e5ecdf71ce3567d1d9e /src/main/java/com/google/android/mobly/snippet
parent5b6e67fddb9032f420167e23abde6bb71709fa37 (diff)
downloadmobly-bundled-snippets-1888b5d2ba38ad60ada2c00c03469d05c7cc4ef8.tar.gz
Add method to clear configured networks (#55)
* Add method to clear configured networks * throw after trying to clear all with list of failed ssids * weird spacing * config not ssid * remove a log * missing diamond * address the NPE that can happen when wifi is disabled and document issues with permissions * fix log
Diffstat (limited to 'src/main/java/com/google/android/mobly/snippet')
-rw-r--r--src/main/java/com/google/android/mobly/snippet/bundled/WifiManagerSnippet.java24
1 files changed, 22 insertions, 2 deletions
diff --git a/src/main/java/com/google/android/mobly/snippet/bundled/WifiManagerSnippet.java b/src/main/java/com/google/android/mobly/snippet/bundled/WifiManagerSnippet.java
index 5c25bc6..1911b9f 100644
--- a/src/main/java/com/google/android/mobly/snippet/bundled/WifiManagerSnippet.java
+++ b/src/main/java/com/google/android/mobly/snippet/bundled/WifiManagerSnippet.java
@@ -34,6 +34,7 @@ import com.google.android.mobly.snippet.rpc.Rpc;
import com.google.android.mobly.snippet.rpc.RpcMinSdk;
import com.google.android.mobly.snippet.util.Log;
import java.util.ArrayList;
+import java.util.List;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
@@ -58,6 +59,25 @@ public class WifiManagerSnippet implements Snippet {
mWifiManager = (WifiManager) mContext.getSystemService(Context.WIFI_SERVICE);
}
+ @Rpc(description = "Clears all configured networks. This will only work if all configured "
+ + "networks were added through this MBS instance")
+ public void wifiClearConfiguredNetworks() throws WifiManagerSnippetException {
+ List<WifiConfiguration> unremovedConfigs = mWifiManager.getConfiguredNetworks();
+ List<WifiConfiguration> failedConfigs = new ArrayList<>();
+ if (unremovedConfigs == null) {
+ throw new WifiManagerSnippetException(
+ "Failed to get a list of configured networks. Is wifi disabled?");
+ }
+ for (WifiConfiguration config : unremovedConfigs) {
+ if (!mWifiManager.removeNetwork(config.networkId)) {
+ failedConfigs.add(config);
+ }
+ }
+ if (!failedConfigs.isEmpty()) {
+ throw new WifiManagerSnippetException("Failed to remove networks: " + failedConfigs);
+ }
+ }
+
@Rpc(description = "Turns on Wi-Fi with a 30s timeout.")
public void wifiEnable() throws InterruptedException, WifiManagerSnippetException {
if (!mWifiManager.setWifiEnabled(true)) {
@@ -216,8 +236,8 @@ public class WifiManagerSnippet implements Snippet {
"Get the list of configured Wi-Fi networks, each is a serialized "
+ "WifiConfiguration object."
)
- public ArrayList<JSONObject> wifiGetConfiguredNetworks() throws JSONException {
- ArrayList<JSONObject> networks = new ArrayList<>();
+ public List<JSONObject> wifiGetConfiguredNetworks() throws JSONException {
+ List<JSONObject> networks = new ArrayList<>();
for (WifiConfiguration config : mWifiManager.getConfiguredNetworks()) {
networks.add(mJsonSerializer.toJson(config));
}