audio service: fix rapid succession of A2DP devices connections

commit dae476f7330 introduced a potential problem when a different BT A2DP
device is connected just after disconnecting one.

Bug: 37499793
Test: check connection to new BT A2DP device when one is already connected.
Change-Id: I8055844822fcc1640cca67fab2cba629c93f7cfa
This commit is contained in:
Eric Laurent
2017-05-23 10:39:38 -07:00
parent 507822decb
commit 4724ea7ef7

View File

@@ -3931,7 +3931,7 @@ public class AudioService extends IAudioService.Stub
public int setBluetoothA2dpDeviceConnectionState(BluetoothDevice device, int state, int profile)
{
if (mAudioHandler.hasMessages(MSG_SET_A2DP_SINK_CONNECTION_STATE)) {
if (mAudioHandler.hasMessages(MSG_SET_A2DP_SINK_CONNECTION_STATE, device)) {
return 0;
}
return setBluetoothA2dpDeviceConnectionStateInt(
@@ -5070,7 +5070,7 @@ public class AudioService extends IAudioService.Stub
private void onSetA2dpSinkConnectionState(BluetoothDevice btDevice, int state)
{
if (DEBUG_VOL) {
if (DEBUG_DEVICES) {
Log.d(TAG, "onSetA2dpSinkConnectionState btDevice=" + btDevice+"state=" + state);
}
if (btDevice == null) {
@@ -5173,7 +5173,7 @@ public class AudioService extends IAudioService.Stub
int device = AudioSystem.DEVICE_OUT_BLUETOOTH_A2DP;
synchronized (mConnectedDevices) {
if (mAudioHandler.hasMessages(MSG_SET_A2DP_SINK_CONNECTION_STATE)) {
if (mAudioHandler.hasMessages(MSG_SET_A2DP_SINK_CONNECTION_STATE, btDevice)) {
return;
}
final String key = makeDeviceListKey(device, address);