Loading services/core/java/com/android/server/media/AudioManagerRouteController.java +10 −4 Original line number Diff line number Diff line Loading @@ -129,6 +129,10 @@ import java.util.concurrent.CopyOnWriteArrayList; @GuardedBy("this") private List<MediaRoute2Info> mSelectableRoutes = Collections.emptyList(); @GuardedBy("this") private @RoutingSessionInfo.ReleaseType int mSessionReleaseType = RoutingSessionInfo.RELEASE_UNSUPPORTED; // A singleton AudioManagerRouteController. private static AudioManagerRouteController mInstance; Loading Loading @@ -265,10 +269,8 @@ import java.util.concurrent.CopyOnWriteArrayList; } @Override public @RoutingSessionInfo.ReleaseType int getSessionReleaseType() { return currentOutputIsBLEBroadcast() ? RoutingSessionInfo.RELEASE_TYPE_SHARING : RoutingSessionInfo.RELEASE_UNSUPPORTED; public synchronized @RoutingSessionInfo.ReleaseType int getSessionReleaseType() { return mSessionReleaseType; } @Override Loading Loading @@ -714,6 +716,10 @@ import java.util.concurrent.CopyOnWriteArrayList; .toList(); } } mSessionReleaseType = currentOutputIsBLEBroadcast ? RoutingSessionInfo.RELEASE_TYPE_SHARING : RoutingSessionInfo.RELEASE_UNSUPPORTED; } } Loading services/tests/media/mediarouterservicetest/src/com/android/server/media/AudioManagerRouteControllerTest.java +9 −27 Original line number Diff line number Diff line Loading @@ -482,33 +482,9 @@ public class AudioManagerRouteControllerTest { .isEqualTo(FAKE_AUDIO_DEVICE_INFO_WIRED_HEADSET.getProductName().toString()); } @Test public void getSessionReleaseType_returnTypeSharing() { setUpControllerUnderTest(/* useMockBluetoothDeviceRoutesManager= */ false); 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() { setUpControllerUnderTest(/* useMockBluetoothDeviceRoutesManager= */ false); when(mMockAudioManager.getDevicesForAttributes(ATTRIBUTES_MEDIA)) .thenReturn( List.of( createAudioDeviceAttribute( AudioDeviceInfo.TYPE_WIRED_HEADSET, /* address= */ ""))); assertThat(mControllerUnderTest.getSessionReleaseType()) .isEqualTo(RoutingSessionInfo.RELEASE_UNSUPPORTED); } @Test @EnableFlags(Flags.FLAG_ENABLE_OUTPUT_SWITCHER_PERSONAL_AUDIO_SHARING) public void getRoutes_whenLEAudioBroadcastNotSupported_returnsCorrectList() { public void getRoutes_whenLEAudioBroadcastNotSupported_returnsCorrectStates() { setUpControllerAndLEAudioMocks(); when(mMockBluetoothDeviceRoutesManager.isLEAudioBroadcastSupported()).thenReturn(false); addAvailableAudioDeviceInfo( Loading @@ -532,11 +508,13 @@ public class AudioManagerRouteControllerTest { assertThat(availableRoutesNames).contains(FAKE_AUDIO_DEVICE_LE_HEADSET_2_NAME); assertThat(selectedRoutesNames).containsExactly(FAKE_AUDIO_DEVICE_LE_HEADSET_1_NAME); assertThat(deselectableRoutes).isEmpty(); assertThat(mControllerUnderTest.getSessionReleaseType()) .isEqualTo(RoutingSessionInfo.RELEASE_UNSUPPORTED); } @Test @EnableFlags(Flags.FLAG_ENABLE_OUTPUT_SWITCHER_PERSONAL_AUDIO_SHARING) public void getRoutes_singleDeviceSelectedAndOutputNotBroadcast_returnsCorrectList() { public void getRoutes_singleDeviceSelectedAndOutputNotBroadcast_returnsCorrectStates() { setUpControllerAndLEAudioMocks(); when(mMockBluetoothDeviceRoutesManager.isLEAudioBroadcastSupported()).thenReturn(true); addAvailableAudioDeviceInfo( Loading @@ -563,11 +541,13 @@ public class AudioManagerRouteControllerTest { assertThat(availableRoutesNames).contains(FAKE_AUDIO_DEVICE_LE_HEADSET_2_NAME); assertThat(selectedRoutesNames).containsExactly(FAKE_AUDIO_DEVICE_LE_HEADSET_1_NAME); assertThat(deselectableRoutes).isEmpty(); assertThat(mControllerUnderTest.getSessionReleaseType()) .isEqualTo(RoutingSessionInfo.RELEASE_UNSUPPORTED); } @Test @EnableFlags(Flags.FLAG_ENABLE_OUTPUT_SWITCHER_PERSONAL_AUDIO_SHARING) public void getRoutes_singleDeviceSelectedAndOutputIsBroadcast_returnsCorrectList() { public void getRoutes_singleDeviceSelectedAndOutputIsBroadcast_returnsCorrectStates() { setUpControllerAndLEAudioMocks(); when(mMockBluetoothDeviceRoutesManager.isLEAudioBroadcastSupported()).thenReturn(true); when(mMockBluetoothDeviceRoutesManager.getBroadcastingDeviceRoutes()) Loading Loading @@ -602,6 +582,8 @@ public class AudioManagerRouteControllerTest { assertThat(availableRoutesNames).contains(FAKE_AUDIO_DEVICE_LE_HEADSET_2_NAME); assertThat(selectedRoutesNames).containsExactly(FAKE_AUDIO_DEVICE_LE_HEADSET_1_NAME); assertThat(deselectableRoutesNames).containsExactly(FAKE_AUDIO_DEVICE_LE_HEADSET_1_NAME); assertThat(mControllerUnderTest.getSessionReleaseType()) .isEqualTo(RoutingSessionInfo.RELEASE_TYPE_SHARING); } // Internal methods. Loading Loading
services/core/java/com/android/server/media/AudioManagerRouteController.java +10 −4 Original line number Diff line number Diff line Loading @@ -129,6 +129,10 @@ import java.util.concurrent.CopyOnWriteArrayList; @GuardedBy("this") private List<MediaRoute2Info> mSelectableRoutes = Collections.emptyList(); @GuardedBy("this") private @RoutingSessionInfo.ReleaseType int mSessionReleaseType = RoutingSessionInfo.RELEASE_UNSUPPORTED; // A singleton AudioManagerRouteController. private static AudioManagerRouteController mInstance; Loading Loading @@ -265,10 +269,8 @@ import java.util.concurrent.CopyOnWriteArrayList; } @Override public @RoutingSessionInfo.ReleaseType int getSessionReleaseType() { return currentOutputIsBLEBroadcast() ? RoutingSessionInfo.RELEASE_TYPE_SHARING : RoutingSessionInfo.RELEASE_UNSUPPORTED; public synchronized @RoutingSessionInfo.ReleaseType int getSessionReleaseType() { return mSessionReleaseType; } @Override Loading Loading @@ -714,6 +716,10 @@ import java.util.concurrent.CopyOnWriteArrayList; .toList(); } } mSessionReleaseType = currentOutputIsBLEBroadcast ? RoutingSessionInfo.RELEASE_TYPE_SHARING : RoutingSessionInfo.RELEASE_UNSUPPORTED; } } Loading
services/tests/media/mediarouterservicetest/src/com/android/server/media/AudioManagerRouteControllerTest.java +9 −27 Original line number Diff line number Diff line Loading @@ -482,33 +482,9 @@ public class AudioManagerRouteControllerTest { .isEqualTo(FAKE_AUDIO_DEVICE_INFO_WIRED_HEADSET.getProductName().toString()); } @Test public void getSessionReleaseType_returnTypeSharing() { setUpControllerUnderTest(/* useMockBluetoothDeviceRoutesManager= */ false); 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() { setUpControllerUnderTest(/* useMockBluetoothDeviceRoutesManager= */ false); when(mMockAudioManager.getDevicesForAttributes(ATTRIBUTES_MEDIA)) .thenReturn( List.of( createAudioDeviceAttribute( AudioDeviceInfo.TYPE_WIRED_HEADSET, /* address= */ ""))); assertThat(mControllerUnderTest.getSessionReleaseType()) .isEqualTo(RoutingSessionInfo.RELEASE_UNSUPPORTED); } @Test @EnableFlags(Flags.FLAG_ENABLE_OUTPUT_SWITCHER_PERSONAL_AUDIO_SHARING) public void getRoutes_whenLEAudioBroadcastNotSupported_returnsCorrectList() { public void getRoutes_whenLEAudioBroadcastNotSupported_returnsCorrectStates() { setUpControllerAndLEAudioMocks(); when(mMockBluetoothDeviceRoutesManager.isLEAudioBroadcastSupported()).thenReturn(false); addAvailableAudioDeviceInfo( Loading @@ -532,11 +508,13 @@ public class AudioManagerRouteControllerTest { assertThat(availableRoutesNames).contains(FAKE_AUDIO_DEVICE_LE_HEADSET_2_NAME); assertThat(selectedRoutesNames).containsExactly(FAKE_AUDIO_DEVICE_LE_HEADSET_1_NAME); assertThat(deselectableRoutes).isEmpty(); assertThat(mControllerUnderTest.getSessionReleaseType()) .isEqualTo(RoutingSessionInfo.RELEASE_UNSUPPORTED); } @Test @EnableFlags(Flags.FLAG_ENABLE_OUTPUT_SWITCHER_PERSONAL_AUDIO_SHARING) public void getRoutes_singleDeviceSelectedAndOutputNotBroadcast_returnsCorrectList() { public void getRoutes_singleDeviceSelectedAndOutputNotBroadcast_returnsCorrectStates() { setUpControllerAndLEAudioMocks(); when(mMockBluetoothDeviceRoutesManager.isLEAudioBroadcastSupported()).thenReturn(true); addAvailableAudioDeviceInfo( Loading @@ -563,11 +541,13 @@ public class AudioManagerRouteControllerTest { assertThat(availableRoutesNames).contains(FAKE_AUDIO_DEVICE_LE_HEADSET_2_NAME); assertThat(selectedRoutesNames).containsExactly(FAKE_AUDIO_DEVICE_LE_HEADSET_1_NAME); assertThat(deselectableRoutes).isEmpty(); assertThat(mControllerUnderTest.getSessionReleaseType()) .isEqualTo(RoutingSessionInfo.RELEASE_UNSUPPORTED); } @Test @EnableFlags(Flags.FLAG_ENABLE_OUTPUT_SWITCHER_PERSONAL_AUDIO_SHARING) public void getRoutes_singleDeviceSelectedAndOutputIsBroadcast_returnsCorrectList() { public void getRoutes_singleDeviceSelectedAndOutputIsBroadcast_returnsCorrectStates() { setUpControllerAndLEAudioMocks(); when(mMockBluetoothDeviceRoutesManager.isLEAudioBroadcastSupported()).thenReturn(true); when(mMockBluetoothDeviceRoutesManager.getBroadcastingDeviceRoutes()) Loading Loading @@ -602,6 +582,8 @@ public class AudioManagerRouteControllerTest { assertThat(availableRoutesNames).contains(FAKE_AUDIO_DEVICE_LE_HEADSET_2_NAME); assertThat(selectedRoutesNames).containsExactly(FAKE_AUDIO_DEVICE_LE_HEADSET_1_NAME); assertThat(deselectableRoutesNames).containsExactly(FAKE_AUDIO_DEVICE_LE_HEADSET_1_NAME); assertThat(mControllerUnderTest.getSessionReleaseType()) .isEqualTo(RoutingSessionInfo.RELEASE_TYPE_SHARING); } // Internal methods. Loading