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

Commit 6a64a9cd authored by Jean-Michel Trivi's avatar Jean-Michel Trivi Committed by Gerrit Code Review
Browse files

Merge "Prevent AudioService dead lock issue."

parents 0b486da6 4fe77953
Loading
Loading
Loading
Loading
+10 −9
Original line number Diff line number Diff line
@@ -508,6 +508,7 @@ public class AudioService extends IAudioService.Stub {

    // Reference to BluetoothA2dp to query for AbsoluteVolume.
    private BluetoothA2dp mA2dp;
    // lock always taken synchronized on mConnectedDevices
    private final Object mA2dpAvrcpLock = new Object();
    // If absolute volume is supported in AVRCP device
    private boolean mAvrcpAbsVolSupported = false;
@@ -2731,12 +2732,12 @@ public class AudioService extends IAudioService.Stub {
            List<BluetoothDevice> deviceList;
            switch(profile) {
            case BluetoothProfile.A2DP:
                synchronized (mConnectedDevices) {
                    synchronized (mA2dpAvrcpLock) {
                        mA2dp = (BluetoothA2dp) proxy;
                        deviceList = mA2dp.getConnectedDevices();
                        if (deviceList.size() > 0) {
                            btDevice = deviceList.get(0);
                        synchronized (mConnectedDevices) {
                            int state = mA2dp.getConnectionState(btDevice);
                            int delay = checkSendBecomingNoisyIntent(
                                                AudioSystem.DEVICE_OUT_BLUETOOTH_A2DP,
@@ -2831,9 +2832,9 @@ public class AudioService extends IAudioService.Stub {
        public void onServiceDisconnected(int profile) {
            switch(profile) {
            case BluetoothProfile.A2DP:
                synchronized (mConnectedDevices) {
                    synchronized (mA2dpAvrcpLock) {
                        mA2dp = null;
                    synchronized (mConnectedDevices) {
                        if (mConnectedDevices.containsKey(AudioSystem.DEVICE_OUT_BLUETOOTH_A2DP)) {
                            makeA2dpDeviceUnavailableNow(
                                    mConnectedDevices.get(AudioSystem.DEVICE_OUT_BLUETOOTH_A2DP));