From f86450f907b6521e9ebb6623e3195fd8ac5cfcba Mon Sep 17 00:00:00 2001 From: Rahul Sabnis Date: Wed, 8 Mar 2023 11:36:11 -0800 Subject: [PATCH] Mirrors calls to suspend LE Audio with those for A2DP Bug: 265077756 Test: Manual Change-Id: I261b801d2c57880cc59adb07341d6b6efd70e027 --- .../java/com/android/server/audio/AudioDeviceInventory.java | 6 ++++++ services/core/java/com/android/server/audio/BtHelper.java | 1 + 2 files changed, 7 insertions(+) diff --git a/services/core/java/com/android/server/audio/AudioDeviceInventory.java b/services/core/java/com/android/server/audio/AudioDeviceInventory.java index a74f4154eb853..210fc910ef577 100644 --- a/services/core/java/com/android/server/audio/AudioDeviceInventory.java +++ b/services/core/java/com/android/server/audio/AudioDeviceInventory.java @@ -1209,6 +1209,9 @@ public class AudioDeviceInventory { "LE Audio device addr=" + address + " now available").printLog(TAG)); } + // Reset LEA suspend state each time a new sink is connected + mAudioSystem.setParameters("LeAudioSuspended=false"); + mConnectedDevices.put(DeviceInfo.makeDeviceListKey(device, address), new DeviceInfo(device, name, address, AudioSystem.AUDIO_FORMAT_DEFAULT)); mDeviceBroker.postAccessoryPlugMediaUnmute(device); @@ -1254,6 +1257,9 @@ public class AudioDeviceInventory { @GuardedBy("mDevicesLock") private void makeLeAudioDeviceUnavailableLater(String address, int device, int delayMs) { + // prevent any activity on the LEA output to avoid unwanted + // reconnection of the sink. + mAudioSystem.setParameters("LeAudioSuspended=true"); // the device will be made unavailable later, so consider it disconnected right away mConnectedDevices.remove(DeviceInfo.makeDeviceListKey(device, address)); // send the delayed message to make the device unavailable later diff --git a/services/core/java/com/android/server/audio/BtHelper.java b/services/core/java/com/android/server/audio/BtHelper.java index 6cd42f87aedeb..d3b76065f9985 100644 --- a/services/core/java/com/android/server/audio/BtHelper.java +++ b/services/core/java/com/android/server/audio/BtHelper.java @@ -477,6 +477,7 @@ public class BtHelper { mScoAudioState = SCO_STATE_INACTIVE; broadcastScoConnectionState(AudioManager.SCO_AUDIO_STATE_DISCONNECTED); AudioSystem.setParameters("A2dpSuspended=false"); + AudioSystem.setParameters("LeAudioSuspended=false"); mDeviceBroker.setBluetoothScoOn(false, "resetBluetoothSco"); }