Initialize Anonymous identity field for TTLS and PEAP EAP methods

- The anonymized identity field will only be displayed for TTLS and PEAP EAP methods

- Initialize the default anonymous identity when it is displayed

Bug: 267517525
Test: manual test
make RunSettingsRoboTests ROBOTEST_FILTER=WifiConfigController2Test

Change-Id: I08bd322ff6d86c44298ebd1c4926c0a1363a16ce
This commit is contained in:
Weng Su
2023-02-08 23:42:33 +08:00
parent b0fe94818e
commit a346f5b5e2
2 changed files with 27 additions and 4 deletions

View File

@@ -97,6 +97,8 @@ public class WifiConfigController2 implements TextWatcher,
AdapterView.OnItemSelectedListener, OnCheckedChangeListener,
TextView.OnEditorActionListener, View.OnKeyListener {
private static final String TAG = "WifiConfigController2";
@VisibleForTesting
static final String DEFAULT_ANONYMOUS_ID = "anonymous";
private static final String SYSTEM_CA_STORE_PATH = "/system/etc/security/cacerts";
@@ -187,7 +189,8 @@ public class WifiConfigController2 implements TextWatcher,
private ArrayAdapter<CharSequence> mPhase2Adapter;
private Spinner mEapUserCertSpinner;
private TextView mEapIdentityView;
private TextView mEapAnonymousView;
@VisibleForTesting
TextView mEapAnonymousView;
private Spinner mIpSettingsSpinner;
private TextView mIpAddressView;
@@ -1256,7 +1259,7 @@ public class WifiConfigController2 implements TextWatcher,
mPhase2Spinner.setAdapter(mPhase2Adapter);
}
mView.findViewById(R.id.l_phase2).setVisibility(View.VISIBLE);
mView.findViewById(R.id.l_anonymous).setVisibility(View.VISIBLE);
setAnonymousIdVisible();
showPeapFields();
setUserCertInvisible();
break;
@@ -1267,7 +1270,7 @@ public class WifiConfigController2 implements TextWatcher,
mPhase2Spinner.setAdapter(mPhase2Adapter);
}
mView.findViewById(R.id.l_phase2).setVisibility(View.VISIBLE);
mView.findViewById(R.id.l_anonymous).setVisibility(View.VISIBLE);
setAnonymousIdVisible();
setUserCertInvisible();
mView.findViewById(R.id.l_sim).setVisibility(View.GONE);
break;
@@ -1313,7 +1316,6 @@ public class WifiConfigController2 implements TextWatcher,
mView.findViewById(R.id.l_sim).setVisibility(View.VISIBLE);
} else {
mView.findViewById(R.id.l_identity).setVisibility(View.VISIBLE);
mView.findViewById(R.id.l_anonymous).setVisibility(View.VISIBLE);
mView.findViewById(R.id.password_layout).setVisibility(View.VISIBLE);
mView.findViewById(R.id.show_password_layout).setVisibility(View.VISIBLE);
mView.findViewById(R.id.l_sim).setVisibility(View.GONE);
@@ -1358,6 +1360,12 @@ public class WifiConfigController2 implements TextWatcher,
mEapAnonymousView.setText("");
}
@VisibleForTesting
void setAnonymousIdVisible() {
mView.findViewById(R.id.l_anonymous).setVisibility(View.VISIBLE);
mEapAnonymousView.setText(DEFAULT_ANONYMOUS_ID);
}
private void setPasswordInvisible() {
mPasswordView.setText("");
mView.findViewById(R.id.password_layout).setVisibility(View.GONE);

View File

@@ -16,6 +16,7 @@
package com.android.settings.wifi;
import static com.android.settings.wifi.WifiConfigController2.DEFAULT_ANONYMOUS_ID;
import static com.android.settings.wifi.WifiConfigController2.WIFI_EAP_METHOD_SIM;
import static com.google.common.truth.Truth.assertThat;
@@ -963,6 +964,20 @@ public class WifiConfigController2Test {
assertThat(list).doesNotContain(WIFI_EAP_TLS_V1_3);
}
@Test
public void setAnonymousIdVisible_showAnonymousIdAndSetDefaultId() {
View anonymousLayout = mView.findViewById(R.id.l_anonymous);
TextView anonymousId = mView.findViewById(R.id.anonymous);
mController.mEapAnonymousView = anonymousId;
anonymousLayout.setVisibility(View.GONE);
anonymousId.setText("");
mController.setAnonymousIdVisible();
assertThat(anonymousLayout.getVisibility()).isEqualTo(View.VISIBLE);
assertThat(anonymousId.getText().toString()).isEqualTo(DEFAULT_ANONYMOUS_ID);
}
private void setUpModifyingSavedCertificateConfigController(String savedCaCertificate,
String savedUserCertificate) {
final WifiConfiguration mockWifiConfig = mock(WifiConfiguration.class);