Allow calling wifiConnect with the connected network. (#28)

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 1dca048..617028f 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
@@ -133,6 +133,22 @@
     }
 
     /**
+     * Gets the {@link WifiConfiguration} of a Wi-Fi network that has already been configured.
+     *
+     * <p>If the network has not been configured, returns null.
+     *
+     * <p>A network is configured if a WifiConfiguration was created for it and added with {@link
+     * WifiManager#addNetwork(WifiConfiguration)}.
+     */
+    private WifiConfiguration getExistingConfiguredNetwork(String ssid) {
+        for (WifiConfiguration config : mWifiManager.getConfiguredNetworks()) {
+            if (config.SSID.equals(ssid)) {
+                return config;
+            }
+        }
+        return null;
+    }
+    /**
      * Connect to a Wi-Fi network.
      *
      * @param wifiNetworkConfig A JSON object that contains the info required to connect to a Wi-Fi
@@ -147,6 +163,18 @@
             throws InterruptedException, JSONException, WifiManagerSnippetException {
         Log.d("Got network config: " + wifiNetworkConfig);
         WifiConfiguration wifiConfig = JsonDeserializer.jsonToWifiConfig(wifiNetworkConfig);
+        // Return directly if network is already connected.
+        String connectedSsid = mWifiManager.getConnectionInfo().getSSID();
+        if (connectedSsid.equals(wifiConfig.SSID)) {
+            Log.d("Network " + connectedSsid + " is already connected.");
+            return;
+        }
+        // If the network is already added but not connected, update the configuration first.
+        WifiConfiguration existingConfig = getExistingConfiguredNetwork(wifiConfig.SSID);
+        if (existingConfig != null) {
+            Log.d("Update the configuration of network " + existingConfig.SSID + ".");
+            mWifiManager.removeNetwork(existingConfig.networkId);
+        }
         int networkId = mWifiManager.addNetwork(wifiConfig);
         mWifiManager.disconnect();
         if (!mWifiManager.enableNetwork(networkId, true)) {
diff --git a/src/main/java/com/google/android/mobly/snippet/bundled/utils/JsonSerializer.java b/src/main/java/com/google/android/mobly/snippet/bundled/utils/JsonSerializer.java
index 58f8bac..c1d4e81 100644
--- a/src/main/java/com/google/android/mobly/snippet/bundled/utils/JsonSerializer.java
+++ b/src/main/java/com/google/android/mobly/snippet/bundled/utils/JsonSerializer.java
@@ -51,7 +51,7 @@
      *
      * @param originalString
      */
-    private String trimQuotationMarks(String originalString) {
+    private static String trimQuotationMarks(String originalString) {
         String result = originalString;
         if (originalString.charAt(0) == '"'
                 && originalString.charAt(originalString.length() - 1) == '"') {