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

Commit 21a88665 authored by Shen Lin's avatar Shen Lin
Browse files

Introduce isDeviceClassMatched() to align BluetoothClass comparison

getBluetoothClass is nullable that caller needs paying attention to. This CL introduced a unified and safe method to BluetoothUtils to align this comparison.

Bug: 264162859
Test: atest CachedBluetoothDeviceTest
Change-Id: I740defb7bc369f659103b09643c3e37050ea8bbe
parent d469322a
Loading
Loading
Loading
Loading
+12 −0
Original line number Diff line number Diff line
@@ -278,6 +278,18 @@ public class BluetoothUtils {
        return false;
    }

    /**
     * Check if a device class matches with a defined BluetoothClass device.
     *
     * @param device Must be one of the public constants in {@link BluetoothClass.Device}
     * @return true if device class matches, false otherwise.
     */
    public static boolean isDeviceClassMatched(@NonNull BluetoothDevice bluetoothDevice,
            int device) {
        return bluetoothDevice.getBluetoothClass() != null
                && bluetoothDevice.getBluetoothClass().getDeviceClass() == device;
    }

    private static boolean isAdvancedHeaderEnabled() {
        if (!DeviceConfig.getBoolean(DeviceConfig.NAMESPACE_SETTINGS_UI, BT_ADVANCED_HEADER_ENABLED,
                true)) {
+4 −5
Original line number Diff line number Diff line
@@ -1020,12 +1020,11 @@ public class CachedBluetoothDevice implements Comparable<CachedBluetoothDevice>
        if (BluetoothUuid.containsAnyUuid(uuids, PbapServerProfile.PBAB_CLIENT_UUIDS)) {
            // The pairing dialog now warns of phone-book access for paired devices.
            // No separate prompt is displayed after pairing.
            final BluetoothClass bluetoothClass = mDevice.getBluetoothClass();
            if (mDevice.getPhonebookAccessPermission() == BluetoothDevice.ACCESS_UNKNOWN) {
                if (bluetoothClass != null && (bluetoothClass.getDeviceClass()
                        == BluetoothClass.Device.AUDIO_VIDEO_HANDSFREE
                        || bluetoothClass.getDeviceClass()
                        == BluetoothClass.Device.AUDIO_VIDEO_WEARABLE_HEADSET)) {
                if (BluetoothUtils.isDeviceClassMatched(mDevice,
                        BluetoothClass.Device.AUDIO_VIDEO_HANDSFREE)
                        || BluetoothUtils.isDeviceClassMatched(mDevice,
                        BluetoothClass.Device.AUDIO_VIDEO_WEARABLE_HEADSET)) {
                    EventLog.writeEvent(0x534e4554, "138529441", -1, "");
                }
            }