summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/com/android/settings/wifi/AccessPoint.java15
-rw-r--r--src/com/android/settings/wifi/WifiSettings.java18
2 files changed, 27 insertions, 6 deletions
diff --git a/src/com/android/settings/wifi/AccessPoint.java b/src/com/android/settings/wifi/AccessPoint.java
index 799a8da..03e7ba4 100644
--- a/src/com/android/settings/wifi/AccessPoint.java
+++ b/src/com/android/settings/wifi/AccessPoint.java
@@ -358,4 +358,19 @@ class AccessPoint extends Preference {
setSummary(summary.toString());
}
}
+
+ /**
+ * Generate and save a default wifiConfiguration with common values.
+ * Can only be called for unsecured networks.
+ * @hide
+ */
+ protected void generateOpenNetworkConfig() {
+ if (security != SECURITY_NONE)
+ throw new IllegalStateException();
+ if (mConfig != null)
+ return;
+ mConfig = new WifiConfiguration();
+ mConfig.SSID = AccessPoint.convertToQuotedString(ssid);
+ mConfig.allowedKeyManagement.set(KeyMgmt.NONE);
+ }
}
diff --git a/src/com/android/settings/wifi/WifiSettings.java b/src/com/android/settings/wifi/WifiSettings.java
index 1b24bf7..040269b 100644
--- a/src/com/android/settings/wifi/WifiSettings.java
+++ b/src/com/android/settings/wifi/WifiSettings.java
@@ -353,11 +353,9 @@ public class WifiSettings extends SettingsPreferenceFragment
mWifiManager.connectNetwork(mSelectedAccessPoint.networkId);
}
} else if (mSelectedAccessPoint.security == AccessPoint.SECURITY_NONE) {
- // Shortcut for open networks.
- WifiConfiguration config = new WifiConfiguration();
- config.SSID = AccessPoint.convertToQuotedString(mSelectedAccessPoint.ssid);
- config.allowedKeyManagement.set(KeyMgmt.NONE);
- mWifiManager.connectNetwork(config);
+ /** Bypass dialog for unsecured networks */
+ mSelectedAccessPoint.generateOpenNetworkConfig();
+ mWifiManager.connectNetwork(mSelectedAccessPoint.getConfig());
} else {
showConfigUi(mSelectedAccessPoint, true);
}
@@ -379,7 +377,14 @@ public class WifiSettings extends SettingsPreferenceFragment
public boolean onPreferenceTreeClick(PreferenceScreen screen, Preference preference) {
if (preference instanceof AccessPoint) {
mSelectedAccessPoint = (AccessPoint) preference;
- showConfigUi(mSelectedAccessPoint, false);
+ /** Bypass dialog for unsecured, unsaved networks */
+ if (mSelectedAccessPoint.security == AccessPoint.SECURITY_NONE &&
+ mSelectedAccessPoint.networkId == INVALID_NETWORK_ID) {
+ mSelectedAccessPoint.generateOpenNetworkConfig();
+ mWifiManager.connectNetwork(mSelectedAccessPoint.getConfig());
+ } else {
+ showConfigUi(mSelectedAccessPoint, false);
+ }
} else {
return super.onPreferenceTreeClick(screen, preference);
}
@@ -623,6 +628,7 @@ public class WifiSettings extends SettingsPreferenceFragment
}
void forceScan() {
+ removeMessages(0);
sendEmptyMessage(0);
}