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

Commit 0810f9c8 authored by Yiyi Shen's avatar Yiyi Shen Committed by Android (Google) Code Review
Browse files

Merge "[OutputSwitcher] Support release system session (P2)" into main

parents ece0ae17 2c2f658f
Loading
Loading
Loading
Loading
+6 −3
Original line number Diff line number Diff line
@@ -249,13 +249,16 @@ import java.util.concurrent.CopyOnWriteArrayList;

    @Override
    public @RoutingSessionInfo.ReleaseType int getSessionReleaseType() {
        // TODO(b/385672684): impl get session release type
        return RoutingSessionInfo.RELEASE_UNSUPPORTED;
        return currentOutputIsBLEBroadcast()
                ? RoutingSessionInfo.RELEASE_TYPE_SHARING
                : RoutingSessionInfo.RELEASE_UNSUPPORTED;
    }

    @Override
    public void releaseRoutingSession() {
        // TODO(b/385672684): impl release system session
        if (currentOutputIsBLEBroadcast()) {
            mBluetoothRouteController.stopBroadcast();
        }
    }

    @Override
+23 −0
Original line number Diff line number Diff line
@@ -45,6 +45,7 @@ import android.media.AudioDevicePort;
import android.media.AudioManager;
import android.media.AudioSystem;
import android.media.MediaRoute2Info;
import android.media.RoutingSessionInfo;
import android.media.audiopolicy.AudioProductStrategy;
import android.os.Looper;
import android.os.UserHandle;
@@ -362,6 +363,28 @@ public class AudioManagerRouteControllerTest {
                .isEqualTo(FAKE_AUDIO_DEVICE_INFO_WIRED_HEADSET.getProductName().toString());
    }

    @Test
    public void getSessionReleaseType_returnTypeSharing() {
        when(mMockAudioManager.getDevicesForAttributes(ATTRIBUTES_MEDIA))
                .thenReturn(
                        List.of(
                                createAudioDeviceAttribute(
                                        AudioDeviceInfo.TYPE_BLE_BROADCAST, /* address= */ "")));
        assertThat(mControllerUnderTest.getSessionReleaseType())
                .isEqualTo(RoutingSessionInfo.RELEASE_TYPE_SHARING);
    }

    @Test
    public void getSessionReleaseType_returnTypeUnsupported() {
        when(mMockAudioManager.getDevicesForAttributes(ATTRIBUTES_MEDIA))
                .thenReturn(
                        List.of(
                                createAudioDeviceAttribute(
                                        AudioDeviceInfo.TYPE_WIRED_HEADSET, /* address= */ "")));
        assertThat(mControllerUnderTest.getSessionReleaseType())
                .isEqualTo(RoutingSessionInfo.RELEASE_UNSUPPORTED);
    }

    // Internal methods.

    @NonNull