Merge "[Output Switcher] Not add "Connect a device" option when output is remote" into udc-dev
This commit is contained in:
@@ -713,7 +713,7 @@ public class MediaOutputController implements LocalMediaManager.DeviceCallback,
|
|||||||
dividerItems.forEach((key, item) -> {
|
dividerItems.forEach((key, item) -> {
|
||||||
finalMediaItems.add(key, item);
|
finalMediaItems.add(key, item);
|
||||||
});
|
});
|
||||||
finalMediaItems.add(new MediaItem());
|
attachConnectNewDeviceItemIfNeeded(finalMediaItems);
|
||||||
mMediaItemList.clear();
|
mMediaItemList.clear();
|
||||||
mMediaItemList.addAll(finalMediaItems);
|
mMediaItemList.addAll(finalMediaItems);
|
||||||
}
|
}
|
||||||
@@ -749,7 +749,7 @@ public class MediaOutputController implements LocalMediaManager.DeviceCallback,
|
|||||||
finalMediaItems.add(new MediaItem(device));
|
finalMediaItems.add(new MediaItem(device));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
finalMediaItems.add(new MediaItem());
|
attachConnectNewDeviceItemIfNeeded(finalMediaItems);
|
||||||
mMediaItemList.clear();
|
mMediaItemList.clear();
|
||||||
mMediaItemList.addAll(finalMediaItems);
|
mMediaItemList.addAll(finalMediaItems);
|
||||||
}
|
}
|
||||||
@@ -760,6 +760,13 @@ public class MediaOutputController implements LocalMediaManager.DeviceCallback,
|
|||||||
new MediaItem(title, MediaItem.MediaItemType.TYPE_GROUP_DIVIDER));
|
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) {
|
private void attachRangeInfo(List<MediaDevice> devices) {
|
||||||
for (MediaDevice mediaDevice : devices) {
|
for (MediaDevice mediaDevice : devices) {
|
||||||
if (mNearbyDeviceInfoMap.containsKey(mediaDevice.getId())) {
|
if (mNearbyDeviceInfoMap.containsKey(mediaDevice.getId())) {
|
||||||
|
|||||||
@@ -341,6 +341,30 @@ public class MediaOutputControllerTest extends SysuiTestCase {
|
|||||||
verify(mCb).onDeviceListChanged();
|
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
|
@Test
|
||||||
public void advanced_categorizeMediaItems_withSuggestedDevice_verifyDeviceListSize() {
|
public void advanced_categorizeMediaItems_withSuggestedDevice_verifyDeviceListSize() {
|
||||||
when(mFlags.isEnabled(Flags.OUTPUT_SWITCHER_ADVANCED_LAYOUT)).thenReturn(true);
|
when(mFlags.isEnabled(Flags.OUTPUT_SWITCHER_ADVANCED_LAYOUT)).thenReturn(true);
|
||||||
|
|||||||
Reference in New Issue
Block a user