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 was removed in ag/17730892 but I don't understand the reason.)

It also calls disconnectLeAudio for broadcast profiles.

Bug: 230298077
Test: manually turning off BT to check if
media is paused.

Change-Id: Ifd74c244e19f5e7f92fdbd8f7d20cd99a054425a
This commit is contained in:
Kyunglyul Hyun
2022-04-26 16:07:24 +09:00
parent f69119a170
commit 695a264811
2 changed files with 6 additions and 2 deletions

View File

@@ -862,8 +862,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;
}
@@ -879,6 +879,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)
);

View File

@@ -462,6 +462,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")
@@ -687,6 +688,7 @@ public class BtHelper {
case BluetoothProfile.HEADSET:
case BluetoothProfile.HEARING_AID:
case BluetoothProfile.LE_AUDIO:
case BluetoothProfile.LE_AUDIO_BROADCAST:
mDeviceBroker.postBtProfileDisconnected(profile);
break;