Loading src/com/android/settings/panel/MediaOutputPanel.java +3 −3 Original line number Diff line number Diff line Loading @@ -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); Loading @@ -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 Loading tests/robotests/src/com/android/settings/panel/MediaOutputPanelTest.java +19 −20 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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; Loading @@ -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() { Loading @@ -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; Loading Loading @@ -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 Loading @@ -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)); Loading @@ -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 Loading Loading
src/com/android/settings/panel/MediaOutputPanel.java +3 −3 Original line number Diff line number Diff line Loading @@ -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); Loading @@ -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 Loading
tests/robotests/src/com/android/settings/panel/MediaOutputPanelTest.java +19 −20 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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; Loading @@ -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() { Loading @@ -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; Loading Loading @@ -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 Loading @@ -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)); Loading @@ -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 Loading