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

Commit f8f1b271 authored by tim peng's avatar tim peng Committed by Android (Google) Code Review
Browse files

Merge "Update header information in output switcher" into rvc-dev

parents fb39c708 93123a5c
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -89,7 +89,7 @@ public class MediaOutputPanel implements PanelContent, LocalMediaManager.DeviceC
        if (mMediaController != null) {
            final MediaMetadata metadata = mMediaController.getMetadata();
            if (metadata != null) {
                return metadata.getString(MediaMetadata.METADATA_KEY_ARTIST);
                return metadata.getDescription().getTitle();
            }
        }
        return mContext.getText(R.string.media_volume_title);
@@ -100,10 +100,10 @@ public class MediaOutputPanel implements PanelContent, LocalMediaManager.DeviceC
        if (mMediaController != null) {
            final MediaMetadata metadata = mMediaController.getMetadata();
            if (metadata != null) {
                return metadata.getString(MediaMetadata.METADATA_KEY_ALBUM);
                return metadata.getDescription().getSubtitle();
            }
        }
        return mContext.getText(R.string.media_output_panel_title);
        return null;
    }

    @Override
+19 −20
Original line number Diff line number Diff line
@@ -28,11 +28,13 @@ import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;

import android.content.Context;
import android.media.MediaDescription;
import android.media.MediaMetadata;
import android.media.session.MediaController;
import android.media.session.MediaSessionManager;
import android.media.session.PlaybackState;
import android.net.Uri;
import android.text.TextUtils;

import com.android.settings.R;
import com.android.settings.slices.CustomSliceRegistry;
@@ -57,7 +59,7 @@ public class MediaOutputPanelTest {

    private static final String TEST_PACKAGENAME = "com.test.packagename";
    private static final String TEST_ARTIST = "test_artist";
    private static final String TEST_ALBUM = "test_album";
    private static final String TEST_SONG = "test_song";

    @Mock
    private MediaSessionManager mMediaSessionManager;
@@ -77,6 +79,7 @@ public class MediaOutputPanelTest {
    private List<MediaController> mMediaControllers = new ArrayList<>();
    private ArgumentCaptor<MediaController.Callback> mControllerCbs =
            ArgumentCaptor.forClass(MediaController.Callback.class);
    private MediaDescription mMediaDescription;

    @Before
    public void setUp() {
@@ -89,6 +92,11 @@ public class MediaOutputPanelTest {
        when(mMediaSessionManager.getActiveSessions(any())).thenReturn(mMediaControllers);
        when(mContext.getApplicationContext()).thenReturn(mContext);
        when(mContext.getSystemService(MediaSessionManager.class)).thenReturn(mMediaSessionManager);
        MediaDescription.Builder builder = new MediaDescription.Builder();
        builder.setTitle(TEST_SONG);
        builder.setSubtitle(TEST_ARTIST);
        mMediaDescription = builder.build();
        when(mMediaMetadata.getDescription()).thenReturn(mMediaDescription);

        mPanel = MediaOutputPanel.create(mContext, TEST_PACKAGENAME);
        mPanel.mLocalMediaManager = mLocalMediaManager;
@@ -173,12 +181,11 @@ public class MediaOutputPanelTest {
    }

    @Test
    public void getTitle_withMetadata_returnArtistName() {
    public void getTitle_withMetadata_returnSongName() {
        mPanel.onStart();
        when(mMediaMetadata.getString(MediaMetadata.METADATA_KEY_ARTIST)).thenReturn(TEST_ARTIST);
        when(mMediaController.getMetadata()).thenReturn(mMediaMetadata);

        assertThat(mPanel.getTitle()).isEqualTo(TEST_ARTIST);
        assertThat(mPanel.getTitle()).isEqualTo(TEST_SONG);
    }

    @Test
@@ -187,11 +194,9 @@ public class MediaOutputPanelTest {

        assertThat(mPanel.getTitle()).isEqualTo(mContext.getText(R.string.media_volume_title));
    }

    @Test
    public void getTitle_noPackageName_returnDefaultString() {
        mPanel = MediaOutputPanel.create(mContext, null);
        when(mMediaMetadata.getString(MediaMetadata.METADATA_KEY_ARTIST)).thenReturn(TEST_ARTIST);
        when(mMediaController.getMetadata()).thenReturn(mMediaMetadata);

        assertThat(mPanel.getTitle()).isEqualTo(mContext.getText(R.string.media_volume_title));
@@ -208,42 +213,36 @@ public class MediaOutputPanelTest {
    }

    @Test
    public void getSubTitle_withMetadata_returnAlbumName() {
    public void getSubTitle_withMetadata_returnArtistName() {
        mPanel.onStart();
        when(mMediaMetadata.getString(MediaMetadata.METADATA_KEY_ALBUM)).thenReturn(TEST_ALBUM);
        when(mMediaController.getMetadata()).thenReturn(mMediaMetadata);

        assertThat(mPanel.getSubTitle()).isEqualTo(TEST_ALBUM);
        assertThat(mPanel.getSubTitle()).isEqualTo(TEST_ARTIST);
    }

    @Test
    public void getSubTitle_noMetadata_returnDefaultString() {
    public void getSubTitle_noMetadata_returnEmpty() {
        when(mMediaController.getPackageName()).thenReturn(TEST_PACKAGENAME);
        when(mMediaController.getMetadata()).thenReturn(null);

        assertThat(mPanel.getSubTitle()).isEqualTo(mContext.getText(
                R.string.media_output_panel_title));
        assertThat(TextUtils.isEmpty(mPanel.getSubTitle())).isTrue();
    }

    @Test
    public void getSubTitle_noPackageName_returnDefaultString() {
    public void getSubTitle_noPackageName_returnEmpty() {
        mPanel = MediaOutputPanel.create(mContext, null);
        when(mMediaMetadata.getString(MediaMetadata.METADATA_KEY_ARTIST)).thenReturn(TEST_ARTIST);
        when(mMediaController.getMetadata()).thenReturn(mMediaMetadata);

        assertThat(mPanel.getSubTitle()).isEqualTo(mContext.getText(
                R.string.media_output_panel_title));
        assertThat(TextUtils.isEmpty(mPanel.getSubTitle())).isTrue();
    }

    @Test
    public void getSubTitle_noController_returnDefaultString() {
    public void getSubTitle_noController_returnEmpty() {
        mMediaControllers.clear();
        mPanel = MediaOutputPanel.create(mContext, TEST_PACKAGENAME);
        when(mMediaMetadata.getString(MediaMetadata.METADATA_KEY_ALBUM)).thenReturn(TEST_ALBUM);
        when(mMediaController.getMetadata()).thenReturn(mMediaMetadata);

        assertThat(mPanel.getSubTitle()).isEqualTo(mContext.getText(
                R.string.media_output_panel_title));
        assertThat(TextUtils.isEmpty(mPanel.getSubTitle())).isTrue();
    }

    @Test