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.DrawableRes;
|
||||||
import androidx.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
|
import androidx.annotation.VisibleForTesting;
|
||||||
import androidx.preference.PreferenceViewHolder;
|
import androidx.preference.PreferenceViewHolder;
|
||||||
|
|
||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
import com.android.settings.wifi.dpp.WifiDppUtils;
|
import com.android.settings.wifi.dpp.WifiDppUtils;
|
||||||
import com.android.settingslib.RestrictedPreference;
|
import com.android.settingslib.RestrictedPreference;
|
||||||
|
import com.android.settingslib.wifi.WifiEnterpriseRestrictionUtils;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The Preference for users to add Wi-Fi networks in WifiSettings
|
* 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);
|
setTitle(R.string.wifi_add_network);
|
||||||
|
|
||||||
mScanIconDrawable = getDrawable(R.drawable.ic_scan_24dp);
|
mScanIconDrawable = getDrawable(R.drawable.ic_scan_24dp);
|
||||||
checkRestrictionAndSetDisabled(UserManager.DISALLOW_ADD_WIFI_CONFIG);
|
checkRestrictionAndSetDisabled();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -80,4 +82,15 @@ public class AddWifiNetworkPreference extends RestrictedPreference {
|
|||||||
}
|
}
|
||||||
return buttonIcon;
|
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;
|
package com.android.settings.wifi;
|
||||||
|
|
||||||
|
import static android.os.UserManager.DISALLOW_ADD_WIFI_CONFIG;
|
||||||
|
|
||||||
import static com.google.common.truth.Truth.assertThat;
|
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.content.Context;
|
||||||
import android.os.UserManager;
|
import android.os.UserManager;
|
||||||
|
|
||||||
import androidx.test.core.app.ApplicationProvider;
|
import androidx.test.core.app.ApplicationProvider;
|
||||||
|
|
||||||
import com.android.settingslib.RestrictedLockUtils;
|
|
||||||
|
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
import org.junit.Rule;
|
import org.junit.Rule;
|
||||||
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.Spy;
|
import org.mockito.Spy;
|
||||||
import org.mockito.junit.MockitoJUnit;
|
import org.mockito.junit.MockitoJUnit;
|
||||||
import org.mockito.junit.MockitoRule;
|
import org.mockito.junit.MockitoRule;
|
||||||
@@ -42,31 +46,44 @@ public class AddWifiNetworkPreferenceTest {
|
|||||||
public final MockitoRule mMockitoRule = MockitoJUnit.rule();
|
public final MockitoRule mMockitoRule = MockitoJUnit.rule();
|
||||||
@Spy
|
@Spy
|
||||||
Context mContext = ApplicationProvider.getApplicationContext();
|
Context mContext = ApplicationProvider.getApplicationContext();
|
||||||
|
@Mock
|
||||||
|
private UserManager mUserManager;
|
||||||
|
|
||||||
private AddWifiNetworkPreference mPreference;
|
private AddWifiNetworkPreference mPreference;
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void setUp() {
|
public void setUp() {
|
||||||
mPreference = new AddWifiNetworkPreference(mContext);
|
when(mContext.getSystemService(UserManager.class)).thenReturn(mUserManager);
|
||||||
|
|
||||||
|
mPreference = spy(new AddWifiNetworkPreference(mContext));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void updatePreferenceForRestriction_isAddWifiConfigAllowed_prefIsEnabled() {
|
public void checkRestrictionAndSetDisabled_disabledByAdmin_keepEnabledForClicks() {
|
||||||
// If the user is allowed to add Wi-Fi configuration then the EnforcedAdmin will be null.
|
when(mPreference.isDisabledByAdmin()).thenReturn(true);
|
||||||
RestrictedLockUtils.EnforcedAdmin enforcedAdmin = null;
|
|
||||||
|
|
||||||
mPreference.setDisabledByAdmin(enforcedAdmin);
|
mPreference.checkRestrictionAndSetDisabled();
|
||||||
|
|
||||||
assertThat(mPreference.isEnabled()).isTrue();
|
assertThat(mPreference.isEnabled()).isTrue();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void updatePreferenceForRestriction_isAddWifiConfigNotAllowed_prefIsDisabled() {
|
public void checkRestrictionAndSetDisabled_notDisabledByAdmin_setDisabled() {
|
||||||
RestrictedLockUtils.EnforcedAdmin enforcedAdmin = new RestrictedLockUtils.EnforcedAdmin(
|
when(mPreference.isDisabledByAdmin()).thenReturn(false);
|
||||||
null /* component */, UserManager.DISALLOW_ADD_WIFI_CONFIG, null /* user */);
|
when(mUserManager.hasUserRestriction(DISALLOW_ADD_WIFI_CONFIG)).thenReturn(true);
|
||||||
|
|
||||||
mPreference.setDisabledByAdmin(enforcedAdmin);
|
mPreference.checkRestrictionAndSetDisabled();
|
||||||
|
|
||||||
assertThat(mPreference.isEnabled()).isFalse();
|
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