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

Commit af29f8ff authored by Lenka Trochtova's avatar Lenka Trochtova Committed by android-build-merger
Browse files

Merge "Don't offer the BT sharing option to the user if BT is disallowed." am: 133015c4

am: f21f914c

Change-Id: I56d94f43683581d940d3711c9ca86fee0861b0e6
parents 75789509 f21f914c
Loading
Loading
Loading
Loading
+27 −1
Original line number Diff line number Diff line
@@ -217,6 +217,11 @@ class BluetoothManagerService extends IBluetoothManager.Stub {
        @Override
        public void onUserRestrictionsChanged(int userId, Bundle newRestrictions,
                Bundle prevRestrictions) {
            if (!newRestrictions.containsKey(UserManager.DISALLOW_BLUETOOTH)
                    && !prevRestrictions.containsKey(UserManager.DISALLOW_BLUETOOTH)) {
                // The relevant restriction has not changed - do nothing.
                return;
            }
            final boolean bluetoothDisallowed =
                    newRestrictions.getBoolean(UserManager.DISALLOW_BLUETOOTH);
            if ((mEnable || mEnableExternal) && bluetoothDisallowed) {
@@ -227,6 +232,7 @@ class BluetoothManagerService extends IBluetoothManager.Stub {
                  // when from system.
                }
            }
            updateOppLauncherComponentState(bluetoothDisallowed);
        }
    };

@@ -937,7 +943,9 @@ class BluetoothManagerService extends IBluetoothManager.Stub {
        UserManagerInternal userManagerInternal =
                LocalServices.getService(UserManagerInternal.class);
        userManagerInternal.addUserRestrictionsListener(mUserRestrictionsListener);
        if (isBluetoothDisallowed()) {
        final boolean isBluetoothDisallowed = isBluetoothDisallowed();
        updateOppLauncherComponentState(isBluetoothDisallowed);
        if (isBluetoothDisallowed) {
            return;
        }
        if (mEnableExternal && isBluetoothPersistedStateOnBluetooth()) {
@@ -1994,6 +2002,24 @@ class BluetoothManagerService extends IBluetoothManager.Stub {
        }
    }

    /**
     * Disables BluetoothOppLauncherActivity component, so the Bluetooth sharing option is not
     * offered to the user if Bluetooth is disallowed. Puts the component to its default state if
     * Bluetooth is not disallowed.
     *
     * @param bluetoothDisallowed whether the {@link UserManager.DISALLOW_BLUETOOTH} user
     * restriction was set.
     */
    private void updateOppLauncherComponentState(boolean bluetoothDisallowed) {
        final ComponentName oppLauncherComponent = new ComponentName("com.android.bluetooth",
                "com.android.bluetooth.opp.BluetoothOppLauncherActivity");
        final int newState = bluetoothDisallowed
                ? PackageManager.COMPONENT_ENABLED_STATE_DISABLED
                : PackageManager.COMPONENT_ENABLED_STATE_DEFAULT;
        mContext.getPackageManager()
                .setComponentEnabledSetting(oppLauncherComponent, newState, 0);
    }

    @Override
    public void dump(FileDescriptor fd, PrintWriter writer, String[] args) {
        mContext.enforceCallingOrSelfPermission(android.Manifest.permission.DUMP, TAG);