From 671db6f3ba1fdb3c907e0735fe6d0d284f5c34de Mon Sep 17 00:00:00 2001 From: Marco Nelissen Date: Tue, 6 Sep 2011 16:29:12 -0700 Subject: [PATCH] Fix startBluetoothSco race Change-Id: I8b711bd3c6b12f2e3e92144c0dadac72261bf914 --- media/java/android/media/AudioService.java | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/media/java/android/media/AudioService.java b/media/java/android/media/AudioService.java index d233f92a9670d..9d9b6eadc8ad9 100644 --- a/media/java/android/media/AudioService.java +++ b/media/java/android/media/AudioService.java @@ -1347,11 +1347,10 @@ public class AudioService extends IAudioService.Stub { // currently controlled by the same client process. if ((AudioService.this.mMode == AudioSystem.MODE_NORMAL || mSetModeDeathHandlers.get(0).getPid() == mCreatorPid) && - mBluetoothHeadsetDevice != null && (mScoAudioState == SCO_STATE_INACTIVE || mScoAudioState == SCO_STATE_DEACTIVATE_REQ)) { if (mScoAudioState == SCO_STATE_INACTIVE) { - if (mBluetoothHeadset != null) { + if (mBluetoothHeadset != null && mBluetoothHeadsetDevice != null) { if (mBluetoothHeadset.startScoUsingVirtualVoiceCall( mBluetoothHeadsetDevice)) { mScoAudioState = SCO_STATE_ACTIVE_INTERNAL; @@ -1370,11 +1369,10 @@ public class AudioService extends IAudioService.Stub { broadcastScoConnectionState(AudioManager.SCO_AUDIO_STATE_DISCONNECTED); } } else if (state == BluetoothHeadset.STATE_AUDIO_DISCONNECTED && - mBluetoothHeadsetDevice != null && (mScoAudioState == SCO_STATE_ACTIVE_INTERNAL || mScoAudioState == SCO_STATE_ACTIVATE_REQ)) { if (mScoAudioState == SCO_STATE_ACTIVE_INTERNAL) { - if (mBluetoothHeadset != null) { + if (mBluetoothHeadset != null && mBluetoothHeadsetDevice != null) { if (!mBluetoothHeadset.stopScoUsingVirtualVoiceCall( mBluetoothHeadsetDevice)) { mScoAudioState = SCO_STATE_INACTIVE;