diff --git a/res/layout/wifi_dialog.xml b/res/layout/wifi_dialog.xml
index 47b4e9215f6..1b4d0629849 100644
--- a/res/layout/wifi_dialog.xml
+++ b/res/layout/wifi_dialog.xml
@@ -26,37 +26,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -190,153 +159,197 @@
-
-
-
-
-
-
-
-
-
-
-
-
+ android:textSize="14sp"
+ android:text="@string/wifi_show_advanced" />
-
+
+
-
+ android:text="@string/wifi_network_setup" />
-
+ android:prompt="@string/wifi_network_setup"
+ android:entries="@array/wifi_network_setup" />
+
-
+
+
+
+ android:text="@string/wifi_wps_pin" />
-
+ android:singleLine="true"
+ android:inputType="textPassword" />
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ android:text="@string/wifi_ip_settings" />
-
+ android:prompt="@string/wifi_ip_settings"
+ android:entries="@array/wifi_ip_settings" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/res/values/arrays.xml b/res/values/arrays.xml
index 09d94de5662..29f45a07114 100644
--- a/res/values/arrays.xml
+++ b/res/values/arrays.xml
@@ -457,13 +457,13 @@
- - Manual
+ - Off
- - WPS push button
+ - Push button
- - WPS pin from access point
+ - Pin from access point
- - WPS pin from this device
+ - Pin from this device
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 821ebd44658..25328b9394f 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -1165,8 +1165,10 @@
To see available networks, turn Wi-Fi on.
+
+ Show advanced options
- Network Setup
+ WPS
Enter pin from access point
diff --git a/src/com/android/settings/wifi/WifiConfigController.java b/src/com/android/settings/wifi/WifiConfigController.java
index f879b85b190..2cbe2603243 100644
--- a/src/com/android/settings/wifi/WifiConfigController.java
+++ b/src/com/android/settings/wifi/WifiConfigController.java
@@ -182,8 +182,6 @@ public class WifiConfigController implements TextWatcher,
addRow(group, R.string.wifi_status, Summary.get(mConfigUi.getContext(), state));
}
- addRow(group, R.string.wifi_security, mAccessPoint.getSecurityString(false));
-
int level = mAccessPoint.getLevel();
if (level != -1) {
String[] signal = resources.getStringArray(R.array.wifi_signal);
@@ -195,10 +193,14 @@ public class WifiConfigController implements TextWatcher,
addRow(group, R.string.wifi_speed, info.getLinkSpeed() + WifiInfo.LINK_SPEED_UNITS);
}
+ addRow(group, R.string.wifi_security, mAccessPoint.getSecurityString(false));
+
+ boolean showAdvancedFields = false;
if (mAccessPoint.networkId != INVALID_NETWORK_ID) {
WifiConfiguration config = mAccessPoint.getConfig();
if (config.ipAssignment == IpAssignment.STATIC) {
mIpSettingsSpinner.setSelection(STATIC_IP);
+ showAdvancedFields = true;
} else {
mIpSettingsSpinner.setSelection(DHCP);
}
@@ -210,6 +212,7 @@ public class WifiConfigController implements TextWatcher,
if (config.proxySettings == ProxySettings.STATIC) {
mProxySettingsSpinner.setSelection(PROXY_STATIC);
+ showAdvancedFields = true;
} else {
mProxySettingsSpinner.setSelection(PROXY_NONE);
}
@@ -224,6 +227,12 @@ public class WifiConfigController implements TextWatcher,
showSecurityFields();
showIpConfigFields();
showProxyFields();
+ mView.findViewById(R.id.wifi_advanced_toggle).setVisibility(View.VISIBLE);
+ mView.findViewById(R.id.wifi_advanced_togglebox).setOnClickListener(this);
+ if (showAdvancedFields) {
+ ((CheckBox) mView.findViewById(R.id.wifi_advanced_togglebox)).setChecked(true);
+ mView.findViewById(R.id.wifi_advanced_fields).setVisibility(View.VISIBLE);
+ }
}
if (mEdit) {
@@ -726,10 +735,18 @@ public class WifiConfigController implements TextWatcher,
@Override
public void onClick(View view) {
- mPasswordView.setInputType(
- InputType.TYPE_CLASS_TEXT | (((CheckBox) view).isChecked() ?
- InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD :
- InputType.TYPE_TEXT_VARIATION_PASSWORD));
+ if (view.getId() == R.id.show_password) {
+ mPasswordView.setInputType(
+ InputType.TYPE_CLASS_TEXT | (((CheckBox) view).isChecked() ?
+ InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD :
+ InputType.TYPE_TEXT_VARIATION_PASSWORD));
+ } else if (view.getId() == R.id.wifi_advanced_togglebox) {
+ if (((CheckBox) view).isChecked()) {
+ mView.findViewById(R.id.wifi_advanced_fields).setVisibility(View.VISIBLE);
+ } else {
+ mView.findViewById(R.id.wifi_advanced_fields).setVisibility(View.GONE);
+ }
+ }
}
@Override