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

Commit 47f6f193 authored by Shenqiu Zhang's avatar Shenqiu Zhang
Browse files

Cleanup the flag disable_transfer_when_apps_do_not_support

Bug: 410118017
Fix: 410118017
Test: presubmit
Flag: NONE cleanup a launched flag
Change-Id: Iaca4d3531b8e66cd0c8c32e7fd3dc1b775f5e309
parent 4385272c
Loading
Loading
Loading
Loading
+0 −10
Original line number Diff line number Diff line
@@ -30,16 +30,6 @@ flag {
    }
}

flag {
    name: "disable_transfer_when_apps_do_not_support"
    namespace: "media_better_together"
    description: "Fixes a bug causing output switcher routes to be incorrectly enabled for media transfer."
    bug: "373404114"
    metadata {
        purpose: PURPOSE_BUGFIX
    }
}

flag {
    name: "enable_audio_input_device_routing_and_volume_control"
    namespace: "media_better_together"
+3 −75
Original line number Diff line number Diff line
@@ -782,9 +782,8 @@ public class MediaOutputAdapterLegacyTest extends SysuiTestCase {
        verify(mMediaSwitchingController).addDeviceToPlayMedia(mMediaDevice2);
    }

    @DisableFlags(Flags.FLAG_DISABLE_TRANSFER_WHEN_APPS_DO_NOT_SUPPORT)
    @Test
    public void clickFullItemOfSelectableDevice_flagOff_hasListingPreference_verifyConnectDevice() {
    public void clickFullItemOfSelectableDevice_hasListingPreference_verifyConnectDevice() {
        List<MediaDevice> mediaDevices = new ArrayList<>();
        mediaDevices.add(mMediaDevice2);
        when(mMediaDevice2.hasRouteListingPreferenceItem()).thenReturn(true);
@@ -805,32 +804,8 @@ public class MediaOutputAdapterLegacyTest extends SysuiTestCase {
        verify(mMediaSwitchingController).connectDevice(mMediaDevice2);
    }

    @EnableFlags(Flags.FLAG_DISABLE_TRANSFER_WHEN_APPS_DO_NOT_SUPPORT)
    @Test
    public void clickFullItemOfSelectableDevice_flagOn_hasListingPreference_verifyConnectDevice() {
        List<MediaDevice> mediaDevices = new ArrayList<>();
        mediaDevices.add(mMediaDevice2);
        when(mMediaDevice2.hasRouteListingPreferenceItem()).thenReturn(true);
        when(mMediaSwitchingController.getSelectableMediaDevice()).thenReturn(mediaDevices);
        when(mMediaSwitchingController.getTransferableMediaDevices()).thenReturn(List.of());
        when(mMediaSwitchingController.isCurrentOutputDeviceHasSessionOngoing()).thenReturn(false);
        mMediaOutputAdapter.onBindViewHolder(mViewHolder, 1);

        assertThat(mViewHolder.mCheckBox.getVisibility()).isEqualTo(View.VISIBLE);
        assertThat(mViewHolder.mTitleText.getVisibility()).isEqualTo(View.VISIBLE);
        assertThat(mViewHolder.mTitleText.getText().toString()).isEqualTo(TEST_DEVICE_NAME_2);
        assertThat(mViewHolder.mTitleText.getAlpha())
                .isEqualTo(MediaOutputAdapterLegacy.DEVICE_ACTIVE_ALPHA);
        assertThat(mViewHolder.mContainerLayout.isFocusable()).isTrue();

        mViewHolder.mContainerLayout.performClick();

        verify(mMediaSwitchingController).connectDevice(mMediaDevice2);
    }

    @DisableFlags(Flags.FLAG_DISABLE_TRANSFER_WHEN_APPS_DO_NOT_SUPPORT)
    @Test
    public void clickFullItemOfSelectableDevice_flagOff_isTransferable_verifyConnectDevice() {
    public void clickFullItemOfSelectableDevice_isTransferable_verifyConnectDevice() {
        List<MediaDevice> mediaDevices = new ArrayList<>();
        mediaDevices.add(mMediaDevice2);
        when(mMediaDevice2.hasRouteListingPreferenceItem()).thenReturn(false);
@@ -851,55 +826,8 @@ public class MediaOutputAdapterLegacyTest extends SysuiTestCase {
        verify(mMediaSwitchingController).connectDevice(mMediaDevice2);
    }

    @EnableFlags(Flags.FLAG_DISABLE_TRANSFER_WHEN_APPS_DO_NOT_SUPPORT)
    @Test
    public void clickFullItemOfSelectableDevice_flagOn_isTransferable_verifyConnectDevice() {
        List<MediaDevice> mediaDevices = new ArrayList<>();
        mediaDevices.add(mMediaDevice2);
        when(mMediaDevice2.hasRouteListingPreferenceItem()).thenReturn(false);
        when(mMediaSwitchingController.getSelectableMediaDevice()).thenReturn(mediaDevices);
        when(mMediaSwitchingController.getTransferableMediaDevices()).thenReturn(mediaDevices);
        when(mMediaSwitchingController.isCurrentOutputDeviceHasSessionOngoing()).thenReturn(false);
        mMediaOutputAdapter.onBindViewHolder(mViewHolder, 1);

        assertThat(mViewHolder.mCheckBox.getVisibility()).isEqualTo(View.VISIBLE);
        assertThat(mViewHolder.mTitleText.getVisibility()).isEqualTo(View.VISIBLE);
        assertThat(mViewHolder.mTitleText.getText().toString()).isEqualTo(TEST_DEVICE_NAME_2);
        assertThat(mViewHolder.mTitleText.getAlpha())
                .isEqualTo(MediaOutputAdapterLegacy.DEVICE_ACTIVE_ALPHA);
        assertThat(mViewHolder.mContainerLayout.isFocusable()).isTrue();

        mViewHolder.mContainerLayout.performClick();

        verify(mMediaSwitchingController).connectDevice(mMediaDevice2);
    }

    @DisableFlags(Flags.FLAG_DISABLE_TRANSFER_WHEN_APPS_DO_NOT_SUPPORT)
    @Test
    public void clickFullItemOfSelectableDevice_flagOff_notTransferable_verifyConnectDevice() {
        List<MediaDevice> mediaDevices = new ArrayList<>();
        mediaDevices.add(mMediaDevice2);
        when(mMediaDevice2.hasRouteListingPreferenceItem()).thenReturn(false);
        when(mMediaSwitchingController.getSelectableMediaDevice()).thenReturn(mediaDevices);
        when(mMediaSwitchingController.getTransferableMediaDevices()).thenReturn(List.of());
        when(mMediaSwitchingController.isCurrentOutputDeviceHasSessionOngoing()).thenReturn(false);
        mMediaOutputAdapter.onBindViewHolder(mViewHolder, 1);

        assertThat(mViewHolder.mCheckBox.getVisibility()).isEqualTo(View.VISIBLE);
        assertThat(mViewHolder.mTitleText.getVisibility()).isEqualTo(View.VISIBLE);
        assertThat(mViewHolder.mTitleText.getText().toString()).isEqualTo(TEST_DEVICE_NAME_2);
        assertThat(mViewHolder.mTitleText.getAlpha())
                .isEqualTo(MediaOutputAdapterLegacy.DEVICE_ACTIVE_ALPHA);
        assertThat(mViewHolder.mContainerLayout.isFocusable()).isTrue();

        mViewHolder.mContainerLayout.performClick();

        verify(mMediaSwitchingController).connectDevice(mMediaDevice2);
    }

    @EnableFlags(Flags.FLAG_DISABLE_TRANSFER_WHEN_APPS_DO_NOT_SUPPORT)
    @Test
    public void clickFullItemOfSelectableDevice_flagOn_notTransferable_verifyNotConnectDevice() {
    public void clickFullItemOfSelectableDevice_notTransferable_verifyNotConnectDevice() {
        List<MediaDevice> mediaDevices = new ArrayList<>();
        mediaDevices.add(mMediaDevice2);
        when(mMediaDevice2.hasRouteListingPreferenceItem()).thenReturn(false);
+14 −26
Original line number Diff line number Diff line
@@ -17,7 +17,6 @@ package com.android.systemui.media.dialog

import android.content.Context
import android.graphics.drawable.Icon
import android.platform.test.annotations.DisableFlags
import android.platform.test.annotations.EnableFlags
import android.testing.TestableLooper.RunWithLooper
import android.text.BidiFormatter
@@ -311,8 +310,12 @@ class MediaOutputAdapterTest : SysuiTestCase() {
            assertThat(mDivider.visibility).isEqualTo(VISIBLE)
            assertThat(mGroupButton.visibility).isEqualTo(VISIBLE)
            assertThat(mGroupButton.contentDescription)
                .isEqualTo(mContext.getString(R.string.accessibility_add_device_to_group_with_name,
                         BidiFormatter.getInstance().unicodeWrap(TEST_DEVICE_NAME_2)))
                .isEqualTo(
                    mContext.getString(
                        R.string.accessibility_add_device_to_group_with_name,
                        BidiFormatter.getInstance().unicodeWrap(TEST_DEVICE_NAME_2),
                    )
                )
            assertThat(mTitleText.visibility).isEqualTo(VISIBLE)
            assertThat(mTitleText.text.toString()).isEqualTo(TEST_DEVICE_NAME_2)

@@ -334,9 +337,12 @@ class MediaOutputAdapterTest : SysuiTestCase() {
        createAndBindDeviceViewHolder(position = 2).apply {
            assertThat(mGroupButton.visibility).isEqualTo(VISIBLE)
            assertThat(mGroupButton.contentDescription)
                .isEqualTo(mContext.getString(
                .isEqualTo(
                    mContext.getString(
                        R.string.accessibility_remove_device_from_group_with_name,
                        BidiFormatter.getInstance().unicodeWrap(TEST_DEVICE_NAME_2)))
                        BidiFormatter.getInstance().unicodeWrap(TEST_DEVICE_NAME_2),
                    )
                )
            mGroupButton.performClick()
        }

@@ -473,24 +479,8 @@ class MediaOutputAdapterTest : SysuiTestCase() {
        verify(mMediaSwitchingController, never()).connectDevice(any())
    }

    @DisableFlags(Flags.FLAG_DISABLE_TRANSFER_WHEN_APPS_DO_NOT_SUPPORT)
    @Test
    fun clickFullItemOfSelectableDevice_flagOff_verifyConnectDevice() {
        mMediaSwitchingController.stub {
            on { selectableMediaDevice } doReturn listOf(mMediaDevice2)
        }
        updateAdapterWithDevices(listOf(mMediaDevice2))

        createAndBindDeviceViewHolder(position = 0).apply {
            assertThat(mTitleText.text.toString()).isEqualTo(TEST_DEVICE_NAME_2)
            mMainContent.performClick()
        }
        verify(mMediaSwitchingController).connectDevice(mMediaDevice2)
    }

    @EnableFlags(Flags.FLAG_DISABLE_TRANSFER_WHEN_APPS_DO_NOT_SUPPORT)
    @Test
    fun clickFullItemOfSelectableDevice_flagOn_hasListingPreference_verifyConnectDevice() {
    fun clickFullItemOfSelectableDevice_hasListingPreference_verifyConnectDevice() {
        mMediaDevice2.stub { on { hasRouteListingPreferenceItem() } doReturn true }
        mMediaSwitchingController.stub {
            on { selectableMediaDevice } doReturn listOf(mMediaDevice2)
@@ -504,9 +494,8 @@ class MediaOutputAdapterTest : SysuiTestCase() {
        verify(mMediaSwitchingController).connectDevice(mMediaDevice2)
    }

    @EnableFlags(Flags.FLAG_DISABLE_TRANSFER_WHEN_APPS_DO_NOT_SUPPORT)
    @Test
    fun clickFullItemOfSelectableDevice_flagOn_isTransferable_verifyConnectDevice() {
    fun clickFullItemOfSelectableDevice_isTransferable_verifyConnectDevice() {
        mMediaSwitchingController.stub {
            on { selectableMediaDevice } doReturn listOf(mMediaDevice2)
            on { transferableMediaDevices } doReturn listOf(mMediaDevice2)
@@ -520,9 +509,8 @@ class MediaOutputAdapterTest : SysuiTestCase() {
        verify(mMediaSwitchingController).connectDevice(mMediaDevice2)
    }

    @EnableFlags(Flags.FLAG_DISABLE_TRANSFER_WHEN_APPS_DO_NOT_SUPPORT)
    @Test
    fun clickFullItemOfSelectableDevice_flagOn_notTransferable_verifyNotConnectDevice() {
    fun clickFullItemOfSelectableDevice_notTransferable_verifyNotConnectDevice() {
        mMediaDevice2.stub { on { hasRouteListingPreferenceItem() } doReturn false }
        mMediaSwitchingController.stub {
            on { selectableMediaDevice } doReturn listOf(mMediaDevice2)
+2 −3
Original line number Diff line number Diff line
@@ -16,10 +16,10 @@

package com.android.systemui.media.dialog;

import static com.android.media.flags.Flags.enableOutputSwitcherRedesign;
import static com.android.settingslib.media.MediaDevice.SelectionBehavior.SELECTION_BEHAVIOR_GO_TO_APP;
import static com.android.settingslib.media.MediaDevice.SelectionBehavior.SELECTION_BEHAVIOR_NONE;
import static com.android.settingslib.media.MediaDevice.SelectionBehavior.SELECTION_BEHAVIOR_TRANSFER;
import static com.android.media.flags.Flags.enableOutputSwitcherRedesign;

import android.content.Context;
import android.graphics.drawable.Drawable;
@@ -234,8 +234,7 @@ public abstract class MediaOutputAdapterBase extends RecyclerView.Adapter<Recycl
                        connectionState = ConnectionState.CONNECTED;
                    } else { // disconnected
                        if (isSelectable) { // groupable device
                            if (!Flags.disableTransferWhenAppsDoNotSupport() || isTransferable
                                    || hasRouteListingPreferenceItem) {
                            if (isTransferable || hasRouteListingPreferenceItem) {
                                clickListener = v -> onItemClick(v, device);
                            }
                        } else {