Restrict WifiDialogActivity

- Don't show WifiDialogActivity if user has DISALLOW_ADD_WIFI_CONFIG

Fix: 299931761
Bug: 314867581
Flag: None
Test: manual test with TestDPC
atest -c SettingsRoboTests:WifiDialogActivityTest

Change-Id: Icbb8f45922ded163208976be9c2816060dcf09f1
This commit is contained in:
Weng Su
2024-01-26 17:59:40 +08:00
parent bee65b4109
commit 51fa3d798a
2 changed files with 27 additions and 3 deletions

View File

@@ -17,6 +17,7 @@
package com.android.settings.wifi; package com.android.settings.wifi;
import static android.Manifest.permission.ACCESS_FINE_LOCATION; import static android.Manifest.permission.ACCESS_FINE_LOCATION;
import static android.os.UserManager.DISALLOW_ADD_WIFI_CONFIG;
import static android.os.UserManager.DISALLOW_CONFIG_WIFI; import static android.os.UserManager.DISALLOW_CONFIG_WIFI;
import android.app.KeyguardManager; import android.app.KeyguardManager;
@@ -122,7 +123,7 @@ public class WifiDialogActivity extends ObservableActivity implements WifiDialog
} }
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
if (!isConfigWifiAllowed()) { if (!isConfigWifiAllowed() || !isAddWifiConfigAllowed()) {
finish(); finish();
return; return;
} }
@@ -393,6 +394,16 @@ public class WifiDialogActivity extends ObservableActivity implements WifiDialog
return isConfigWifiAllowed; return isConfigWifiAllowed;
} }
@VisibleForTesting
boolean isAddWifiConfigAllowed() {
UserManager userManager = getSystemService(UserManager.class);
if (userManager != null && userManager.hasUserRestriction(DISALLOW_ADD_WIFI_CONFIG)) {
Log.e(TAG, "The user is not allowed to add Wi-Fi configuration.");
return false;
}
return true;
}
private boolean hasWifiManager() { private boolean hasWifiManager() {
if (mWifiManager != null) return true; if (mWifiManager != null) return true;
mWifiManager = getSystemService(WifiManager.class); mWifiManager = getSystemService(WifiManager.class);

View File

@@ -18,6 +18,7 @@ package com.android.settings.wifi;
import static android.Manifest.permission.ACCESS_COARSE_LOCATION; import static android.Manifest.permission.ACCESS_COARSE_LOCATION;
import static android.Manifest.permission.ACCESS_FINE_LOCATION; import static android.Manifest.permission.ACCESS_FINE_LOCATION;
import static android.os.UserManager.DISALLOW_ADD_WIFI_CONFIG;
import static android.os.UserManager.DISALLOW_CONFIG_WIFI; import static android.os.UserManager.DISALLOW_CONFIG_WIFI;
import static com.android.settings.wifi.WifiDialogActivity.REQUEST_CODE_WIFI_DPP_ENROLLEE_QR_CODE_SCANNER; import static com.android.settings.wifi.WifiDialogActivity.REQUEST_CODE_WIFI_DPP_ENROLLEE_QR_CODE_SCANNER;
@@ -50,7 +51,6 @@ import com.android.wifitrackerlib.WifiEntry;
import com.google.android.setupcompat.util.WizardManagerHelper; import com.google.android.setupcompat.util.WizardManagerHelper;
import org.junit.Before; import org.junit.Before;
import org.junit.Ignore;
import org.junit.Test; import org.junit.Test;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
import org.mockito.Mock; import org.mockito.Mock;
@@ -58,7 +58,6 @@ import org.mockito.MockitoAnnotations;
import org.robolectric.Robolectric; import org.robolectric.Robolectric;
import org.robolectric.RobolectricTestRunner; import org.robolectric.RobolectricTestRunner;
@Ignore("b/314867581")
@RunWith(RobolectricTestRunner.class) @RunWith(RobolectricTestRunner.class)
public class WifiDialogActivityTest { public class WifiDialogActivityTest {
@@ -242,6 +241,20 @@ public class WifiDialogActivityTest {
assertThat(mActivity.isConfigWifiAllowed()).isFalse(); assertThat(mActivity.isConfigWifiAllowed()).isFalse();
} }
@Test
public void isAddWifiConfigAllowed_hasNoUserRestriction_returnTrue() {
when(mUserManager.hasUserRestriction(DISALLOW_ADD_WIFI_CONFIG)).thenReturn(false);
assertThat(mActivity.isAddWifiConfigAllowed()).isTrue();
}
@Test
public void isAddWifiConfigAllowed_hasUserRestriction_returnFalse() {
when(mUserManager.hasUserRestriction(DISALLOW_ADD_WIFI_CONFIG)).thenReturn(true);
assertThat(mActivity.isAddWifiConfigAllowed()).isFalse();
}
@Test @Test
public void hasPermissionForResult_noCallingPackage_returnFalse() { public void hasPermissionForResult_noCallingPackage_returnFalse() {
when(mActivity.getCallingPackage()).thenReturn(null); when(mActivity.getCallingPackage()).thenReturn(null);