Merge "Fix call audio switch issue for BT LE to speaker and back to BT switch"
diff --git a/src/com/android/server/telecom/bluetooth/BluetoothDeviceManager.java b/src/com/android/server/telecom/bluetooth/BluetoothDeviceManager.java
index 58c74fc..fb637a9 100644
--- a/src/com/android/server/telecom/bluetooth/BluetoothDeviceManager.java
+++ b/src/com/android/server/telecom/bluetooth/BluetoothDeviceManager.java
@@ -186,6 +186,7 @@
private boolean mLeAudioCallbackRegistered = false;
private BluetoothLeAudio mBluetoothLeAudioService;
private boolean mLeAudioSetAsCommunicationDevice = false;
+ private String mLeAudioDevice;
private boolean mHearingAidSetAsCommunicationDevice = false;
private BluetoothDevice mBluetoothHearingAidActiveDeviceCache;
private BluetoothAdapter mBluetoothAdapter;
@@ -417,10 +418,17 @@
}
public void clearLeAudioCommunicationDevice() {
+ Log.i(this, "clearLeAudioCommunicationDevice: mLeAudioSetAsCommunicationDevice = " +
+ mLeAudioSetAsCommunicationDevice + " device = " + mLeAudioDevice);
if (!mLeAudioSetAsCommunicationDevice) {
return;
}
mLeAudioSetAsCommunicationDevice = false;
+ if (mLeAudioDevice != null) {
+ mBluetoothRouteManager.onAudioLost(mLeAudioDevice);
+ mLeAudioDevice = null;
+ }
+
if (mAudioManager == null) {
Log.i(this, "clearLeAudioCommunicationDevice: mAudioManager is null");
return;
@@ -428,7 +436,6 @@
if (mAudioManager.getCommunicationDevice() != null
&& mAudioManager.getCommunicationDevice().getType()
== AudioDeviceInfo.TYPE_BLE_HEADSET) {
- mBluetoothRouteManager.onAudioLost(mAudioManager.getCommunicationDevice().getAddress());
mAudioManager.clearCommunicationDevice();
}
}
@@ -493,6 +500,7 @@
Log.i(this, " bleHeadset device set");
mBluetoothRouteManager.onAudioOn(bleHeadset.getAddress());
mLeAudioSetAsCommunicationDevice = true;
+ mLeAudioDevice = bleHeadset.getAddress();
}
return result;
}