summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorian <ian.t.roy@gmail.com>2012-12-17 12:02:28 -0500
committerGerrit Code Review <gerrit@review.cyanogenmod.com>2013-01-08 21:02:41 -0800
commit3d3d0a374d3c2194701a8be4a2d926f47576f5fa (patch)
tree7535209d526f795a754d1d1288dc0dbde4c4486a
parentf155d29ec45798483ec412a96b09935806177b03 (diff)
downloadpackages_apps_Settings-3d3d0a374d3c2194701a8be4a2d926f47576f5fa.zip
packages_apps_Settings-3d3d0a374d3c2194701a8be4a2d926f47576f5fa.tar.gz
packages_apps_Settings-3d3d0a374d3c2194701a8be4a2d926f47576f5fa.tar.bz2
Patch Set 2/2: Add an "Automatically Connect" option for WiFi networks
Relies on: http://review.cyanogenmod.org/28529 Allows the ability for a user to determine whether to connect to an SSID automatically. e.g. At work, there are several SSIDs with long, complex keys. I don't want to connect to them all of the time, but would like them to be remebered. The default behaviour is to allow automatic connection, as it is today. Patch set 2 : Fix capitalization & whitespace Change-Id: I0f0aa64498115e3e1058f73113d37df63ab72d60
-rw-r--r--res/layout/wifi_dialog.xml9
-rw-r--r--res/values/strings.xml2
-rw-r--r--src/com/android/settings/wifi/AccessPoint.java3
-rw-r--r--src/com/android/settings/wifi/WifiConfigController.java27
4 files changed, 41 insertions, 0 deletions
diff --git a/res/layout/wifi_dialog.xml b/res/layout/wifi_dialog.xml
index ff003c4..f4b9118 100644
--- a/res/layout/wifi_dialog.xml
+++ b/res/layout/wifi_dialog.xml
@@ -167,6 +167,15 @@
</LinearLayout>
</LinearLayout>
+ <LinearLayout android:id="@+id/wifi_auto_connect_toggle"
+ style="@style/wifi_item"
+ android:visibility="gone">
+ <CheckBox android:id="@+id/wifi_auto_connect_togglebox"
+ style="@style/wifi_item_content"
+ android:textSize="14sp"
+ android:text="@string/wifi_auto_connect" />
+ </LinearLayout>
+
<LinearLayout android:id="@+id/wifi_advanced_toggle"
style="@style/wifi_item"
android:visibility="gone">
diff --git a/res/values/strings.xml b/res/values/strings.xml
index c4df32c..bf5135d 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -1320,6 +1320,8 @@
<string name="wifi_required_info_text">To complete setup, your tablet needs access to Wi-Fi. After setup, you can switch between mobile data and Wi-Fi.</string>
<!-- Dialog for Access Points --> <skip />
+ <!-- Label for automatically_connect -->
+ <string name="wifi_auto_connect">Automatically connect</string>
<!-- Label to show/hide advanced options -->
<string name="wifi_show_advanced">Show advanced options</string>
<!-- Title for the WPS setup dialog [CHAR LIMIT=50] -->
diff --git a/src/com/android/settings/wifi/AccessPoint.java b/src/com/android/settings/wifi/AccessPoint.java
index 5a7a768..4a73543 100644
--- a/src/com/android/settings/wifi/AccessPoint.java
+++ b/src/com/android/settings/wifi/AccessPoint.java
@@ -61,6 +61,7 @@ class AccessPoint extends Preference {
String bssid;
int security;
int networkId;
+ boolean autoConnect;
boolean wpsAvailable = false;
PskType pskType = PskType.UNKNOWN;
@@ -187,6 +188,7 @@ class AccessPoint extends Preference {
bssid = config.BSSID;
security = getSecurity(config);
networkId = config.networkId;
+ autoConnect = config.autoConnect;
mRssi = Integer.MAX_VALUE;
mConfig = config;
}
@@ -199,6 +201,7 @@ class AccessPoint extends Preference {
if (security == SECURITY_PSK)
pskType = getPskType(result);
networkId = -1;
+ autoConnect = true;
mRssi = result.level;
mScanResult = result;
}
diff --git a/src/com/android/settings/wifi/WifiConfigController.java b/src/com/android/settings/wifi/WifiConfigController.java
index 2598a0e..ae0a0ff 100644
--- a/src/com/android/settings/wifi/WifiConfigController.java
+++ b/src/com/android/settings/wifi/WifiConfigController.java
@@ -118,6 +118,7 @@ public class WifiConfigController implements TextWatcher,
private IpAssignment mIpAssignment = IpAssignment.UNASSIGNED;
private ProxySettings mProxySettings = ProxySettings.UNASSIGNED;
private LinkProperties mLinkProperties = new LinkProperties();
+ private boolean mAutoConnect;
// True when this instance is used in SetupWizard XL context.
private final boolean mInXlSetupWizard;
@@ -160,6 +161,9 @@ public class WifiConfigController implements TextWatcher,
mProxySettingsSpinner = (Spinner) mView.findViewById(R.id.proxy_settings);
mProxySettingsSpinner.setOnItemSelectedListener(this);
+ boolean showAutoConnectField = false;
+ boolean showAutoConnectFieldValue = false;
+
if (mAccessPoint == null) { // new network
mConfigUi.setTitle(R.string.wifi_add_network);
@@ -182,6 +186,9 @@ public class WifiConfigController implements TextWatcher,
showIpConfigFields();
showProxyFields();
+ mView.findViewById(R.id.wifi_auto_connect_toggle).setVisibility(View.VISIBLE);
+ ((CheckBox) mView.findViewById(R.id.wifi_auto_connect_togglebox)).setChecked(true);
+ mView.findViewById(R.id.wifi_auto_connect_togglebox).setOnClickListener(this);
mView.findViewById(R.id.wifi_advanced_toggle).setVisibility(View.VISIBLE);
mView.findViewById(R.id.wifi_advanced_togglebox).setOnClickListener(this);
@@ -230,12 +237,25 @@ public class WifiConfigController implements TextWatcher,
} else {
mProxySettingsSpinner.setSelection(PROXY_NONE);
}
+
+ showAutoConnectField = true;
+ showAutoConnectFieldValue = config.autoConnect;
}
if (mAccessPoint.networkId == INVALID_NETWORK_ID || mEdit) {
showSecurityFields();
showIpConfigFields();
showProxyFields();
+ mView.findViewById(R.id.wifi_auto_connect_toggle).setVisibility(View.VISIBLE);
+ WifiConfiguration config = mAccessPoint.getConfig();
+ if (mEdit) {
+ showAutoConnectField = false;
+ ((CheckBox) mView.findViewById(R.id.wifi_auto_connect_togglebox)).setChecked(config.autoConnect);
+ } else {
+ mAutoConnect = true;
+ ((CheckBox) mView.findViewById(R.id.wifi_auto_connect_togglebox)).setChecked(true);
+ }
+ mView.findViewById(R.id.wifi_auto_connect_togglebox).setOnClickListener(this);
mView.findViewById(R.id.wifi_advanced_toggle).setVisibility(View.VISIBLE);
mView.findViewById(R.id.wifi_advanced_togglebox).setOnClickListener(this);
if (showAdvancedFields) {
@@ -244,6 +264,10 @@ public class WifiConfigController implements TextWatcher,
}
}
+ if (showAutoConnectField) {
+ addRow(group, R.string.wifi_auto_connect, (showAutoConnectFieldValue ? context.getString(R.string.yes) : context.getString(R.string.no)));
+ }
+
if (mEdit) {
mConfigUi.setSubmitButton(context.getString(R.string.wifi_save));
} else {
@@ -388,6 +412,7 @@ public class WifiConfigController implements TextWatcher,
config.proxySettings = mProxySettings;
config.ipAssignment = mIpAssignment;
config.linkProperties = new LinkProperties(mLinkProperties);
+ config.autoConnect = mAutoConnect;
return config;
}
@@ -752,6 +777,8 @@ public class WifiConfigController implements TextWatcher,
} else {
mView.findViewById(R.id.wifi_advanced_fields).setVisibility(View.GONE);
}
+ } else if (view.getId() == R.id.wifi_auto_connect_togglebox) {
+ mAutoConnect = ((CheckBox) view).isChecked();
}
}