Loading media/java/android/media/flags/media_better_together.aconfig +0 −10 Original line number Diff line number Diff line Loading @@ -162,16 +162,6 @@ flag { } } flag { name: "enable_output_switcher_device_grouping" namespace: "media_better_together" description: "Enables selected items in Output Switcher to be grouped together." bug: "388347018" metadata { purpose: PURPOSE_BUGFIX } } flag { name: "enable_output_switcher_redesign" namespace: "media_better_together" Loading packages/SettingsLib/src/com/android/settingslib/media/InfoMediaManager.java +2 −15 Original line number Diff line number Diff line Loading @@ -1104,15 +1104,7 @@ public abstract class InfoMediaManager { * Returns an ordered list of available devices based on the provided {@code * routeListingPreferenceItems}. * * <p>The resulting order if enableOutputSwitcherDeviceGrouping is disabled is: * * <ol> * <li>Selected routes. * <li>Not-selected system routes. * <li>Not-selected, non-system, available routes sorted by route listing preference. * </ol> * * <p>The resulting order if enableOutputSwitcherDeviceGrouping is enabled is: * <p>The resulting order is: * * <ol> * <li>Selected routes sorted by route listing preference. Loading @@ -1121,7 +1113,6 @@ public abstract class InfoMediaManager { * <li>Not-selected, non-system, available routes sorted by route listing preference. * </ol> * * * @param selectedRoutes List of currently selected routes. * @param availableRoutes List of available routes that match the app's requested route * features. Loading @@ -1136,13 +1127,9 @@ public abstract class InfoMediaManager { routeListingPreference.getItems(); Set<String> sortedRouteIds = new LinkedHashSet<>(); boolean addSelectedRlpItemsFirst = com.android.media.flags.Flags.enableOutputSwitcherDeviceGrouping() && preferRouteListingOrdering(routeListingPreference); Set<String> selectedRouteIds = new HashSet<>(); if (addSelectedRlpItemsFirst) { if (preferRouteListingOrdering(routeListingPreference)) { // Add selected RLP items first for (MediaRoute2Info selectedRoute : selectedRoutes) { selectedRouteIds.add(selectedRoute.getId()); Loading packages/SettingsLib/tests/robotests/src/com/android/settingslib/media/InfoMediaManagerTest.java +2 −7 Original line number Diff line number Diff line Loading @@ -374,7 +374,6 @@ public class InfoMediaManagerTest { assertThat(mInfoMediaManager.mMediaDevices.get(1).getId()).isEqualTo(TEST_ID_1); assertThat(mInfoMediaManager.mMediaDevices.get(2).getId()).isEqualTo(TEST_ID_3); assertThat(mInfoMediaManager.mMediaDevices.get(3).getId()).isEqualTo(TEST_ID_4); assertThat(mInfoMediaManager.mMediaDevices.get(3).isSuggestedDevice()).isTrue(); } private RouteListingPreference setUpPreferenceList(boolean useSystemOrdering) { Loading @@ -383,10 +382,8 @@ public class InfoMediaManagerTest { final List<RouteListingPreference.Item> preferenceItemList = new ArrayList<>(); RouteListingPreference.Item item1 = new RouteListingPreference.Item.Builder( TEST_ID_3).build(); RouteListingPreference.Item item2 = new RouteListingPreference.Item.Builder(TEST_ID_4) .setFlags(RouteListingPreference.Item.FLAG_SUGGESTED) .build(); RouteListingPreference.Item item2 = new RouteListingPreference.Item.Builder( TEST_ID_4).build(); preferenceItemList.add(item1); preferenceItemList.add(item2); Loading Loading @@ -1550,7 +1547,6 @@ public class InfoMediaManagerTest { .isEqualTo(LocalMediaManager.MediaDeviceState.STATE_CONNECTED); } @EnableFlags(Flags.FLAG_ENABLE_OUTPUT_SWITCHER_DEVICE_GROUPING) @Test public void arrangeRouteListByPreference_useSystemOrderingIsFalse() { RouteListingPreference routeListingPreference = setUpPreferenceList(false); Loading @@ -1567,7 +1563,6 @@ public class InfoMediaManagerTest { assertThat(routeOrder.get(3).getId()).isEqualTo(TEST_ID_1); } @EnableFlags(Flags.FLAG_ENABLE_OUTPUT_SWITCHER_DEVICE_GROUPING) @Test public void arrangeRouteListByPreference_useSystemOrderingIsTrue() { RouteListingPreference routeListingPreference = setUpPreferenceList(true); Loading packages/SystemUI/multivalentTests/src/com/android/systemui/media/dialog/MediaOutputAdapterLegacyTest.java +15 −67 Original line number Diff line number Diff line Loading @@ -65,7 +65,6 @@ import org.mockito.Captor; import java.util.ArrayList; import java.util.List; import java.util.concurrent.Executor; import java.util.stream.Collectors; @SmallTest @DisableFlags(Flags.FLAG_ENABLE_OUTPUT_SWITCHER_REDESIGN) Loading @@ -86,12 +85,10 @@ public class MediaOutputAdapterLegacyTest extends SysuiTestCase { // Mock private MediaSwitchingController mMediaSwitchingController = mock(MediaSwitchingController.class); private MediaOutputDialog mMediaOutputDialog = mock(MediaOutputDialog.class); private MediaDevice mMediaDevice1 = mock(MediaDevice.class); private MediaDevice mMediaDevice2 = mock(MediaDevice.class); private Icon mIcon = mock(Icon.class); private IconCompat mIconCompat = mock(IconCompat.class); private View mDialogLaunchView = mock(View.class); @Captor private ArgumentCaptor<SeekBar.OnSeekBarChangeListener> mOnSeekBarChangeListenerCaptor; Loading Loading @@ -175,52 +172,6 @@ public class MediaOutputAdapterLegacyTest extends SysuiTestCase { mContext.getText(R.string.media_output_dialog_pairing_new).toString()); } @DisableFlags(Flags.FLAG_ENABLE_OUTPUT_SWITCHER_DEVICE_GROUPING) @Test public void onBindViewHolder_bindGroup_withSessionName_verifyView() { when(mMediaSwitchingController.getSelectedMediaDevice()) .thenReturn( mMediaItems.stream() .map((item) -> item.getMediaDevice().get()) .collect(Collectors.toList())); when(mMediaSwitchingController.getSessionName()).thenReturn(TEST_SESSION_NAME); mMediaOutputAdapter = new MediaOutputAdapterLegacy(mMediaSwitchingController, mMainExecutor, mBackgroundExecutor); mMediaOutputAdapter.updateItems(); mViewHolder = (MediaOutputAdapterLegacy.MediaDeviceViewHolderLegacy) mMediaOutputAdapter .onCreateViewHolder(new LinearLayout(mContext), 0); mMediaOutputAdapter.getItemCount(); mMediaOutputAdapter.onBindViewHolder(mViewHolder, 0); assertThat(mViewHolder.mSeekBar.getVisibility()).isEqualTo(View.VISIBLE); assertThat(mViewHolder.mTitleText.getVisibility()).isEqualTo(View.VISIBLE); assertThat(mViewHolder.mProgressBar.getVisibility()).isEqualTo(View.GONE); assertThat(mViewHolder.mCheckBox.getVisibility()).isEqualTo(View.VISIBLE); } @DisableFlags(Flags.FLAG_ENABLE_OUTPUT_SWITCHER_DEVICE_GROUPING) @Test public void onBindViewHolder_bindGroup_noSessionName_verifyView() { when(mMediaSwitchingController.getSelectedMediaDevice()) .thenReturn( mMediaItems.stream() .map((item) -> item.getMediaDevice().get()) .collect(Collectors.toList())); when(mMediaSwitchingController.getSessionName()).thenReturn(null); mMediaOutputAdapter = new MediaOutputAdapterLegacy(mMediaSwitchingController, mMainExecutor, mBackgroundExecutor); mMediaOutputAdapter.updateItems(); mViewHolder = (MediaOutputAdapterLegacy.MediaDeviceViewHolderLegacy) mMediaOutputAdapter .onCreateViewHolder(new LinearLayout(mContext), 0); mMediaOutputAdapter.getItemCount(); mMediaOutputAdapter.onBindViewHolder(mViewHolder, 0); assertThat(mViewHolder.mSeekBar.getVisibility()).isEqualTo(View.VISIBLE); assertThat(mViewHolder.mTitleText.getVisibility()).isEqualTo(View.VISIBLE); assertThat(mViewHolder.mProgressBar.getVisibility()).isEqualTo(View.GONE); assertThat(mViewHolder.mCheckBox.getVisibility()).isEqualTo(View.VISIBLE); } @Test public void onBindViewHolder_bindConnectedDevice_verifyView() { mMediaOutputAdapter.onBindViewHolder(mViewHolder, 0); Loading Loading @@ -248,7 +199,6 @@ public class MediaOutputAdapterLegacyTest extends SysuiTestCase { assertThat(mViewHolder.mSeekBar.getVisibility()).isEqualTo(View.VISIBLE); } @DisableFlags(Flags.FLAG_ENABLE_OUTPUT_SWITCHER_DEVICE_GROUPING) @Test public void onBindViewHolder_bindConnectedRemoteDevice_verifyView() { when(mMediaSwitchingController.getSelectedMediaDevice()) Loading @@ -264,10 +214,10 @@ public class MediaOutputAdapterLegacyTest extends SysuiTestCase { assertThat(mViewHolder.mTitleText.getText().toString()).isEqualTo(TEST_DEVICE_NAME_1); assertThat(mViewHolder.mSubTitleText.getVisibility()).isEqualTo(View.GONE); assertThat(mViewHolder.mProgressBar.getVisibility()).isEqualTo(View.GONE); assertThat(mViewHolder.mCheckBox.getVisibility()).isEqualTo(View.VISIBLE); assertThat(mViewHolder.mCheckBox.getVisibility()).isEqualTo(View.GONE); assertThat(mViewHolder.mEndClickIcon.getVisibility()).isEqualTo(View.GONE); assertThat(mViewHolder.mSeekBar.getVisibility()).isEqualTo(View.VISIBLE); assertThat(mViewHolder.mEndTouchArea.getVisibility()).isEqualTo(View.VISIBLE); assertThat(mViewHolder.mEndTouchArea.getVisibility()).isEqualTo(View.GONE); } @Test Loading Loading @@ -434,7 +384,6 @@ public class MediaOutputAdapterLegacyTest extends SysuiTestCase { verify(mMediaSwitchingController).logInteractionAdjustVolume(mMediaDevice1); } @DisableFlags(Flags.FLAG_ENABLE_OUTPUT_SWITCHER_DEVICE_GROUPING) @Test public void onBindViewHolder_bindSelectableDevice_verifyView() { List<MediaDevice> selectableDevices = new ArrayList<>(); Loading @@ -455,15 +404,18 @@ public class MediaOutputAdapterLegacyTest extends SysuiTestCase { verify(mMediaSwitchingController).addDeviceToPlayMedia(mMediaDevice2); } @DisableFlags(Flags.FLAG_ENABLE_OUTPUT_SWITCHER_DEVICE_GROUPING) @Test public void onBindViewHolder_bindDeselectableDevice_verifyView() { when(mMediaSwitchingController.getSelectedMediaDevice()).thenReturn( List.of(mMediaDevice1, mMediaDevice2)); when(mMediaSwitchingController.getDeselectableMediaDevice()).thenReturn( List.of(mMediaDevice1, mMediaDevice2)); mMediaOutputAdapter.onBindViewHolder(mViewHolder, 1); mMediaOutputAdapter.onBindViewHolder(mViewHolder, 0); // Expand the group control. mViewHolder.mEndClickIcon.performClick(); mMediaOutputAdapter.onBindViewHolder(mViewHolder, 1); assertThat(mViewHolder.mEndTouchArea.getVisibility()).isEqualTo(View.VISIBLE); assertThat(mViewHolder.mCheckBox.getVisibility()).isEqualTo(View.VISIBLE); assertThat(mViewHolder.mCheckBox.isChecked()).isTrue(); Loading @@ -473,7 +425,6 @@ public class MediaOutputAdapterLegacyTest extends SysuiTestCase { verify(mMediaSwitchingController).removeDeviceFromPlayMedia(mMediaDevice2); } @DisableFlags(Flags.FLAG_ENABLE_OUTPUT_SWITCHER_DEVICE_GROUPING) @Test public void onBindViewHolder_changingSelectedValue_doesntTriggerChangeListener() { List<MediaDevice> selectableDevices = List.of(mMediaDevice2); Loading @@ -481,6 +432,8 @@ public class MediaOutputAdapterLegacyTest extends SysuiTestCase { selectedDevices.add(mMediaDevice1); when(mMediaSwitchingController.getSelectableMediaDevice()).thenReturn(selectableDevices); when(mMediaSwitchingController.getSelectedMediaDevice()).thenReturn(selectedDevices); when(mMediaSwitchingController.getDeselectableMediaDevice()).thenReturn( List.of(mMediaDevice1, mMediaDevice2)); // mMediaDevice2 is selected mMediaOutputAdapter.onBindViewHolder(mViewHolder, 1); Loading @@ -488,6 +441,11 @@ public class MediaOutputAdapterLegacyTest extends SysuiTestCase { // changing the selected state programmatically (not a user click) selectedDevices.add(mMediaDevice2); mMediaOutputAdapter.onBindViewHolder(mViewHolder, 0); // Expand the group control. mViewHolder.mEndClickIcon.performClick(); mMediaOutputAdapter.onBindViewHolder(mViewHolder, 1); assertThat(mViewHolder.mCheckBox.isChecked()).isTrue(); Loading Loading @@ -866,11 +824,10 @@ public class MediaOutputAdapterLegacyTest extends SysuiTestCase { verify(mMediaSwitchingController).removeDeviceFromPlayMedia(mMediaDevice1); } @DisableFlags(Flags.FLAG_ENABLE_OUTPUT_SWITCHER_DEVICE_GROUPING) @Test public void onBindViewHolder_hasVolumeAdjustmentRestriction_verifySeekbarDisabled() { when(mMediaSwitchingController.getSelectedMediaDevice()).thenReturn( List.of(mMediaDevice1, mMediaDevice2)); List.of(mMediaDevice1)); when(mMediaSwitchingController.isCurrentConnectedDeviceRemote()).thenReturn(true); when(mMediaSwitchingController.hasAdjustVolumeUserRestriction()).thenReturn(true); mMediaOutputAdapter.updateItems(); Loading @@ -878,10 +835,6 @@ public class MediaOutputAdapterLegacyTest extends SysuiTestCase { // Connected and selected device mMediaOutputAdapter.onBindViewHolder(mViewHolder, 0); assertThat(mViewHolder.mSeekBar.getVisibility()).isEqualTo(View.GONE); // Selected device mMediaOutputAdapter.onBindViewHolder(mViewHolder, 1); assertThat(mViewHolder.mSeekBar.getVisibility()).isEqualTo(View.GONE); } @Test Loading Loading @@ -973,7 +926,6 @@ public class MediaOutputAdapterLegacyTest extends SysuiTestCase { .isEqualTo(R.drawable.media_output_icon_volume); } @EnableFlags(Flags.FLAG_ENABLE_OUTPUT_SWITCHER_DEVICE_GROUPING) @Test public void multipleSelectedDevices_verifySessionView() { initializeSession(); Loading @@ -994,7 +946,6 @@ public class MediaOutputAdapterLegacyTest extends SysuiTestCase { assertThat(mViewHolder.mSeekBar.getVolume()).isEqualTo(TEST_CURRENT_VOLUME); } @EnableFlags(Flags.FLAG_ENABLE_OUTPUT_SWITCHER_DEVICE_GROUPING) @Test public void multipleSelectedDevices_verifyCollapsedView() { initializeSession(); Loading @@ -1008,7 +959,6 @@ public class MediaOutputAdapterLegacyTest extends SysuiTestCase { assertThat(mViewHolder.mEndTouchArea.getVisibility()).isEqualTo(View.GONE); } @EnableFlags(Flags.FLAG_ENABLE_OUTPUT_SWITCHER_DEVICE_GROUPING) @Test public void multipleSelectedDevices_expandIconClicked_verifyInitialView() { initializeSession(); Loading @@ -1031,7 +981,6 @@ public class MediaOutputAdapterLegacyTest extends SysuiTestCase { assertThat(mViewHolder.mTitleText.getText().toString()).isEqualTo(TEST_DEVICE_NAME_1); } @EnableFlags(Flags.FLAG_ENABLE_OUTPUT_SWITCHER_DEVICE_GROUPING) @Test public void multipleSelectedDevices_expandIconClicked_verifyCollapsedView() { initializeSession(); Loading @@ -1054,7 +1003,6 @@ public class MediaOutputAdapterLegacyTest extends SysuiTestCase { assertThat(mViewHolder.mTitleText.getText().toString()).isEqualTo(TEST_DEVICE_NAME_2); } @EnableFlags(Flags.FLAG_ENABLE_OUTPUT_SWITCHER_DEVICE_GROUPING) @Test public void deviceCanNotBeDeselected_verifyView() { List<MediaDevice> selectedDevices = new ArrayList<>(); Loading packages/SystemUI/src/com/android/systemui/media/dialog/MediaOutputAdapterBase.java +1 −1 Original line number Diff line number Diff line Loading @@ -63,7 +63,7 @@ public abstract class MediaOutputAdapterBase extends RecyclerView.Adapter<Recycl private static final String TAG = "MediaOutputAdapterBase"; private static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG); protected final List<MediaItem> mMediaItemList = new CopyOnWriteArrayList<>(); private boolean mShouldGroupSelectedMediaItems = Flags.enableOutputSwitcherDeviceGrouping(); private boolean mShouldGroupSelectedMediaItems = true; public MediaOutputAdapterBase(MediaSwitchingController controller) { mController = controller; Loading Loading
media/java/android/media/flags/media_better_together.aconfig +0 −10 Original line number Diff line number Diff line Loading @@ -162,16 +162,6 @@ flag { } } flag { name: "enable_output_switcher_device_grouping" namespace: "media_better_together" description: "Enables selected items in Output Switcher to be grouped together." bug: "388347018" metadata { purpose: PURPOSE_BUGFIX } } flag { name: "enable_output_switcher_redesign" namespace: "media_better_together" Loading
packages/SettingsLib/src/com/android/settingslib/media/InfoMediaManager.java +2 −15 Original line number Diff line number Diff line Loading @@ -1104,15 +1104,7 @@ public abstract class InfoMediaManager { * Returns an ordered list of available devices based on the provided {@code * routeListingPreferenceItems}. * * <p>The resulting order if enableOutputSwitcherDeviceGrouping is disabled is: * * <ol> * <li>Selected routes. * <li>Not-selected system routes. * <li>Not-selected, non-system, available routes sorted by route listing preference. * </ol> * * <p>The resulting order if enableOutputSwitcherDeviceGrouping is enabled is: * <p>The resulting order is: * * <ol> * <li>Selected routes sorted by route listing preference. Loading @@ -1121,7 +1113,6 @@ public abstract class InfoMediaManager { * <li>Not-selected, non-system, available routes sorted by route listing preference. * </ol> * * * @param selectedRoutes List of currently selected routes. * @param availableRoutes List of available routes that match the app's requested route * features. Loading @@ -1136,13 +1127,9 @@ public abstract class InfoMediaManager { routeListingPreference.getItems(); Set<String> sortedRouteIds = new LinkedHashSet<>(); boolean addSelectedRlpItemsFirst = com.android.media.flags.Flags.enableOutputSwitcherDeviceGrouping() && preferRouteListingOrdering(routeListingPreference); Set<String> selectedRouteIds = new HashSet<>(); if (addSelectedRlpItemsFirst) { if (preferRouteListingOrdering(routeListingPreference)) { // Add selected RLP items first for (MediaRoute2Info selectedRoute : selectedRoutes) { selectedRouteIds.add(selectedRoute.getId()); Loading
packages/SettingsLib/tests/robotests/src/com/android/settingslib/media/InfoMediaManagerTest.java +2 −7 Original line number Diff line number Diff line Loading @@ -374,7 +374,6 @@ public class InfoMediaManagerTest { assertThat(mInfoMediaManager.mMediaDevices.get(1).getId()).isEqualTo(TEST_ID_1); assertThat(mInfoMediaManager.mMediaDevices.get(2).getId()).isEqualTo(TEST_ID_3); assertThat(mInfoMediaManager.mMediaDevices.get(3).getId()).isEqualTo(TEST_ID_4); assertThat(mInfoMediaManager.mMediaDevices.get(3).isSuggestedDevice()).isTrue(); } private RouteListingPreference setUpPreferenceList(boolean useSystemOrdering) { Loading @@ -383,10 +382,8 @@ public class InfoMediaManagerTest { final List<RouteListingPreference.Item> preferenceItemList = new ArrayList<>(); RouteListingPreference.Item item1 = new RouteListingPreference.Item.Builder( TEST_ID_3).build(); RouteListingPreference.Item item2 = new RouteListingPreference.Item.Builder(TEST_ID_4) .setFlags(RouteListingPreference.Item.FLAG_SUGGESTED) .build(); RouteListingPreference.Item item2 = new RouteListingPreference.Item.Builder( TEST_ID_4).build(); preferenceItemList.add(item1); preferenceItemList.add(item2); Loading Loading @@ -1550,7 +1547,6 @@ public class InfoMediaManagerTest { .isEqualTo(LocalMediaManager.MediaDeviceState.STATE_CONNECTED); } @EnableFlags(Flags.FLAG_ENABLE_OUTPUT_SWITCHER_DEVICE_GROUPING) @Test public void arrangeRouteListByPreference_useSystemOrderingIsFalse() { RouteListingPreference routeListingPreference = setUpPreferenceList(false); Loading @@ -1567,7 +1563,6 @@ public class InfoMediaManagerTest { assertThat(routeOrder.get(3).getId()).isEqualTo(TEST_ID_1); } @EnableFlags(Flags.FLAG_ENABLE_OUTPUT_SWITCHER_DEVICE_GROUPING) @Test public void arrangeRouteListByPreference_useSystemOrderingIsTrue() { RouteListingPreference routeListingPreference = setUpPreferenceList(true); Loading
packages/SystemUI/multivalentTests/src/com/android/systemui/media/dialog/MediaOutputAdapterLegacyTest.java +15 −67 Original line number Diff line number Diff line Loading @@ -65,7 +65,6 @@ import org.mockito.Captor; import java.util.ArrayList; import java.util.List; import java.util.concurrent.Executor; import java.util.stream.Collectors; @SmallTest @DisableFlags(Flags.FLAG_ENABLE_OUTPUT_SWITCHER_REDESIGN) Loading @@ -86,12 +85,10 @@ public class MediaOutputAdapterLegacyTest extends SysuiTestCase { // Mock private MediaSwitchingController mMediaSwitchingController = mock(MediaSwitchingController.class); private MediaOutputDialog mMediaOutputDialog = mock(MediaOutputDialog.class); private MediaDevice mMediaDevice1 = mock(MediaDevice.class); private MediaDevice mMediaDevice2 = mock(MediaDevice.class); private Icon mIcon = mock(Icon.class); private IconCompat mIconCompat = mock(IconCompat.class); private View mDialogLaunchView = mock(View.class); @Captor private ArgumentCaptor<SeekBar.OnSeekBarChangeListener> mOnSeekBarChangeListenerCaptor; Loading Loading @@ -175,52 +172,6 @@ public class MediaOutputAdapterLegacyTest extends SysuiTestCase { mContext.getText(R.string.media_output_dialog_pairing_new).toString()); } @DisableFlags(Flags.FLAG_ENABLE_OUTPUT_SWITCHER_DEVICE_GROUPING) @Test public void onBindViewHolder_bindGroup_withSessionName_verifyView() { when(mMediaSwitchingController.getSelectedMediaDevice()) .thenReturn( mMediaItems.stream() .map((item) -> item.getMediaDevice().get()) .collect(Collectors.toList())); when(mMediaSwitchingController.getSessionName()).thenReturn(TEST_SESSION_NAME); mMediaOutputAdapter = new MediaOutputAdapterLegacy(mMediaSwitchingController, mMainExecutor, mBackgroundExecutor); mMediaOutputAdapter.updateItems(); mViewHolder = (MediaOutputAdapterLegacy.MediaDeviceViewHolderLegacy) mMediaOutputAdapter .onCreateViewHolder(new LinearLayout(mContext), 0); mMediaOutputAdapter.getItemCount(); mMediaOutputAdapter.onBindViewHolder(mViewHolder, 0); assertThat(mViewHolder.mSeekBar.getVisibility()).isEqualTo(View.VISIBLE); assertThat(mViewHolder.mTitleText.getVisibility()).isEqualTo(View.VISIBLE); assertThat(mViewHolder.mProgressBar.getVisibility()).isEqualTo(View.GONE); assertThat(mViewHolder.mCheckBox.getVisibility()).isEqualTo(View.VISIBLE); } @DisableFlags(Flags.FLAG_ENABLE_OUTPUT_SWITCHER_DEVICE_GROUPING) @Test public void onBindViewHolder_bindGroup_noSessionName_verifyView() { when(mMediaSwitchingController.getSelectedMediaDevice()) .thenReturn( mMediaItems.stream() .map((item) -> item.getMediaDevice().get()) .collect(Collectors.toList())); when(mMediaSwitchingController.getSessionName()).thenReturn(null); mMediaOutputAdapter = new MediaOutputAdapterLegacy(mMediaSwitchingController, mMainExecutor, mBackgroundExecutor); mMediaOutputAdapter.updateItems(); mViewHolder = (MediaOutputAdapterLegacy.MediaDeviceViewHolderLegacy) mMediaOutputAdapter .onCreateViewHolder(new LinearLayout(mContext), 0); mMediaOutputAdapter.getItemCount(); mMediaOutputAdapter.onBindViewHolder(mViewHolder, 0); assertThat(mViewHolder.mSeekBar.getVisibility()).isEqualTo(View.VISIBLE); assertThat(mViewHolder.mTitleText.getVisibility()).isEqualTo(View.VISIBLE); assertThat(mViewHolder.mProgressBar.getVisibility()).isEqualTo(View.GONE); assertThat(mViewHolder.mCheckBox.getVisibility()).isEqualTo(View.VISIBLE); } @Test public void onBindViewHolder_bindConnectedDevice_verifyView() { mMediaOutputAdapter.onBindViewHolder(mViewHolder, 0); Loading Loading @@ -248,7 +199,6 @@ public class MediaOutputAdapterLegacyTest extends SysuiTestCase { assertThat(mViewHolder.mSeekBar.getVisibility()).isEqualTo(View.VISIBLE); } @DisableFlags(Flags.FLAG_ENABLE_OUTPUT_SWITCHER_DEVICE_GROUPING) @Test public void onBindViewHolder_bindConnectedRemoteDevice_verifyView() { when(mMediaSwitchingController.getSelectedMediaDevice()) Loading @@ -264,10 +214,10 @@ public class MediaOutputAdapterLegacyTest extends SysuiTestCase { assertThat(mViewHolder.mTitleText.getText().toString()).isEqualTo(TEST_DEVICE_NAME_1); assertThat(mViewHolder.mSubTitleText.getVisibility()).isEqualTo(View.GONE); assertThat(mViewHolder.mProgressBar.getVisibility()).isEqualTo(View.GONE); assertThat(mViewHolder.mCheckBox.getVisibility()).isEqualTo(View.VISIBLE); assertThat(mViewHolder.mCheckBox.getVisibility()).isEqualTo(View.GONE); assertThat(mViewHolder.mEndClickIcon.getVisibility()).isEqualTo(View.GONE); assertThat(mViewHolder.mSeekBar.getVisibility()).isEqualTo(View.VISIBLE); assertThat(mViewHolder.mEndTouchArea.getVisibility()).isEqualTo(View.VISIBLE); assertThat(mViewHolder.mEndTouchArea.getVisibility()).isEqualTo(View.GONE); } @Test Loading Loading @@ -434,7 +384,6 @@ public class MediaOutputAdapterLegacyTest extends SysuiTestCase { verify(mMediaSwitchingController).logInteractionAdjustVolume(mMediaDevice1); } @DisableFlags(Flags.FLAG_ENABLE_OUTPUT_SWITCHER_DEVICE_GROUPING) @Test public void onBindViewHolder_bindSelectableDevice_verifyView() { List<MediaDevice> selectableDevices = new ArrayList<>(); Loading @@ -455,15 +404,18 @@ public class MediaOutputAdapterLegacyTest extends SysuiTestCase { verify(mMediaSwitchingController).addDeviceToPlayMedia(mMediaDevice2); } @DisableFlags(Flags.FLAG_ENABLE_OUTPUT_SWITCHER_DEVICE_GROUPING) @Test public void onBindViewHolder_bindDeselectableDevice_verifyView() { when(mMediaSwitchingController.getSelectedMediaDevice()).thenReturn( List.of(mMediaDevice1, mMediaDevice2)); when(mMediaSwitchingController.getDeselectableMediaDevice()).thenReturn( List.of(mMediaDevice1, mMediaDevice2)); mMediaOutputAdapter.onBindViewHolder(mViewHolder, 1); mMediaOutputAdapter.onBindViewHolder(mViewHolder, 0); // Expand the group control. mViewHolder.mEndClickIcon.performClick(); mMediaOutputAdapter.onBindViewHolder(mViewHolder, 1); assertThat(mViewHolder.mEndTouchArea.getVisibility()).isEqualTo(View.VISIBLE); assertThat(mViewHolder.mCheckBox.getVisibility()).isEqualTo(View.VISIBLE); assertThat(mViewHolder.mCheckBox.isChecked()).isTrue(); Loading @@ -473,7 +425,6 @@ public class MediaOutputAdapterLegacyTest extends SysuiTestCase { verify(mMediaSwitchingController).removeDeviceFromPlayMedia(mMediaDevice2); } @DisableFlags(Flags.FLAG_ENABLE_OUTPUT_SWITCHER_DEVICE_GROUPING) @Test public void onBindViewHolder_changingSelectedValue_doesntTriggerChangeListener() { List<MediaDevice> selectableDevices = List.of(mMediaDevice2); Loading @@ -481,6 +432,8 @@ public class MediaOutputAdapterLegacyTest extends SysuiTestCase { selectedDevices.add(mMediaDevice1); when(mMediaSwitchingController.getSelectableMediaDevice()).thenReturn(selectableDevices); when(mMediaSwitchingController.getSelectedMediaDevice()).thenReturn(selectedDevices); when(mMediaSwitchingController.getDeselectableMediaDevice()).thenReturn( List.of(mMediaDevice1, mMediaDevice2)); // mMediaDevice2 is selected mMediaOutputAdapter.onBindViewHolder(mViewHolder, 1); Loading @@ -488,6 +441,11 @@ public class MediaOutputAdapterLegacyTest extends SysuiTestCase { // changing the selected state programmatically (not a user click) selectedDevices.add(mMediaDevice2); mMediaOutputAdapter.onBindViewHolder(mViewHolder, 0); // Expand the group control. mViewHolder.mEndClickIcon.performClick(); mMediaOutputAdapter.onBindViewHolder(mViewHolder, 1); assertThat(mViewHolder.mCheckBox.isChecked()).isTrue(); Loading Loading @@ -866,11 +824,10 @@ public class MediaOutputAdapterLegacyTest extends SysuiTestCase { verify(mMediaSwitchingController).removeDeviceFromPlayMedia(mMediaDevice1); } @DisableFlags(Flags.FLAG_ENABLE_OUTPUT_SWITCHER_DEVICE_GROUPING) @Test public void onBindViewHolder_hasVolumeAdjustmentRestriction_verifySeekbarDisabled() { when(mMediaSwitchingController.getSelectedMediaDevice()).thenReturn( List.of(mMediaDevice1, mMediaDevice2)); List.of(mMediaDevice1)); when(mMediaSwitchingController.isCurrentConnectedDeviceRemote()).thenReturn(true); when(mMediaSwitchingController.hasAdjustVolumeUserRestriction()).thenReturn(true); mMediaOutputAdapter.updateItems(); Loading @@ -878,10 +835,6 @@ public class MediaOutputAdapterLegacyTest extends SysuiTestCase { // Connected and selected device mMediaOutputAdapter.onBindViewHolder(mViewHolder, 0); assertThat(mViewHolder.mSeekBar.getVisibility()).isEqualTo(View.GONE); // Selected device mMediaOutputAdapter.onBindViewHolder(mViewHolder, 1); assertThat(mViewHolder.mSeekBar.getVisibility()).isEqualTo(View.GONE); } @Test Loading Loading @@ -973,7 +926,6 @@ public class MediaOutputAdapterLegacyTest extends SysuiTestCase { .isEqualTo(R.drawable.media_output_icon_volume); } @EnableFlags(Flags.FLAG_ENABLE_OUTPUT_SWITCHER_DEVICE_GROUPING) @Test public void multipleSelectedDevices_verifySessionView() { initializeSession(); Loading @@ -994,7 +946,6 @@ public class MediaOutputAdapterLegacyTest extends SysuiTestCase { assertThat(mViewHolder.mSeekBar.getVolume()).isEqualTo(TEST_CURRENT_VOLUME); } @EnableFlags(Flags.FLAG_ENABLE_OUTPUT_SWITCHER_DEVICE_GROUPING) @Test public void multipleSelectedDevices_verifyCollapsedView() { initializeSession(); Loading @@ -1008,7 +959,6 @@ public class MediaOutputAdapterLegacyTest extends SysuiTestCase { assertThat(mViewHolder.mEndTouchArea.getVisibility()).isEqualTo(View.GONE); } @EnableFlags(Flags.FLAG_ENABLE_OUTPUT_SWITCHER_DEVICE_GROUPING) @Test public void multipleSelectedDevices_expandIconClicked_verifyInitialView() { initializeSession(); Loading @@ -1031,7 +981,6 @@ public class MediaOutputAdapterLegacyTest extends SysuiTestCase { assertThat(mViewHolder.mTitleText.getText().toString()).isEqualTo(TEST_DEVICE_NAME_1); } @EnableFlags(Flags.FLAG_ENABLE_OUTPUT_SWITCHER_DEVICE_GROUPING) @Test public void multipleSelectedDevices_expandIconClicked_verifyCollapsedView() { initializeSession(); Loading @@ -1054,7 +1003,6 @@ public class MediaOutputAdapterLegacyTest extends SysuiTestCase { assertThat(mViewHolder.mTitleText.getText().toString()).isEqualTo(TEST_DEVICE_NAME_2); } @EnableFlags(Flags.FLAG_ENABLE_OUTPUT_SWITCHER_DEVICE_GROUPING) @Test public void deviceCanNotBeDeselected_verifyView() { List<MediaDevice> selectedDevices = new ArrayList<>(); Loading
packages/SystemUI/src/com/android/systemui/media/dialog/MediaOutputAdapterBase.java +1 −1 Original line number Diff line number Diff line Loading @@ -63,7 +63,7 @@ public abstract class MediaOutputAdapterBase extends RecyclerView.Adapter<Recycl private static final String TAG = "MediaOutputAdapterBase"; private static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG); protected final List<MediaItem> mMediaItemList = new CopyOnWriteArrayList<>(); private boolean mShouldGroupSelectedMediaItems = Flags.enableOutputSwitcherDeviceGrouping(); private boolean mShouldGroupSelectedMediaItems = true; public MediaOutputAdapterBase(MediaSwitchingController controller) { mController = controller; Loading