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

Commit a391b73a authored by Yuyang Huang's avatar Yuyang Huang Committed by Automerger Merge Worker
Browse files

when ScoManagedByAudioEnabled, Bluetooth don't suspend a2dp or LE Audio am:...

when ScoManagedByAudioEnabled, Bluetooth don't suspend a2dp or LE Audio am: aa4a4694 am: b2bce9f9

Original change: https://android-review.googlesource.com/c/platform/packages/modules/Bluetooth/+/3114306



Change-Id: I21c07b9e1082b49f0c9cd0ded0aa1576217792e8
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents c9680386 b2bce9f9
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -2384,7 +2384,7 @@ public class HeadsetService extends ProfileService {
                }

                // Unsuspend A2DP when SCO connection is gone and call state is idle
                if (mSystemInterface.isCallIdle()) {
                if (mSystemInterface.isCallIdle() && !Utils.isScoManagedByAudioEnabled()) {
                    mSystemInterface.getAudioManager().setA2dpSuspended(false);
                    if (isAtLeastU()) {
                        mSystemInterface.getAudioManager().setLeAudioSuspended(false);
+5 −0
Original line number Diff line number Diff line
@@ -1306,6 +1306,11 @@ class HeadsetStateMachine extends StateMachine {
                    break;
                case CONNECT_AUDIO:
                    stateLogD("CONNECT_AUDIO, device=" + mDevice);
                    if (Utils.isScoManagedByAudioEnabled()) {
                        stateLogD("ScoManagedByAudioEnabled, BT does not CONNECT_AUDIO");
                        transitionTo(mAudioConnecting);
                        break;
                    }
                    mSystemInterface.getAudioManager().setA2dpSuspended(true);
                    if (isAtLeastU()) {
                        mSystemInterface.getAudioManager().setLeAudioSuspended(true);
+21 −0
Original line number Diff line number Diff line
@@ -593,6 +593,27 @@ public class HeadsetStateMachineTest {
                IsInstanceOf.instanceOf(HeadsetStateMachine.AudioConnecting.class));
    }

    /**
     * Test state transition from Connected to AudioConnecting state via CONNECT_AUDIO message when
     * ScoManagedByAudioEnabled
     */
    @Test
    public void testStateTransition_ConnectedToAudioConnecting_ConnectAudio_ScoManagedbyAudio() {
        mSetFlagsRule.enableFlags(Flags.FLAG_IS_SCO_MANAGED_BY_AUDIO);
        Utils.setIsScoManagedByAudioEnabled(true);

        setUpConnectedState();
        // Send CONNECT_AUDIO message
        mHeadsetStateMachine.sendMessage(HeadsetStateMachine.CONNECT_AUDIO, mTestDevice);
        // verify no native connect audio
        verify(mNativeInterface, never()).connectAudio(mTestDevice);
        TestUtils.waitForLooperToFinishScheduledTask(mHandlerThread.getLooper());
        Assert.assertThat(
                mHeadsetStateMachine.getCurrentState(),
                IsInstanceOf.instanceOf(HeadsetStateMachine.AudioConnecting.class));
        Utils.setIsScoManagedByAudioEnabled(false);
    }

    /**
     * Test state transition from Connected to AudioConnecting state via StackEvent.AUDIO_CONNECTING
     * message