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

Commit 64ea92a8 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Automerger Merge Worker
Browse files

Merge "BtHelper: do not clear sco clients when sco audio is disconnected" into...

Merge "BtHelper: do not clear sco clients when sco audio is disconnected" into rvc-dev am: 8c018bac

Change-Id: I95699a459ec6e57c35176abe7d9d0de81631dd3e
parents dfccf32a 8c018bac
Loading
Loading
Loading
Loading
+7 −1
Original line number Diff line number Diff line
@@ -211,8 +211,14 @@ import java.io.PrintWriter;
                }
                mForcedUseForComm = AudioSystem.FORCE_SPEAKER;
            } else if (mForcedUseForComm == AudioSystem.FORCE_SPEAKER) {
                if (mBtHelper.isBluetoothScoOn()) {
                    mForcedUseForComm = AudioSystem.FORCE_BT_SCO;
                    setForceUse_Async(
                            AudioSystem.FOR_RECORD, AudioSystem.FORCE_BT_SCO, eventSource);
                } else {
                    mForcedUseForComm = AudioSystem.FORCE_NONE;
                }
            }

            mForcedUseForCommExt = mForcedUseForComm;
            setForceUse_Async(AudioSystem.FOR_COMMUNICATION, mForcedUseForComm, eventSource);
+12 −3
Original line number Diff line number Diff line
@@ -307,8 +307,15 @@ public class BtHelper {
                case BluetoothHeadset.STATE_AUDIO_DISCONNECTED:
                    mDeviceBroker.setBluetoothScoOn(false, "BtHelper.receiveBtEvent");
                    scoAudioState = AudioManager.SCO_AUDIO_STATE_DISCONNECTED;
                    // startBluetoothSco called after stopBluetoothSco
                    if (mScoAudioState == SCO_STATE_ACTIVATE_REQ) {
                    // There are two cases where we want to immediately reconnect audio:
                    // 1) If a new start request was received while disconnecting: this was
                    // notified by requestScoState() setting state to SCO_STATE_ACTIVATE_REQ.
                    // 2) If audio was connected then disconnected via Bluetooth APIs and
                    // we still have pending activation requests by apps: this is indicated by
                    // state SCO_STATE_ACTIVE_EXTERNAL and the mScoClients list not empty.
                    if (mScoAudioState == SCO_STATE_ACTIVATE_REQ
                            || (mScoAudioState == SCO_STATE_ACTIVE_EXTERNAL
                                    && !mScoClients.isEmpty())) {
                        if (mBluetoothHeadset != null && mBluetoothHeadsetDevice != null
                                && connectBluetoothScoAudioHelper(mBluetoothHeadset,
                                mBluetoothHeadsetDevice, mScoAudioMode)) {
@@ -318,7 +325,9 @@ public class BtHelper {
                        }
                    }
                    // Tear down SCO if disconnected from external
                    clearAllScoClients(0, mScoAudioState == SCO_STATE_ACTIVE_INTERNAL);
                    if (mScoAudioState == SCO_STATE_DEACTIVATING) {
                        clearAllScoClients(0, false);
                    }
                    mScoAudioState = SCO_STATE_INACTIVE;
                    break;
                case BluetoothHeadset.STATE_AUDIO_CONNECTING: