Refactor permissions code for bluetooth controller enabler

Bluetooth may be disabled for a user. This CL refactors the code
that determines this a bit so we can query that without having to
have the UI open.

Test: robotests still pass
Bug: 62022517
Change-Id: Ic0837d21bdc4007a20d6ad138753d4f5d37ceceb
Merged-In: I3b54529865e16b7e1640b0adda7f7edb9d1a41f7
This commit is contained in:
Salvador Martinez
2017-08-03 13:56:10 -07:00
parent 4f0e5f8395
commit a8db5ccea8
2 changed files with 36 additions and 6 deletions

View File

@@ -208,12 +208,7 @@ public final class BluetoothEnabler implements SwitchWidgetController.OnSwitchCh
*/
@VisibleForTesting
boolean maybeEnforceRestrictions() {
EnforcedAdmin admin = mRestrictionUtils.checkIfRestrictionEnforced(
mContext, UserManager.DISALLOW_BLUETOOTH);
if (admin == null) {
admin = mRestrictionUtils.checkIfRestrictionEnforced(
mContext, UserManager.DISALLOW_CONFIG_BLUETOOTH);
}
EnforcedAdmin admin = getEnforcedAdmin(mRestrictionUtils, mContext);
mSwitchWidget.setDisabledByAdmin(admin);
if (admin != null) {
mSwitchWidget.setChecked(false);
@@ -225,4 +220,15 @@ public final class BluetoothEnabler implements SwitchWidgetController.OnSwitchCh
return admin != null;
}
public static EnforcedAdmin getEnforcedAdmin(RestrictionUtils mRestrictionUtils,
Context mContext) {
EnforcedAdmin admin = mRestrictionUtils.checkIfRestrictionEnforced(
mContext, UserManager.DISALLOW_BLUETOOTH);
if (admin == null) {
admin = mRestrictionUtils.checkIfRestrictionEnforced(
mContext, UserManager.DISALLOW_CONFIG_BLUETOOTH);
}
return admin;
}
}

View File

@@ -0,0 +1,24 @@
package com.android.settings.testutils.shadow;
import android.content.Context;
import com.android.settings.bluetooth.RestrictionUtils;
import com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
import org.robolectric.annotation.Implementation;
import org.robolectric.annotation.Implements;
@Implements(RestrictionUtils.class)
public class ShadowRestrictionUtils {
private static boolean isRestricted = false;
@Implementation
public EnforcedAdmin checkIfRestrictionEnforced(Context context, String restriction) {
if (isRestricted) {
return new EnforcedAdmin();
}
return null;
}
public static void setRestricted(boolean restricted) {
isRestricted = restricted;
}
}