From 0de89c92d2983938459b400e49fddc79ee6695a8 Mon Sep 17 00:00:00 2001 From: Jean-Michel Trivi Date: Wed, 18 Dec 2019 12:15:15 -0800 Subject: AudioService: fix A2DP device check when making device unavailable Fix NPE: when there is no A2DP device connected to APM, mApmConnectedDevices.get(DEVICE_OUT_BLUETOOTH_A2DP) returns null Bug: 146466665 Test: turn BT off, turn back on and connect headset Change-Id: I77d6e58a09aaeaaaacd00e1bf2b7d489ec9ad32d --- .../core/java/com/android/server/audio/AudioDeviceInventory.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/services/core/java/com/android/server/audio/AudioDeviceInventory.java b/services/core/java/com/android/server/audio/AudioDeviceInventory.java index df5600473024..352d0d56ca8a 100644 --- a/services/core/java/com/android/server/audio/AudioDeviceInventory.java +++ b/services/core/java/com/android/server/audio/AudioDeviceInventory.java @@ -125,7 +125,7 @@ public class AudioDeviceInventory { + " codec: " + Integer.toHexString(mDeviceCodecFormat) + "]"; } - String getKey() { + @NonNull String getKey() { return makeDeviceListKey(mDeviceType, mDeviceAddress); } @@ -133,7 +133,7 @@ public class AudioDeviceInventory { * Generate a unique key for the mConnectedDevices List by composing the device "type" * and the "address" associated with a specific instance of that device type */ - private static String makeDeviceListKey(int device, String deviceAddress) { + @NonNull private static String makeDeviceListKey(int device, String deviceAddress) { return "0x" + Integer.toHexString(device) + ":" + deviceAddress; } } @@ -726,8 +726,8 @@ public class AudioDeviceInventory { DeviceInfo.makeDeviceListKey(AudioSystem.DEVICE_OUT_BLUETOOTH_A2DP, address); mConnectedDevices.remove(deviceToRemoveKey); - if (!mApmConnectedDevices.get(AudioSystem.DEVICE_OUT_BLUETOOTH_A2DP) - .equals(deviceToRemoveKey)) { + if (!deviceToRemoveKey + .equals(mApmConnectedDevices.get(AudioSystem.DEVICE_OUT_BLUETOOTH_A2DP))) { // removing A2DP device not currently used by AudioPolicy, log but don't act on it AudioService.sDeviceLogger.log((new AudioEventLogger.StringEvent( "A2DP device " + address + " made unavailable, was not used")).printLog(TAG)); -- cgit v1.2.3-59-g8ed1b