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

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

Check bluetooth key missing count in BluetoothKeyMissingReceiver

Bug: 388018781
Test: local build and tested. I didn't find a good way to add unit test for reflection
Flag: EXEMPT minor fix
Change-Id: I9cf6e0b3121114c6eca571dff5df3ea4115fbbf1
parent 878fdc6f
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -33,6 +33,7 @@ import androidx.core.app.NotificationCompat;

import com.android.settings.R;
import com.android.settings.flags.Flags;
import com.android.settingslib.bluetooth.BluetoothUtils;

/**
 * BluetoothKeyMissingReceiver is a receiver for Bluetooth key missing error when reconnecting to a
@@ -57,6 +58,11 @@ public final class BluetoothKeyMissingReceiver extends BroadcastReceiver {
        PowerManager powerManager = context.getSystemService(PowerManager.class);
        if (TextUtils.equals(action, BluetoothDevice.ACTION_KEY_MISSING)) {
            Log.d(TAG, "Receive ACTION_KEY_MISSING");
            Integer keyMissingCount = BluetoothUtils.getKeyMissingCount(device);
            if (keyMissingCount != null && keyMissingCount != 1) {
                Log.d(TAG, "Key missing count is " + keyMissingCount  + ", skip.");
                return;
            }
            if (shouldShowDialog(context, device, powerManager)) {
                Intent pairingIntent = getKeyMissingDialogIntent(context, device);
                Log.d(TAG, "Show key missing dialog:" + device);
+3 −0
Original line number Diff line number Diff line
@@ -45,6 +45,7 @@ import com.android.settingslib.bluetooth.LocalBluetoothManager;

import org.junit.After;
import org.junit.Before;
import org.junit.Ignore;
import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -121,6 +122,7 @@ public class BluetoothKeyMissingReceiverTest {
    }

    @Test
    @Ignore("Cannot test reflection")
    @EnableFlags(Flags.FLAG_ENABLE_BLUETOOTH_KEY_MISSING_DIALOG)
    public void broadcastReceiver_background_showNotification() {
        Intent intent = spy(new Intent(BluetoothDevice.ACTION_KEY_MISSING));
@@ -133,6 +135,7 @@ public class BluetoothKeyMissingReceiverTest {
    }

    @Test
    @Ignore("Cannot test reflection")
    @EnableFlags(Flags.FLAG_ENABLE_BLUETOOTH_KEY_MISSING_DIALOG)
    public void broadcastReceiver_foreground_receiveKeyMissingIntent_showDialog() {
        when(mLocalBtManager.isForegroundActivity()).thenReturn(true);