Disable "Add network" if DISALLOW_ADD_WIFI_CONFIG
- When DISALLOW_ADD_WIFI_CONFIG is not restricted by Admin - Disable the preference directly Bug: 335387874 Flag: EXEMPT bugfix Test: Manual testing atest -c AddWifiNetworkPreferenceTest Change-Id: I0bb08656971107c73d7632a395a820d03723620b
This commit is contained in:
@@ -26,11 +26,13 @@ import android.widget.ImageButton;
|
||||
|
||||
import androidx.annotation.DrawableRes;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.annotation.VisibleForTesting;
|
||||
import androidx.preference.PreferenceViewHolder;
|
||||
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.wifi.dpp.WifiDppUtils;
|
||||
import com.android.settingslib.RestrictedPreference;
|
||||
import com.android.settingslib.wifi.WifiEnterpriseRestrictionUtils;
|
||||
|
||||
/**
|
||||
* The Preference for users to add Wi-Fi networks in WifiSettings
|
||||
@@ -53,7 +55,7 @@ public class AddWifiNetworkPreference extends RestrictedPreference {
|
||||
setTitle(R.string.wifi_add_network);
|
||||
|
||||
mScanIconDrawable = getDrawable(R.drawable.ic_scan_24dp);
|
||||
checkRestrictionAndSetDisabled(UserManager.DISALLOW_ADD_WIFI_CONFIG);
|
||||
checkRestrictionAndSetDisabled();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -80,4 +82,15 @@ public class AddWifiNetworkPreference extends RestrictedPreference {
|
||||
}
|
||||
return buttonIcon;
|
||||
}
|
||||
|
||||
@VisibleForTesting
|
||||
void checkRestrictionAndSetDisabled() {
|
||||
checkRestrictionAndSetDisabled(UserManager.DISALLOW_ADD_WIFI_CONFIG);
|
||||
if (isDisabledByAdmin()) {
|
||||
return;
|
||||
}
|
||||
if (!WifiEnterpriseRestrictionUtils.isAddWifiConfigAllowed(getContext())) {
|
||||
setEnabled(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -15,19 +15,23 @@
|
||||
*/
|
||||
package com.android.settings.wifi;
|
||||
|
||||
import static android.os.UserManager.DISALLOW_ADD_WIFI_CONFIG;
|
||||
|
||||
import static com.google.common.truth.Truth.assertThat;
|
||||
|
||||
import static org.mockito.Mockito.spy;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
import android.content.Context;
|
||||
import android.os.UserManager;
|
||||
|
||||
import androidx.test.core.app.ApplicationProvider;
|
||||
|
||||
import com.android.settingslib.RestrictedLockUtils;
|
||||
|
||||
import org.junit.Before;
|
||||
import org.junit.Rule;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.Spy;
|
||||
import org.mockito.junit.MockitoJUnit;
|
||||
import org.mockito.junit.MockitoRule;
|
||||
@@ -42,31 +46,44 @@ public class AddWifiNetworkPreferenceTest {
|
||||
public final MockitoRule mMockitoRule = MockitoJUnit.rule();
|
||||
@Spy
|
||||
Context mContext = ApplicationProvider.getApplicationContext();
|
||||
@Mock
|
||||
private UserManager mUserManager;
|
||||
|
||||
private AddWifiNetworkPreference mPreference;
|
||||
|
||||
@Before
|
||||
public void setUp() {
|
||||
mPreference = new AddWifiNetworkPreference(mContext);
|
||||
when(mContext.getSystemService(UserManager.class)).thenReturn(mUserManager);
|
||||
|
||||
mPreference = spy(new AddWifiNetworkPreference(mContext));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void updatePreferenceForRestriction_isAddWifiConfigAllowed_prefIsEnabled() {
|
||||
// If the user is allowed to add Wi-Fi configuration then the EnforcedAdmin will be null.
|
||||
RestrictedLockUtils.EnforcedAdmin enforcedAdmin = null;
|
||||
public void checkRestrictionAndSetDisabled_disabledByAdmin_keepEnabledForClicks() {
|
||||
when(mPreference.isDisabledByAdmin()).thenReturn(true);
|
||||
|
||||
mPreference.setDisabledByAdmin(enforcedAdmin);
|
||||
mPreference.checkRestrictionAndSetDisabled();
|
||||
|
||||
assertThat(mPreference.isEnabled()).isTrue();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void updatePreferenceForRestriction_isAddWifiConfigNotAllowed_prefIsDisabled() {
|
||||
RestrictedLockUtils.EnforcedAdmin enforcedAdmin = new RestrictedLockUtils.EnforcedAdmin(
|
||||
null /* component */, UserManager.DISALLOW_ADD_WIFI_CONFIG, null /* user */);
|
||||
public void checkRestrictionAndSetDisabled_notDisabledByAdmin_setDisabled() {
|
||||
when(mPreference.isDisabledByAdmin()).thenReturn(false);
|
||||
when(mUserManager.hasUserRestriction(DISALLOW_ADD_WIFI_CONFIG)).thenReturn(true);
|
||||
|
||||
mPreference.setDisabledByAdmin(enforcedAdmin);
|
||||
mPreference.checkRestrictionAndSetDisabled();
|
||||
|
||||
assertThat(mPreference.isEnabled()).isFalse();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void checkRestrictionAndSetDisabled_noRestriction_setEnabled() {
|
||||
when(mPreference.isDisabledByAdmin()).thenReturn(false);
|
||||
when(mUserManager.hasUserRestriction(DISALLOW_ADD_WIFI_CONFIG)).thenReturn(false);
|
||||
|
||||
mPreference.checkRestrictionAndSetDisabled();
|
||||
|
||||
assertThat(mPreference.isEnabled()).isTrue();
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user