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
diff --git a/src/com/android/settings/bluetooth/BluetoothEnabler.java b/src/com/android/settings/bluetooth/BluetoothEnabler.java
index 6c41f83..c0935ab 100644
--- a/src/com/android/settings/bluetooth/BluetoothEnabler.java
+++ b/src/com/android/settings/bluetooth/BluetoothEnabler.java
@@ -208,12 +208,7 @@
*/
@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 @@
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;
+ }
+
}
diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowRestrictionUtils.java b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowRestrictionUtils.java
new file mode 100644
index 0000000..f39f10f
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowRestrictionUtils.java
@@ -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;
+ }
+}