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

Commit faa36472 authored by Rahul Sabnis's avatar Rahul Sabnis
Browse files

Skips the bluetooth consent pairing dialog if the device has recently been

associated with the companion app that requested the bond through CDM

Bug: 172006481
Test: Manual
Change-Id: I9a8ae1c3c7aed46295e7b0958b5c1b59960e3a26
parent 2b9f139a
Loading
Loading
Loading
Loading
+10 −4
Original line number Diff line number Diff line
@@ -37,15 +37,21 @@ public final class BluetoothPairingRequest extends BroadcastReceiver {
    if (action == null || !action.equals(BluetoothDevice.ACTION_PAIRING_REQUEST)) {
      return;
    }
    PowerManager powerManager =
        (PowerManager)context.getSystemService(Context.POWER_SERVICE);
    PowerManager powerManager = context.getSystemService(PowerManager.class);
    BluetoothDevice device =
        intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
    int pairingVariant = intent.getIntExtra(BluetoothDevice.EXTRA_PAIRING_VARIANT,
        BluetoothDevice.ERROR);
    String deviceAddress = device != null ? device.getAddress() : null;
    String deviceName = device != null ? device.getName() : null;
    boolean shouldShowDialog = LocalBluetoothPreferences.shouldShowDialogInForeground(
        context, deviceAddress, deviceName);
    if (powerManager.isInteractive() && shouldShowDialog) {

    // Skips consent pairing dialog if the device was recently associated with CDM
    if (pairingVariant == BluetoothDevice.PAIRING_VARIANT_CONSENT
        && device.canBondWithoutDialog()) {
      device.setPairingConfirmation(true);
    } else if (powerManager.isInteractive() && shouldShowDialog) {
      // Since the screen is on and the BT-related activity is in the foreground,
      // just open the dialog
      // convert broadcast intent into activity intent (same action string)