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

Commit b267ec12 authored by Derek Jedral's avatar Derek Jedral
Browse files

Revert "Fix grouped items not appearing if total items changed"

This reverts commit 5f9a5d15.

Reason for revert: Might be the cause of recent regressions

Bug: 399104884
Change-Id: I17f773156157f048a68c8da5581481e375c2507c
parent 300f9f59
Loading
Loading
Loading
Loading
+6 −21
Original line number Diff line number Diff line
@@ -648,10 +648,6 @@ public class MediaSwitchingController
            final MediaDevice connectedMediaDevice =
                    needToHandleMutingExpectedDevice ? null
                            : getCurrentConnectedMediaDevice();

            Set<String> selectedDevicesIds = getSelectedMediaDevice().stream()
                    .map(MediaDevice::getId)
                    .collect(Collectors.toSet());
            if (oldMediaItems.isEmpty()) {
                if (connectedMediaDevice == null) {
                    if (DEBUG) {
@@ -660,14 +656,12 @@ public class MediaSwitchingController
                    return categorizeMediaItemsLocked(
                            /* connectedMediaDevice */ null,
                            devices,
                            selectedDevicesIds,
                            needToHandleMutingExpectedDevice);
                } else {
                    // selected device exist
                    return categorizeMediaItemsLocked(
                            connectedMediaDevice,
                            devices,
                            selectedDevicesIds,
                            /* needToHandleMutingExpectedDevice */ false);
                }
            }
@@ -701,20 +695,9 @@ public class MediaSwitchingController
                devices.removeAll(targetMediaDevices);
                targetMediaDevices.addAll(devices);
            }
            List<MediaItem> finalMediaItems = new ArrayList<>();
            boolean shouldAddFirstSeenSelectedDevice =
                    com.android.media.flags.Flags.enableOutputSwitcherDeviceGrouping();
            for (MediaDevice targetMediaDevice : targetMediaDevices) {
                if (shouldAddFirstSeenSelectedDevice
                        && selectedDevicesIds.contains(targetMediaDevice.getId())) {
                    finalMediaItems.add(MediaItem.createDeviceMediaItem(
                            targetMediaDevice, /* isFirstDeviceInGroup */ true));
                    shouldAddFirstSeenSelectedDevice = false;
                } else {
                    finalMediaItems.add(MediaItem.createDeviceMediaItem(
                            targetMediaDevice, /* isFirstDeviceInGroup */ false));
                }
            }
            List<MediaItem> finalMediaItems = targetMediaDevices.stream()
                    .map(MediaItem::createDeviceMediaItem)
                    .collect(Collectors.toList());
            dividerItems.forEach(finalMediaItems::add);
            attachConnectNewDeviceItemIfNeeded(finalMediaItems);
            return finalMediaItems;
@@ -741,9 +724,11 @@ public class MediaSwitchingController
    @GuardedBy("mMediaDevicesLock")
    private List<MediaItem> categorizeMediaItemsLocked(MediaDevice connectedMediaDevice,
            List<MediaDevice> devices,
            Set<String> selectedDevicesIds,
            boolean needToHandleMutingExpectedDevice) {
        List<MediaItem> finalMediaItems = new ArrayList<>();
        Set<String> selectedDevicesIds = getSelectedMediaDevice().stream()
                .map(MediaDevice::getId)
                .collect(Collectors.toSet());
        if (connectedMediaDevice != null) {
            selectedDevicesIds.add(connectedMediaDevice.getId());
        }
+0 −19
Original line number Diff line number Diff line
@@ -1573,25 +1573,6 @@ public class MediaSwitchingControllerTest extends SysuiTestCase {
        assertThat(items.get(1).isFirstDeviceInGroup()).isFalse();
    }

    @EnableFlags(Flags.FLAG_ENABLE_OUTPUT_SWITCHER_DEVICE_GROUPING)
    @Test
    public void deviceListUpdateWithDifferentDevices_firstSelectedDeviceIsFirstDeviceInGroup() {
        when(mLocalMediaManager.isPreferenceRouteListingExist()).thenReturn(true);
        doReturn(mMediaDevices)
                .when(mLocalMediaManager)
                .getSelectedMediaDevice();
        mMediaSwitchingController.start(mCb);
        reset(mCb);
        mMediaSwitchingController.getMediaItemList().clear();
        mMediaSwitchingController.onDeviceListUpdate(mMediaDevices);
        mMediaDevices.clear();
        mMediaDevices.add(mMediaDevice2);
        mMediaSwitchingController.onDeviceListUpdate(mMediaDevices);

        List<MediaItem> items = mMediaSwitchingController.getMediaItemList();
        assertThat(items.get(0).isFirstDeviceInGroup()).isTrue();
    }

    private int getNumberOfConnectDeviceButtons() {
        int numberOfConnectDeviceButtons = 0;
        for (MediaItem item : mMediaSwitchingController.getMediaItemList()) {