From 80786db7b4223b362bbc2823d6878efb526cc286 Mon Sep 17 00:00:00 2001 From: Kyunglyul Hyun Date: Tue, 26 Apr 2022 16:07:24 +0900 Subject: [PATCH] Fix AudioDeviceInventory#disconnectLeAudio This CL fixes disconnectLeAudio to disconnect devices properly and make it send becoming noisy intent when an LE audio device is disconnected. It also calls disconnectLeAudio for broadcast profiles. Bug: 230298077 Test: manually turning off BT to check if media is paused. Merged-In: Ifd74c244e19f5e7f92fdbd8f7d20cd99a054425a Change-Id: Ifd74c244e19f5e7f92fdbd8f7d20cd99a054425a (cherry picked from commit 695a264811f38964c9e7ea05ac5b7f6c3f4c9761) --- .../java/com/android/server/audio/AudioDeviceInventory.java | 6 ++++-- services/core/java/com/android/server/audio/BtHelper.java | 2 ++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/services/core/java/com/android/server/audio/AudioDeviceInventory.java b/services/core/java/com/android/server/audio/AudioDeviceInventory.java index 282714a5dd21f..eef206c1dafce 100644 --- a/services/core/java/com/android/server/audio/AudioDeviceInventory.java +++ b/services/core/java/com/android/server/audio/AudioDeviceInventory.java @@ -829,8 +829,8 @@ public class AudioDeviceInventory { } /*package*/ void disconnectLeAudio(int device) { - if (device != AudioSystem.DEVICE_OUT_BLE_HEADSET || - device != AudioSystem.DEVICE_OUT_BLE_BROADCAST) { + if (device != AudioSystem.DEVICE_OUT_BLE_HEADSET + && device != AudioSystem.DEVICE_OUT_BLE_BROADCAST) { Log.e(TAG, "disconnectLeAudio: Can't disconnect not LE Audio device " + device); return; } @@ -846,6 +846,8 @@ public class AudioDeviceInventory { new MediaMetrics.Item(mMetricsId + "disconnectLeAudio") .record(); if (toRemove.size() > 0) { + final int delay = checkSendBecomingNoisyIntentInt(device, 0, + AudioSystem.DEVICE_NONE); toRemove.stream().forEach(deviceAddress -> makeLeAudioDeviceUnavailable(deviceAddress, device) ); diff --git a/services/core/java/com/android/server/audio/BtHelper.java b/services/core/java/com/android/server/audio/BtHelper.java index 7d9173d0561e1..c8323374d504a 100644 --- a/services/core/java/com/android/server/audio/BtHelper.java +++ b/services/core/java/com/android/server/audio/BtHelper.java @@ -461,6 +461,7 @@ public class BtHelper { mDeviceBroker.postBtProfileDisconnected(BluetoothProfile.HEADSET); mDeviceBroker.postBtProfileDisconnected(BluetoothProfile.HEARING_AID); mDeviceBroker.postBtProfileDisconnected(BluetoothProfile.LE_AUDIO); + mDeviceBroker.postBtProfileDisconnected(BluetoothProfile.LE_AUDIO_BROADCAST); } // @GuardedBy("AudioDeviceBroker.mSetModeLock") @@ -675,6 +676,7 @@ public class BtHelper { case BluetoothProfile.HEADSET: case BluetoothProfile.HEARING_AID: case BluetoothProfile.LE_AUDIO: + case BluetoothProfile.LE_AUDIO_BROADCAST: mDeviceBroker.postBtProfileDisconnected(profile); break;