diff --git a/src/com/android/settings/wifi/WifiConfigController.java b/src/com/android/settings/wifi/WifiConfigController.java index 68ddb3ca640..5b40614fa58 100644 --- a/src/com/android/settings/wifi/WifiConfigController.java +++ b/src/com/android/settings/wifi/WifiConfigController.java @@ -986,7 +986,10 @@ public class WifiConfigController implements TextWatcher, } mView.findViewById(R.id.eap).setVisibility(View.VISIBLE); + // TODO (b/140541213): Maybe we can remove initiateEnterpriseNetworkUi by moving code block + boolean initiateEnterpriseNetworkUi = false; if (mEapMethodSpinner == null) { + initiateEnterpriseNetworkUi = true; mEapMethodSpinner = (Spinner) mView.findViewById(R.id.method); mEapMethodSpinner.setOnItemSelectedListener(this); mPhase2Spinner = (Spinner) mView.findViewById(R.id.phase2); @@ -1043,7 +1046,7 @@ public class WifiConfigController implements TextWatcher, } // Modifying an existing network - if (mAccessPoint != null && mAccessPoint.isSaved()) { + if (initiateEnterpriseNetworkUi && mAccessPoint != null && mAccessPoint.isSaved()) { WifiEnterpriseConfig enterpriseConfig = mAccessPoint.getConfig().enterpriseConfig; int eapMethod = enterpriseConfig.getEapMethod(); int phase2Method = enterpriseConfig.getPhase2Method(); diff --git a/tests/robotests/src/com/android/settings/wifi/WifiConfigControllerTest.java b/tests/robotests/src/com/android/settings/wifi/WifiConfigControllerTest.java index 8ce300bcf24..e692fed892c 100644 --- a/tests/robotests/src/com/android/settings/wifi/WifiConfigControllerTest.java +++ b/tests/robotests/src/com/android/settings/wifi/WifiConfigControllerTest.java @@ -29,6 +29,8 @@ import static org.mockito.Mockito.when; import android.content.Context; import android.content.res.Resources; import android.net.wifi.WifiConfiguration; +import android.net.wifi.WifiEnterpriseConfig; +import android.net.wifi.WifiEnterpriseConfig.Eap; import android.net.wifi.WifiManager; import android.os.ServiceSpecificException; import android.security.KeyStore; @@ -526,4 +528,22 @@ public class WifiConfigControllerTest { assertThat(shadowImm.isSoftInputVisible()).isFalse(); } + + @Test + public void selectEapMethod_savedAccessPoint_shouldGetCorrectPosition() { + when(mAccessPoint.isSaved()).thenReturn(true); + when(mAccessPoint.getSecurity()).thenReturn(AccessPoint.SECURITY_EAP); + final WifiConfiguration mockWifiConfig = mock(WifiConfiguration.class); + final WifiEnterpriseConfig mockWifiEnterpriseConfig = mock(WifiEnterpriseConfig.class); + when(mockWifiEnterpriseConfig.getEapMethod()).thenReturn(Eap.PEAP); + mockWifiConfig.enterpriseConfig = mockWifiEnterpriseConfig ; + when(mAccessPoint.getConfig()).thenReturn(mockWifiConfig); + mController = new TestWifiConfigController(mConfigUiBase, mView, mAccessPoint, + WifiConfigUiBase.MODE_MODIFY); + final Spinner eapMethodSpinner = mView.findViewById(R.id.method); + + eapMethodSpinner.setSelection(Eap.TLS); + + assertThat(eapMethodSpinner.getSelectedItemPosition()).isEqualTo(Eap.TLS); + } }