Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a8db5cce authored by Salvador Martinez's avatar Salvador Martinez
Browse files

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
parent 4f0e5f83
Loading
Loading
Loading
Loading
+12 −6
Original line number Diff line number Diff line
@@ -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;
    }

}
+24 −0
Original line number Diff line number Diff line
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;
    }
}