From 2e51f5a70cab2920ae291d57346e88b5c9ce76ab Mon Sep 17 00:00:00 2001 From: changbetty Date: Fri, 7 Jan 2022 15:18:46 +0000 Subject: [PATCH] To add restriction check for WiFi Configuration Addition Bug: 203169077 Test: make RunSettingsLibRoboTests ROBOTEST_FILTER=WifiEnterpriseRestrictionUtilsTest Change-Id: Ibe4b26b782d41c7608aa80cae3cbc57ffa747e34 --- .../wifi/WifiEnterpriseRestrictionUtils.java | 16 ++++++++++++ .../WifiEnterpriseRestrictionUtilsTest.java | 26 +++++++++++++++++++ 2 files changed, 42 insertions(+) diff --git a/packages/SettingsLib/src/com/android/settingslib/wifi/WifiEnterpriseRestrictionUtils.java b/packages/SettingsLib/src/com/android/settingslib/wifi/WifiEnterpriseRestrictionUtils.java index 21a4ac6220fb2..fa4ae6712aaaf 100644 --- a/packages/SettingsLib/src/com/android/settingslib/wifi/WifiEnterpriseRestrictionUtils.java +++ b/packages/SettingsLib/src/com/android/settingslib/wifi/WifiEnterpriseRestrictionUtils.java @@ -60,6 +60,22 @@ public class WifiEnterpriseRestrictionUtils { return true; } + /** + * Confirm Wi-Fi Config is allowed to add according to whether user restriction is set + * + * @param context A context + * @return whether the device is permitted to add new Wi-Fi config + */ + public static boolean isAddWifiConfigAllowed(Context context) { + final UserManager userManager = context.getSystemService(UserManager.class); + final Bundle restrictions = userManager.getUserRestrictions(); + if (isAtLeastT() && restrictions.getBoolean(UserManager.DISALLOW_ADD_WIFI_CONFIG)) { + Log.i(TAG, "Wi-Fi Add network isn't available due to user restriction."); + return false; + } + return true; + } + @ChecksSdkIntAtLeast(api=Build.VERSION_CODES.TIRAMISU) private static boolean isAtLeastT() { return Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU; diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/wifi/WifiEnterpriseRestrictionUtilsTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/wifi/WifiEnterpriseRestrictionUtilsTest.java index 3c339defbaf45..f6af09a34388f 100644 --- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/wifi/WifiEnterpriseRestrictionUtilsTest.java +++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/wifi/WifiEnterpriseRestrictionUtilsTest.java @@ -103,4 +103,30 @@ public class WifiEnterpriseRestrictionUtilsTest { assertThat(WifiEnterpriseRestrictionUtils.isWifiDirectAllowed(mContext)).isTrue(); } + + @Test + public void isAddWifiConfigAllowed_setSDKForS_shouldReturnTrue() { + ReflectionHelpers.setStaticField(Build.VERSION.class, "SDK_INT", Build.VERSION_CODES.S); + when(mBundle.getBoolean(UserManager.DISALLOW_ADD_WIFI_CONFIG)).thenReturn(true); + + assertThat(WifiEnterpriseRestrictionUtils.isAddWifiConfigAllowed(mContext)).isTrue(); + } + + @Test + public void isAddWifiConfigAllowed_setSDKForTAndDisallowForRestriction_shouldReturnFalse() { + ReflectionHelpers.setStaticField( + Build.VERSION.class, "SDK_INT", Build.VERSION_CODES.TIRAMISU); + when(mBundle.getBoolean(UserManager.DISALLOW_ADD_WIFI_CONFIG)).thenReturn(true); + + assertThat(WifiEnterpriseRestrictionUtils.isAddWifiConfigAllowed(mContext)).isFalse(); + } + + @Test + public void isAddWifiConfigAllowed_setSDKForTAndAllowForRestriction_shouldReturnTrue() { + ReflectionHelpers.setStaticField( + Build.VERSION.class, "SDK_INT", Build.VERSION_CODES.TIRAMISU); + when(mBundle.getBoolean(UserManager.DISALLOW_ADD_WIFI_CONFIG)).thenReturn(false); + + assertThat(WifiEnterpriseRestrictionUtils.isAddWifiConfigAllowed(mContext)).isTrue(); + } }