Connect immediately after pressing on previously connected saved networks.

Bug: 34287193
Test: manual inspection
Change-Id: Idf7156fa48640a34ce11cbf2f9683cfc6525a7b5
diff --git a/src/com/android/settings/wifi/WifiSettings.java b/src/com/android/settings/wifi/WifiSettings.java
index af4d8f8..ccd1700 100644
--- a/src/com/android/settings/wifi/WifiSettings.java
+++ b/src/com/android/settings/wifi/WifiSettings.java
@@ -513,13 +513,18 @@
             if (mSelectedAccessPoint == null) {
                 return false;
             }
-            /** Bypass dialog for unsecured, unsaved, and inactive networks */
-            if (mSelectedAccessPoint.getSecurity() == AccessPoint.SECURITY_NONE &&
-                    !mSelectedAccessPoint.isSaved() && !mSelectedAccessPoint.isActive()) {
+            if (mSelectedAccessPoint.isActive()) {
+                return super.onPreferenceTreeClick(preference);
+            }
+            /** Bypass dialog and connect to unsecured or previously connected saved networks. */
+            WifiConfiguration config = mSelectedAccessPoint.getConfig();
+            if (mSelectedAccessPoint.getSecurity() == AccessPoint.SECURITY_NONE) {
                 mSelectedAccessPoint.generateOpenNetworkConfig();
-                connect(mSelectedAccessPoint.getConfig(), false /* isSavedNetwork */);
-            } else if (mSelectedAccessPoint.isSaved()) {
-                showDialog(mSelectedAccessPoint, WifiConfigUiBase.MODE_VIEW);
+                connect(mSelectedAccessPoint.getConfig(), mSelectedAccessPoint.isSaved());
+            } else if (mSelectedAccessPoint.isSaved() && config != null
+                    && config.getNetworkSelectionStatus() != null
+                    && config.getNetworkSelectionStatus().getHasEverConnected()) {
+                connect(config, true /* isSavedNetwork */);
             } else {
                 showDialog(mSelectedAccessPoint, WifiConfigUiBase.MODE_CONNECT);
             }