From dd1947c0783dfde6cf77c88e3b9aa45140f50023 Mon Sep 17 00:00:00 2001 From: Weng Su Date: Tue, 23 Jan 2024 06:44:46 +0800 Subject: [PATCH] Fix Wi-Fi anonymous ID UI issue - Do not reset the anonymous default ID after retrieving the previous value from WifiConfiguration. Fix: 267517525 Flag: None Test: manual test make RunSettingsRoboTests ROBOTEST_FILTER=WifiConfigController2Test Change-Id: Ic10d6953f6657836e18eab6884df2af0f35a20c4 --- .../settings/wifi/WifiConfigController2.java | 6 +++++- .../settings/wifi/WifiConfigController2Test.java | 14 ++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/src/com/android/settings/wifi/WifiConfigController2.java b/src/com/android/settings/wifi/WifiConfigController2.java index b2353f047f7..b38dff34cb9 100644 --- a/src/com/android/settings/wifi/WifiConfigController2.java +++ b/src/com/android/settings/wifi/WifiConfigController2.java @@ -1382,7 +1382,11 @@ public class WifiConfigController2 implements TextWatcher, @VisibleForTesting void setAnonymousIdVisible() { - mView.findViewById(R.id.l_anonymous).setVisibility(View.VISIBLE); + View view = mView.findViewById(R.id.l_anonymous); + if (view.getVisibility() == View.VISIBLE) { + return; + } + view.setVisibility(View.VISIBLE); mEapAnonymousView.setText(DEFAULT_ANONYMOUS_ID); } diff --git a/tests/robotests/src/com/android/settings/wifi/WifiConfigController2Test.java b/tests/robotests/src/com/android/settings/wifi/WifiConfigController2Test.java index d17414d429e..4fcc93daba3 100644 --- a/tests/robotests/src/com/android/settings/wifi/WifiConfigController2Test.java +++ b/tests/robotests/src/com/android/settings/wifi/WifiConfigController2Test.java @@ -21,9 +21,11 @@ import static com.android.settings.wifi.WifiConfigController2.WIFI_EAP_METHOD_SI import static com.google.common.truth.Truth.assertThat; +import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyInt; import static org.mockito.Mockito.eq; import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.never; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; @@ -997,6 +999,18 @@ public class WifiConfigController2Test { assertThat(anonymousId.getText().toString()).isEqualTo(DEFAULT_ANONYMOUS_ID); } + @Test + public void setAnonymousIdVisible_viewIsVisible_doNotSetText() { + createController(mWifiEntry, WifiConfigUiBase2.MODE_CONNECT, false); + View anonymousLayout = mView.findViewById(R.id.l_anonymous); + mController.mEapAnonymousView = mock(TextView.class); + anonymousLayout.setVisibility(View.VISIBLE); + + mController.setAnonymousIdVisible(); + + verify(mController.mEapAnonymousView, never()).setText(any(String.class)); + } + private void setUpModifyingSavedCertificateConfigController(String savedCaCertificate, String savedUserCertificate) { final WifiConfiguration mockWifiConfig = spy(new WifiConfiguration());