Update availability for mobile network
This CL updates the availability to behave properly when a user other than the primary user is accessing it. This also makes the api return no intent if they don't have permission to access this because attempting to go to that screen will cause a crash. Also updates tests related to this change. Test: robotests still pass Bug: 64092292 Change-Id: If9913d9ae08ee3e205ff324aaeeadc755ff1d23d
This commit is contained in:
@@ -26,6 +26,7 @@ import android.telephony.TelephonyManager;
|
||||
|
||||
import com.android.settings.testutils.SettingsRobolectricTestRunner;
|
||||
import com.android.settings.TestConfig;
|
||||
import com.android.settings.testutils.shadow.ShadowRestrictedLockUtilsWrapper;
|
||||
import com.android.settingslib.core.lifecycle.Lifecycle;
|
||||
|
||||
import org.junit.Before;
|
||||
@@ -87,6 +88,7 @@ public class MobileNetworkPreferenceControllerTest {
|
||||
}
|
||||
|
||||
@Test
|
||||
@Config(shadows = ShadowRestrictedLockUtilsWrapper.class)
|
||||
public void wifiOnly_prefIsNotAvailable() {
|
||||
when(mUserManager.isAdminUser()).thenReturn(true);
|
||||
when(mUserManager.hasUserRestriction(anyString(), any(UserHandle.class)))
|
||||
|
@@ -0,0 +1,28 @@
|
||||
package com.android.settings.testutils.shadow;
|
||||
|
||||
import android.content.Context;
|
||||
import com.android.settings.network.MobileNetworkPreferenceController;
|
||||
import org.robolectric.annotation.Implementation;
|
||||
import org.robolectric.annotation.Implements;
|
||||
|
||||
@Implements(MobileNetworkPreferenceController.class)
|
||||
public class ShadowMobileNetworkPreferenceController {
|
||||
private static boolean mIsRestricted = false;
|
||||
|
||||
public void __constructor__(Context context) {
|
||||
}
|
||||
|
||||
@Implementation
|
||||
public boolean isAvailable() {
|
||||
return mIsRestricted ? false : true;
|
||||
}
|
||||
|
||||
@Implementation
|
||||
public boolean isUserRestricted() {
|
||||
return mIsRestricted;
|
||||
}
|
||||
|
||||
public static void setRestricted(boolean restricted) {
|
||||
mIsRestricted = restricted;
|
||||
}
|
||||
}
|
@@ -0,0 +1,25 @@
|
||||
package com.android.settings.testutils.shadow;
|
||||
|
||||
import android.content.Context;
|
||||
import com.android.settings.network.RestrictedLockUtilsWrapper;
|
||||
import org.robolectric.annotation.Implements;
|
||||
|
||||
/**
|
||||
* Shadow for the wrapper around RestrictedLockUtils. Should be removed/updated once robolectric is
|
||||
* updated to allow usage of new UserManager API's. see
|
||||
* {@link com.android.settingslib.RestrictedLockUtils} and
|
||||
* {@link com.android.settings.network.RestrictedLockUtilsWrapper}
|
||||
*/
|
||||
@Implements(RestrictedLockUtilsWrapper.class)
|
||||
public class ShadowRestrictedLockUtilsWrapper {
|
||||
|
||||
private boolean isRestricted;
|
||||
|
||||
public boolean hasBaseUserRestriction(Context context, String userRestriction, int userId) {
|
||||
return isRestricted;
|
||||
}
|
||||
|
||||
public void setRestricted(boolean restricted) {
|
||||
isRestricted = restricted;
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user