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
This commit is contained in:
Shen Lin
2023-01-03 14:05:53 +08:00
parent d469322a84
commit 21a8866591
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, "");
}
}