Merge "Introduce isDeviceClassMatched() to align BluetoothClass comparison"

This commit is contained in:
William Escande
2023-01-05 05:59:38 +00:00
committed by Gerrit Code Review
2 changed files with 16 additions and 5 deletions

View File

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

View File

@@ -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, "");
}
}