diff options
author | David T.H. Kao <dthkao@gmail.com> | 2017-06-13 14:18:27 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-06-13 14:18:27 -0700 |
commit | 1888b5d2ba38ad60ada2c00c03469d05c7cc4ef8 (patch) | |
tree | 17a077a57be726fe2fa87e5ecdf71ce3567d1d9e /src/main/java | |
parent | 5b6e67fddb9032f420167e23abde6bb71709fa37 (diff) | |
download | mobly-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')
-rw-r--r-- | src/main/java/com/google/android/mobly/snippet/bundled/WifiManagerSnippet.java | 24 |
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)); } |