diff --git a/src/com/android/settings/wifi/AccessPointDialog.java b/src/com/android/settings/wifi/AccessPointDialog.java index 3a179a0e1e3..878478bb803 100644 --- a/src/com/android/settings/wifi/AccessPointDialog.java +++ b/src/com/android/settings/wifi/AccessPointDialog.java @@ -246,7 +246,6 @@ public class AccessPointDialog extends AlertDialog implements DialogInterface.On } else if (mMode == MODE_INFO) { if (mState.isEnterprise() && !mState.configured) { setLayout(R.layout.wifi_ap_configure); - defaultPasswordVisibility = false; setEnterpriseFieldsVisible(true); } else { setLayout(R.layout.wifi_ap_info); @@ -319,6 +318,8 @@ public class AccessPointDialog extends AlertDialog implements DialogInterface.On if (mMode == MODE_CONFIGURE || (mState.isEnterprise() && !mState.configured)) { setEnterpriseFields(view); + mPhase2Spinner.setSelection(getSelectionIndex( + R.array.wifi_phase2_entries, mState.getPhase2())); mEapSpinner.setSelection(getSelectionIndex( R.array.wifi_eap_entries, mState.getEap())); mClientCertSpinner.setSelection(getSelectionIndex( @@ -663,14 +664,15 @@ public class AccessPointDialog extends AlertDialog implements DialogInterface.On } } switch (securityType) { + case SECURITY_IEEE8021X: case SECURITY_WPA_EAP: { - mState.setSecurity(AccessPointState.WPA_EAP); - mState.setEap(mEapSpinner.getSelectedItemPosition()); - break; - } - case SECURITY_IEEE8021X: { - mState.setSecurity(AccessPointState.IEEE8021X); + if (securityType == SECURITY_WPA_EAP) { + mState.setSecurity(AccessPointState.WPA_EAP); + } else { + mState.setSecurity(AccessPointState.IEEE8021X); + } mState.setEap(mEapSpinner.getSelectedItemPosition()); + mState.setPhase2(mPhase2Spinner.getSelectedItem()); break; } default: diff --git a/src/com/android/settings/wifi/AccessPointState.java b/src/com/android/settings/wifi/AccessPointState.java index 8fb651bc012..899c3047a5f 100644 --- a/src/com/android/settings/wifi/AccessPointState.java +++ b/src/com/android/settings/wifi/AccessPointState.java @@ -375,12 +375,22 @@ public final class AccessPointState implements Comparable, Par /* For Enterprise Fields */ public void setEnterpriseField(int field, String value) { - if (value != null && field >= 0 && field < MAX_ENTRPRISE_FIELD) { + if ((value != null) && (field >= 0) && (field < MAX_ENTRPRISE_FIELD)) { this.mEnterpriseFields[field] = value; requestRefresh(); } } + public void setPhase2(String phase2) { + if (!TextUtils.isEmpty(phase2) && (!phase2.equals("None"))) { + mPhase2 = phase2; + } + } + + public String getPhase2() { + return mPhase2; + } + public void setEap(int method) { mEap = EAP_METHOD[method]; requestRefresh(); @@ -495,6 +505,12 @@ public final class AccessPointState implements Comparable, Par config.hiddenSSID = hiddenSsid; config.SSID = convertToQuotedString(ssid); config.eap = mEap; + + if (!TextUtils.isEmpty(mPhase2)) { + config.phase2 = convertToQuotedString("auth=" + mPhase2); + } else { + config.phase2 = null; + } if (!TextUtils.isEmpty(mEnterpriseFields[IDENTITY])) { config.identity = convertToQuotedString(mEnterpriseFields[IDENTITY]);