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

am: 345362c66f

Change-Id: I56d94f43683581d940d3711c9ca86fee0861b0e6
This commit is contained in:
Lenka Trochtova
2017-01-11 14:59:18 +00:00
committed by android-build-merger

View File

@@ -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);