Loading packages/SystemUI/src/com/android/systemui/media/dialog/MediaOutputController.java +9 −2 Original line number Diff line number Diff line Loading @@ -713,7 +713,7 @@ public class MediaOutputController implements LocalMediaManager.DeviceCallback, dividerItems.forEach((key, item) -> { finalMediaItems.add(key, item); }); finalMediaItems.add(new MediaItem()); attachConnectNewDeviceItemIfNeeded(finalMediaItems); mMediaItemList.clear(); mMediaItemList.addAll(finalMediaItems); } Loading Loading @@ -749,7 +749,7 @@ public class MediaOutputController implements LocalMediaManager.DeviceCallback, finalMediaItems.add(new MediaItem(device)); } } finalMediaItems.add(new MediaItem()); attachConnectNewDeviceItemIfNeeded(finalMediaItems); mMediaItemList.clear(); mMediaItemList.addAll(finalMediaItems); } Loading @@ -760,6 +760,13 @@ public class MediaOutputController implements LocalMediaManager.DeviceCallback, new MediaItem(title, MediaItem.MediaItemType.TYPE_GROUP_DIVIDER)); } private void attachConnectNewDeviceItemIfNeeded(List<MediaItem> mediaItems) { // Attach "Connect a device" item only when current output is not remote and not a group if (!isCurrentConnectedDeviceRemote() && getSelectedMediaDevice().size() == 1) { mediaItems.add(new MediaItem()); } } private void attachRangeInfo(List<MediaDevice> devices) { for (MediaDevice mediaDevice : devices) { if (mNearbyDeviceInfoMap.containsKey(mediaDevice.getId())) { Loading packages/SystemUI/tests/src/com/android/systemui/media/dialog/MediaOutputControllerTest.java +24 −0 Original line number Diff line number Diff line Loading @@ -341,6 +341,30 @@ public class MediaOutputControllerTest extends SysuiTestCase { verify(mCb).onDeviceListChanged(); } @Test public void advanced_onDeviceListUpdateWithConnectedDeviceRemote_verifyItemSize() { when(mFlags.isEnabled(Flags.OUTPUT_SWITCHER_ADVANCED_LAYOUT)).thenReturn(true); when(mMediaDevice1.getFeatures()).thenReturn( ImmutableList.of(MediaRoute2Info.FEATURE_REMOTE_PLAYBACK)); when(mLocalMediaManager.getCurrentConnectedDevice()).thenReturn(mMediaDevice1); mMediaOutputController.start(mCb); reset(mCb); mMediaOutputController.onDeviceListUpdate(mMediaDevices); final List<MediaDevice> devices = new ArrayList<>(); for (MediaItem item : mMediaOutputController.getMediaItemList()) { if (item.getMediaDevice().isPresent()) { devices.add(item.getMediaDevice().get()); } } assertThat(devices.containsAll(mMediaDevices)).isTrue(); assertThat(devices.size()).isEqualTo(mMediaDevices.size()); assertThat(mMediaOutputController.getMediaItemList().size()).isEqualTo( mMediaDevices.size() + 1); verify(mCb).onDeviceListChanged(); } @Test public void advanced_categorizeMediaItems_withSuggestedDevice_verifyDeviceListSize() { when(mFlags.isEnabled(Flags.OUTPUT_SWITCHER_ADVANCED_LAYOUT)).thenReturn(true); Loading Loading
packages/SystemUI/src/com/android/systemui/media/dialog/MediaOutputController.java +9 −2 Original line number Diff line number Diff line Loading @@ -713,7 +713,7 @@ public class MediaOutputController implements LocalMediaManager.DeviceCallback, dividerItems.forEach((key, item) -> { finalMediaItems.add(key, item); }); finalMediaItems.add(new MediaItem()); attachConnectNewDeviceItemIfNeeded(finalMediaItems); mMediaItemList.clear(); mMediaItemList.addAll(finalMediaItems); } Loading Loading @@ -749,7 +749,7 @@ public class MediaOutputController implements LocalMediaManager.DeviceCallback, finalMediaItems.add(new MediaItem(device)); } } finalMediaItems.add(new MediaItem()); attachConnectNewDeviceItemIfNeeded(finalMediaItems); mMediaItemList.clear(); mMediaItemList.addAll(finalMediaItems); } Loading @@ -760,6 +760,13 @@ public class MediaOutputController implements LocalMediaManager.DeviceCallback, new MediaItem(title, MediaItem.MediaItemType.TYPE_GROUP_DIVIDER)); } private void attachConnectNewDeviceItemIfNeeded(List<MediaItem> mediaItems) { // Attach "Connect a device" item only when current output is not remote and not a group if (!isCurrentConnectedDeviceRemote() && getSelectedMediaDevice().size() == 1) { mediaItems.add(new MediaItem()); } } private void attachRangeInfo(List<MediaDevice> devices) { for (MediaDevice mediaDevice : devices) { if (mNearbyDeviceInfoMap.containsKey(mediaDevice.getId())) { Loading
packages/SystemUI/tests/src/com/android/systemui/media/dialog/MediaOutputControllerTest.java +24 −0 Original line number Diff line number Diff line Loading @@ -341,6 +341,30 @@ public class MediaOutputControllerTest extends SysuiTestCase { verify(mCb).onDeviceListChanged(); } @Test public void advanced_onDeviceListUpdateWithConnectedDeviceRemote_verifyItemSize() { when(mFlags.isEnabled(Flags.OUTPUT_SWITCHER_ADVANCED_LAYOUT)).thenReturn(true); when(mMediaDevice1.getFeatures()).thenReturn( ImmutableList.of(MediaRoute2Info.FEATURE_REMOTE_PLAYBACK)); when(mLocalMediaManager.getCurrentConnectedDevice()).thenReturn(mMediaDevice1); mMediaOutputController.start(mCb); reset(mCb); mMediaOutputController.onDeviceListUpdate(mMediaDevices); final List<MediaDevice> devices = new ArrayList<>(); for (MediaItem item : mMediaOutputController.getMediaItemList()) { if (item.getMediaDevice().isPresent()) { devices.add(item.getMediaDevice().get()); } } assertThat(devices.containsAll(mMediaDevices)).isTrue(); assertThat(devices.size()).isEqualTo(mMediaDevices.size()); assertThat(mMediaOutputController.getMediaItemList().size()).isEqualTo( mMediaDevices.size() + 1); verify(mCb).onDeviceListChanged(); } @Test public void advanced_categorizeMediaItems_withSuggestedDevice_verifyDeviceListSize() { when(mFlags.isEnabled(Flags.OUTPUT_SWITCHER_ADVANCED_LAYOUT)).thenReturn(true); Loading