From f5cd7140f4f9a54c1d60f3f5711a669cc3ad1337 Mon Sep 17 00:00:00 2001 From: Weng Su Date: Wed, 23 Mar 2022 06:16:59 +0800 Subject: [PATCH] Fix adding wifi configuration issue - The Wi-Fi Enterprise Restrictions add a new UserManager.DISALLOW_ADD_WIFI_CONFIG restriction from T. - When a user requests to add Wi-Fi configuration, Settings will reject the request if the user is not allowed. - The above restriction need to be retrieved in advance so that the user's request will not be rejected. - See the result screenshot in b/224459753#comment8 Bug: 224459753 Test: manual test make RunSettingsRoboTests ROBOTEST_FILTER=AddAppNetworksActivity Change-Id: I2dfb6b9946dd9dbd4eb8bf0f6549ac5cb4466f17 --- .../addappnetworks/AddAppNetworksActivity.java | 11 ++++++----- .../addappnetworks/AddAppNetworksActivityTest.java | 14 +++++++++++--- 2 files changed, 17 insertions(+), 8 deletions(-) diff --git a/src/com/android/settings/wifi/addappnetworks/AddAppNetworksActivity.java b/src/com/android/settings/wifi/addappnetworks/AddAppNetworksActivity.java index f1e656851d5..169bcb3d838 100644 --- a/src/com/android/settings/wifi/addappnetworks/AddAppNetworksActivity.java +++ b/src/com/android/settings/wifi/addappnetworks/AddAppNetworksActivity.java @@ -56,8 +56,6 @@ public class AddAppNetworksActivity extends FragmentActivity { final Bundle mBundle = new Bundle(); @VisibleForTesting IActivityManager mActivityManager = ActivityManager.getService(); - @VisibleForTesting - boolean mIsAddWifiConfigAllow; @Override protected void onCreate(@Nullable Bundle savedInstanceState) { @@ -74,8 +72,6 @@ public class AddAppNetworksActivity extends FragmentActivity { window.setGravity(Gravity.BOTTOM); window.setLayout(WindowManager.LayoutParams.MATCH_PARENT, WindowManager.LayoutParams.WRAP_CONTENT); - - mIsAddWifiConfigAllow = WifiEnterpriseRestrictionUtils.isAddWifiConfigAllowed(this); } @Override @@ -90,7 +86,7 @@ public class AddAppNetworksActivity extends FragmentActivity { @VisibleForTesting protected boolean showAddNetworksFragment() { - if (!mIsAddWifiConfigAllow) { + if (!isAddWifiConfigAllow()) { Log.d(TAG, "Not allowed by Enterprise Restriction"); return false; } @@ -129,4 +125,9 @@ public class AddAppNetworksActivity extends FragmentActivity { } return packageName; } + + @VisibleForTesting + boolean isAddWifiConfigAllow() { + return WifiEnterpriseRestrictionUtils.isAddWifiConfigAllowed(this); + } } diff --git a/tests/robotests/src/com/android/settings/wifi/addappnetworks/AddAppNetworksActivityTest.java b/tests/robotests/src/com/android/settings/wifi/addappnetworks/AddAppNetworksActivityTest.java index 6cd20fc26fb..8391b8aa8dd 100644 --- a/tests/robotests/src/com/android/settings/wifi/addappnetworks/AddAppNetworksActivityTest.java +++ b/tests/robotests/src/com/android/settings/wifi/addappnetworks/AddAppNetworksActivityTest.java @@ -39,15 +39,14 @@ public class AddAppNetworksActivityTest { @Mock private IActivityManager mIActivityManager; - private AddAppNetworksActivity mActivity; + private FakeAddAppNetworksActivity mActivity; @Before public void setUp() { MockitoAnnotations.initMocks(this); - mActivity = Robolectric.buildActivity(AddAppNetworksActivity.class).create().get(); + mActivity = Robolectric.buildActivity(FakeAddAppNetworksActivity.class).create().get(); mActivity.mActivityManager = mIActivityManager; - mActivity.mIsAddWifiConfigAllow = true; } @Test @@ -92,4 +91,13 @@ public class AddAppNetworksActivityTest { // Do nothing. } } + + private static class FakeAddAppNetworksActivity extends AddAppNetworksActivity { + boolean mIsAddWifiConfigAllow = true; + + @Override + boolean isAddWifiConfigAllow() { + return mIsAddWifiConfigAllow; + } + } }