Merge "Fix bug in Add network fragment"
diff --git a/src/com/android/settings/wifi/WifiConfigController.java b/src/com/android/settings/wifi/WifiConfigController.java
index de67c10..2e6611f 100644
--- a/src/com/android/settings/wifi/WifiConfigController.java
+++ b/src/com/android/settings/wifi/WifiConfigController.java
@@ -465,8 +465,7 @@
} else {
enabled = ipAndProxyFieldsAreValid();
}
- if (mEapCaCertSpinner != null
- && mView.findViewById(R.id.l_ca_cert).getVisibility() != View.GONE) {
+ if (mAccessPointSecurity == AccessPoint.SECURITY_EAP) {
String caCertSelection = (String) mEapCaCertSpinner.getSelectedItem();
if (caCertSelection.equals(mUnspecifiedCertString)) {
// Disallow submit if the user has not selected a CA certificate for an EAP network
@@ -482,10 +481,8 @@
enabled = false;
}
}
- if (mEapUserCertSpinner != null
- && mView.findViewById(R.id.l_user_cert).getVisibility() != View.GONE
- && ((String) mEapUserCertSpinner.getSelectedItem())
- .equals(mUnspecifiedCertString)) {
+ if (mAccessPointSecurity == AccessPoint.SECURITY_EAP
+ && mEapUserCertSpinner.getSelectedItem().equals(mUnspecifiedCertString)) {
// Disallow submit if the user has not selected a user certificate for an EAP network
// configuration.
enabled = false;
diff --git a/tests/robotests/src/com/android/settings/wifi/WifiConfigControllerTest.java b/tests/robotests/src/com/android/settings/wifi/WifiConfigControllerTest.java
index 5e8dd28..54be773 100644
--- a/tests/robotests/src/com/android/settings/wifi/WifiConfigControllerTest.java
+++ b/tests/robotests/src/com/android/settings/wifi/WifiConfigControllerTest.java
@@ -184,6 +184,22 @@
}
@Test
+ public void isSubmittable_EapToPskWithValidPassword_shouldReturnTrue() {
+ final TextView password = mView.findViewById(R.id.password);
+ final Spinner securitySpinner = mView.findViewById(R.id.security);
+ assertThat(password).isNotNull();
+ assertThat(securitySpinner).isNotNull();
+ when(mAccessPoint.isSaved()).thenReturn(true);
+
+ // Change it from EAP to PSK
+ mController.onItemSelected(securitySpinner, null, AccessPoint.SECURITY_EAP, 0);
+ mController.onItemSelected(securitySpinner, null, AccessPoint.SECURITY_PSK, 0);
+ password.setText(GOOD_PSK);
+
+ assertThat(mController.isSubmittable()).isTrue();
+ }
+
+ @Test
public void getSignalString_notReachable_shouldHaveNoSignalString() {
when(mAccessPoint.isReachable()).thenReturn(false);