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;
+    }
+}