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

Commit 0bebfe76 authored by Andre Eisenbach's avatar Andre Eisenbach Committed by Gerrit Code Review
Browse files

Merge "BT: Don't switch devices when one of the connected BT headsets disconnects"

parents 56b92e81 2980980a
Loading
Loading
Loading
Loading
+22 −9
Original line number Diff line number Diff line
@@ -3097,7 +3097,22 @@ public class AudioService extends IAudioService.Stub {
        boolean success =
            handleDeviceConnection(connected, outDevice, address, btDeviceName) &&
            handleDeviceConnection(connected, inDevice, address, btDeviceName);
        if (success) {

        if (!success) {
          return;
        }

        /* When one BT headset is disconnected while another BT headset
         * is connected, don't mess with the headset device.
         */
        if ((state == BluetoothProfile.STATE_DISCONNECTED ||
            state == BluetoothProfile.STATE_DISCONNECTING) &&
            mBluetoothHeadset != null &&
            mBluetoothHeadset.getAudioState(btDevice) == BluetoothHeadset.STATE_AUDIO_CONNECTED) {
            Log.w(TAG, "SCO connected through another device, returning");
            return;
        }

        synchronized (mScoClients) {
            if (connected) {
                mBluetoothHeadsetDevice = btDevice;
@@ -3107,7 +3122,6 @@ public class AudioService extends IAudioService.Stub {
            }
        }
    }
    }

    private BluetoothProfile.ServiceListener mBluetoothProfileServiceListener =
        new BluetoothProfile.ServiceListener() {
@@ -5250,7 +5264,6 @@ public class AudioService extends IAudioService.Stub {
                state = intent.getIntExtra(BluetoothProfile.EXTRA_STATE,
                                               BluetoothProfile.STATE_DISCONNECTED);
                BluetoothDevice btDevice = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);

                setBtScoDeviceConnectionState(btDevice, state);
            } else if (action.equals(BluetoothHeadset.ACTION_AUDIO_STATE_CHANGED)) {
                boolean broadcast = false;