From d832dcc7c58e46c0f656bc36ad15aaab28a8d257 Mon Sep 17 00:00:00 2001 From: Quang Luong Date: Wed, 27 Mar 2019 15:28:34 -0700 Subject: [PATCH] Disable Mac randomization setting for Passpoint networks Mac randomization setting should be greyed out in the network details page for Passpoint networks. Bug: 129279500 Test: atest WifiPrivacyPreferenceControllerTest Change-Id: I4fc89ddbca839c4859f11f8fad212b3e0e4aa7ce --- .../wifi/details/WifiNetworkDetailsFragment.java | 2 ++ .../details/WifiPrivacyPreferenceController.java | 7 ++++++- .../WifiPrivacyPreferenceControllerTest.java | 16 ++++++++++++++++ 3 files changed, 24 insertions(+), 1 deletion(-) diff --git a/src/com/android/settings/wifi/details/WifiNetworkDetailsFragment.java b/src/com/android/settings/wifi/details/WifiNetworkDetailsFragment.java index ee4cc2983c7..10d1d48f4a2 100644 --- a/src/com/android/settings/wifi/details/WifiNetworkDetailsFragment.java +++ b/src/com/android/settings/wifi/details/WifiNetworkDetailsFragment.java @@ -140,6 +140,8 @@ public class WifiNetworkDetailsFragment extends DashboardFragment { context); privacyController.setWifiConfiguration(mAccessPoint.getConfig()); privacyController.setIsEphemeral(mAccessPoint.isEphemeral()); + privacyController.setIsPasspoint( + mAccessPoint.isPasspoint() || mAccessPoint.isPasspointConfig()); controllers.add(privacyController); return controllers; diff --git a/src/com/android/settings/wifi/details/WifiPrivacyPreferenceController.java b/src/com/android/settings/wifi/details/WifiPrivacyPreferenceController.java index a549e21ac27..7bec4119f8d 100644 --- a/src/com/android/settings/wifi/details/WifiPrivacyPreferenceController.java +++ b/src/com/android/settings/wifi/details/WifiPrivacyPreferenceController.java @@ -41,6 +41,7 @@ public class WifiPrivacyPreferenceController extends BasePreferenceController im private WifiConfiguration mWifiConfiguration; private WifiManager mWifiManager; private boolean mIsEphemeral = false; + private boolean mIsPasspoint = false; public WifiPrivacyPreferenceController(Context context) { super(context, KEY_WIFI_PRIVACY); @@ -56,6 +57,10 @@ public class WifiPrivacyPreferenceController extends BasePreferenceController im mIsEphemeral = isEphemeral; } + public void setIsPasspoint(boolean isPasspoint) { + mIsPasspoint = isPasspoint; + } + @Override public int getAvailabilityStatus() { return mContext.getResources().getBoolean( @@ -71,7 +76,7 @@ public class WifiPrivacyPreferenceController extends BasePreferenceController im updateSummary(dropDownPreference, randomizationLevel); // Makes preference not selectable, when this is a ephemeral network. - if (mIsEphemeral) { + if (mIsEphemeral || mIsPasspoint) { preference.setSelectable(false); dropDownPreference.setSummary(R.string.wifi_privacy_settings_ephemeral_summary); } diff --git a/tests/robotests/src/com/android/settings/wifi/details/WifiPrivacyPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/wifi/details/WifiPrivacyPreferenceControllerTest.java index a1af8bf272c..2e588b54a69 100644 --- a/tests/robotests/src/com/android/settings/wifi/details/WifiPrivacyPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/wifi/details/WifiPrivacyPreferenceControllerTest.java @@ -109,4 +109,20 @@ public class WifiPrivacyPreferenceControllerTest { assertThat(mDropDownPreference.isSelectable()).isFalse(); } + + @Test + public void testUpdateState_isNotPasspointNetwork_shouldBeSelectable() { + mPreferenceController.setIsPasspoint(false); + mPreferenceController.updateState(mDropDownPreference); + + assertThat(mDropDownPreference.isSelectable()).isTrue(); + } + + @Test + public void testUpdateState_isPasspointNetwork_shouldNotSelectable() { + mPreferenceController.setIsPasspoint(true); + mPreferenceController.updateState(mDropDownPreference); + + assertThat(mDropDownPreference.isSelectable()).isFalse(); + } }