Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 663ec308 authored by Eric Laurent's avatar Eric Laurent
Browse files

Fix issue 2361949: A2DP suspend parameters set wrongly.

Move reset of A2DP suspend state from handleSinkStateChange() in BluetoothA2dpService to
BluetoothA2dp.ACTION_SINK_STATE_CHANGED intent receiver in AudioService.
Previous implementation could cause a false reset of suspend state if a new sink attempted to
connect while A2DP was suspended.
New implementation only resets A2DP suspend state when a new sink is actually connected.
parent 063d03ed
Loading
Loading
Loading
Loading
+0 −4
Original line number Diff line number Diff line
@@ -459,10 +459,6 @@ public class BluetoothA2dpService extends IBluetoothA2dp.Stub {
            checkSinkSuspendState(state);
            mTargetA2dpState = -1;

            if (state == BluetoothA2dp.STATE_CONNECTING) {
                mAudioManager.setParameters("A2dpSuspended=false");
            }

            if (getSinkPriority(device) > BluetoothA2dp.PRIORITY_OFF &&
                    state == BluetoothA2dp.STATE_CONNECTING ||
                    state == BluetoothA2dp.STATE_CONNECTED) {
+2 −0
Original line number Diff line number Diff line
@@ -1438,6 +1438,8 @@ public class AudioService extends IAudioService.Stub {
                    AudioSystem.setDeviceConnectionState(AudioSystem.DEVICE_OUT_BLUETOOTH_A2DP,
                                                         AudioSystem.DEVICE_STATE_AVAILABLE,
                                                         address);
                    // Reset A2DP suspend state each time a new sink is connected
                    AudioSystem.setParameters("A2dpSuspended=false");
                    mConnectedDevices.put( new Integer(AudioSystem.DEVICE_OUT_BLUETOOTH_A2DP),
                            address);
                }