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

Commit fc10fdf3 authored by Haijie Hong's avatar Haijie Hong
Browse files

Check bond state when bluetooth key is missing

Bug: 403847818
Test: local tested
Flag: EXEMPT minor fix
Change-Id: I3f310b5758ebecd7591d76988b351d3c6a7dfc67
parent 16fa7c1e
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -55,9 +55,18 @@ public final class BluetoothKeyMissingReceiver extends BroadcastReceiver {
        }

        BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
        if (device == null) {
            return;
        }
        PowerManager powerManager = context.getSystemService(PowerManager.class);
        if (TextUtils.equals(action, BluetoothDevice.ACTION_KEY_MISSING)) {
            Log.d(TAG, "Receive ACTION_KEY_MISSING");
            if (device.getBondState() == BluetoothDevice.BOND_NONE) {
                Log.d(
                        TAG,
                        "Device " + device.getAnonymizedAddress() + " is already unbonded, skip.");
                return;
            }
            Integer keyMissingCount = BluetoothUtils.getKeyMissingCount(device);
            if (keyMissingCount != null && keyMissingCount != 1) {
                Log.d(TAG, "Key missing count is " + keyMissingCount  + ", skip.");
+2 −0
Original line number Diff line number Diff line
@@ -127,6 +127,7 @@ public class BluetoothKeyMissingReceiverTest {
    public void broadcastReceiver_background_showNotification() {
        Intent intent = spy(new Intent(BluetoothDevice.ACTION_KEY_MISSING));
        when(intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE)).thenReturn(mBluetoothDevice);
        when(mBluetoothDevice.getBondState()).thenReturn(BluetoothDevice.BOND_BONDED);
        BluetoothKeyMissingReceiver bluetoothKeyMissingReceiver = getReceiver(intent);
        bluetoothKeyMissingReceiver.onReceive(mContext, intent);

@@ -141,6 +142,7 @@ public class BluetoothKeyMissingReceiverTest {
        when(mLocalBtManager.isForegroundActivity()).thenReturn(true);
        Intent intent = spy(new Intent(BluetoothDevice.ACTION_KEY_MISSING));
        when(intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE)).thenReturn(mBluetoothDevice);
        when(mBluetoothDevice.getBondState()).thenReturn(BluetoothDevice.BOND_BONDED);
        BluetoothKeyMissingReceiver bluetoothKeyMissingReceiver = getReceiver(intent);
        bluetoothKeyMissingReceiver.onReceive(mContext, intent);