Merge "Update header information in output switcher" into rvc-dev
This commit is contained in:
@@ -89,7 +89,7 @@ public class MediaOutputPanel implements PanelContent, LocalMediaManager.DeviceC
|
|||||||
if (mMediaController != null) {
|
if (mMediaController != null) {
|
||||||
final MediaMetadata metadata = mMediaController.getMetadata();
|
final MediaMetadata metadata = mMediaController.getMetadata();
|
||||||
if (metadata != null) {
|
if (metadata != null) {
|
||||||
return metadata.getString(MediaMetadata.METADATA_KEY_ARTIST);
|
return metadata.getDescription().getTitle();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return mContext.getText(R.string.media_volume_title);
|
return mContext.getText(R.string.media_volume_title);
|
||||||
@@ -100,10 +100,10 @@ public class MediaOutputPanel implements PanelContent, LocalMediaManager.DeviceC
|
|||||||
if (mMediaController != null) {
|
if (mMediaController != null) {
|
||||||
final MediaMetadata metadata = mMediaController.getMetadata();
|
final MediaMetadata metadata = mMediaController.getMetadata();
|
||||||
if (metadata != null) {
|
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
|
@Override
|
||||||
|
@@ -28,11 +28,13 @@ import static org.mockito.Mockito.verify;
|
|||||||
import static org.mockito.Mockito.when;
|
import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
import android.media.MediaDescription;
|
||||||
import android.media.MediaMetadata;
|
import android.media.MediaMetadata;
|
||||||
import android.media.session.MediaController;
|
import android.media.session.MediaController;
|
||||||
import android.media.session.MediaSessionManager;
|
import android.media.session.MediaSessionManager;
|
||||||
import android.media.session.PlaybackState;
|
import android.media.session.PlaybackState;
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
|
import android.text.TextUtils;
|
||||||
|
|
||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
import com.android.settings.slices.CustomSliceRegistry;
|
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_PACKAGENAME = "com.test.packagename";
|
||||||
private static final String TEST_ARTIST = "test_artist";
|
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
|
@Mock
|
||||||
private MediaSessionManager mMediaSessionManager;
|
private MediaSessionManager mMediaSessionManager;
|
||||||
@@ -77,6 +79,7 @@ public class MediaOutputPanelTest {
|
|||||||
private List<MediaController> mMediaControllers = new ArrayList<>();
|
private List<MediaController> mMediaControllers = new ArrayList<>();
|
||||||
private ArgumentCaptor<MediaController.Callback> mControllerCbs =
|
private ArgumentCaptor<MediaController.Callback> mControllerCbs =
|
||||||
ArgumentCaptor.forClass(MediaController.Callback.class);
|
ArgumentCaptor.forClass(MediaController.Callback.class);
|
||||||
|
private MediaDescription mMediaDescription;
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void setUp() {
|
public void setUp() {
|
||||||
@@ -89,6 +92,11 @@ public class MediaOutputPanelTest {
|
|||||||
when(mMediaSessionManager.getActiveSessions(any())).thenReturn(mMediaControllers);
|
when(mMediaSessionManager.getActiveSessions(any())).thenReturn(mMediaControllers);
|
||||||
when(mContext.getApplicationContext()).thenReturn(mContext);
|
when(mContext.getApplicationContext()).thenReturn(mContext);
|
||||||
when(mContext.getSystemService(MediaSessionManager.class)).thenReturn(mMediaSessionManager);
|
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 = MediaOutputPanel.create(mContext, TEST_PACKAGENAME);
|
||||||
mPanel.mLocalMediaManager = mLocalMediaManager;
|
mPanel.mLocalMediaManager = mLocalMediaManager;
|
||||||
@@ -173,12 +181,11 @@ public class MediaOutputPanelTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void getTitle_withMetadata_returnArtistName() {
|
public void getTitle_withMetadata_returnSongName() {
|
||||||
mPanel.onStart();
|
mPanel.onStart();
|
||||||
when(mMediaMetadata.getString(MediaMetadata.METADATA_KEY_ARTIST)).thenReturn(TEST_ARTIST);
|
|
||||||
when(mMediaController.getMetadata()).thenReturn(mMediaMetadata);
|
when(mMediaController.getMetadata()).thenReturn(mMediaMetadata);
|
||||||
|
|
||||||
assertThat(mPanel.getTitle()).isEqualTo(TEST_ARTIST);
|
assertThat(mPanel.getTitle()).isEqualTo(TEST_SONG);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -187,11 +194,9 @@ public class MediaOutputPanelTest {
|
|||||||
|
|
||||||
assertThat(mPanel.getTitle()).isEqualTo(mContext.getText(R.string.media_volume_title));
|
assertThat(mPanel.getTitle()).isEqualTo(mContext.getText(R.string.media_volume_title));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void getTitle_noPackageName_returnDefaultString() {
|
public void getTitle_noPackageName_returnDefaultString() {
|
||||||
mPanel = MediaOutputPanel.create(mContext, null);
|
mPanel = MediaOutputPanel.create(mContext, null);
|
||||||
when(mMediaMetadata.getString(MediaMetadata.METADATA_KEY_ARTIST)).thenReturn(TEST_ARTIST);
|
|
||||||
when(mMediaController.getMetadata()).thenReturn(mMediaMetadata);
|
when(mMediaController.getMetadata()).thenReturn(mMediaMetadata);
|
||||||
|
|
||||||
assertThat(mPanel.getTitle()).isEqualTo(mContext.getText(R.string.media_volume_title));
|
assertThat(mPanel.getTitle()).isEqualTo(mContext.getText(R.string.media_volume_title));
|
||||||
@@ -208,42 +213,36 @@ public class MediaOutputPanelTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void getSubTitle_withMetadata_returnAlbumName() {
|
public void getSubTitle_withMetadata_returnArtistName() {
|
||||||
mPanel.onStart();
|
mPanel.onStart();
|
||||||
when(mMediaMetadata.getString(MediaMetadata.METADATA_KEY_ALBUM)).thenReturn(TEST_ALBUM);
|
|
||||||
when(mMediaController.getMetadata()).thenReturn(mMediaMetadata);
|
when(mMediaController.getMetadata()).thenReturn(mMediaMetadata);
|
||||||
|
|
||||||
assertThat(mPanel.getSubTitle()).isEqualTo(TEST_ALBUM);
|
assertThat(mPanel.getSubTitle()).isEqualTo(TEST_ARTIST);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void getSubTitle_noMetadata_returnDefaultString() {
|
public void getSubTitle_noMetadata_returnEmpty() {
|
||||||
when(mMediaController.getPackageName()).thenReturn(TEST_PACKAGENAME);
|
when(mMediaController.getPackageName()).thenReturn(TEST_PACKAGENAME);
|
||||||
when(mMediaController.getMetadata()).thenReturn(null);
|
when(mMediaController.getMetadata()).thenReturn(null);
|
||||||
|
|
||||||
assertThat(mPanel.getSubTitle()).isEqualTo(mContext.getText(
|
assertThat(TextUtils.isEmpty(mPanel.getSubTitle())).isTrue();
|
||||||
R.string.media_output_panel_title));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void getSubTitle_noPackageName_returnDefaultString() {
|
public void getSubTitle_noPackageName_returnEmpty() {
|
||||||
mPanel = MediaOutputPanel.create(mContext, null);
|
mPanel = MediaOutputPanel.create(mContext, null);
|
||||||
when(mMediaMetadata.getString(MediaMetadata.METADATA_KEY_ARTIST)).thenReturn(TEST_ARTIST);
|
|
||||||
when(mMediaController.getMetadata()).thenReturn(mMediaMetadata);
|
when(mMediaController.getMetadata()).thenReturn(mMediaMetadata);
|
||||||
|
|
||||||
assertThat(mPanel.getSubTitle()).isEqualTo(mContext.getText(
|
assertThat(TextUtils.isEmpty(mPanel.getSubTitle())).isTrue();
|
||||||
R.string.media_output_panel_title));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void getSubTitle_noController_returnDefaultString() {
|
public void getSubTitle_noController_returnEmpty() {
|
||||||
mMediaControllers.clear();
|
mMediaControllers.clear();
|
||||||
mPanel = MediaOutputPanel.create(mContext, TEST_PACKAGENAME);
|
mPanel = MediaOutputPanel.create(mContext, TEST_PACKAGENAME);
|
||||||
when(mMediaMetadata.getString(MediaMetadata.METADATA_KEY_ALBUM)).thenReturn(TEST_ALBUM);
|
|
||||||
when(mMediaController.getMetadata()).thenReturn(mMediaMetadata);
|
when(mMediaController.getMetadata()).thenReturn(mMediaMetadata);
|
||||||
|
|
||||||
assertThat(mPanel.getSubTitle()).isEqualTo(mContext.getText(
|
assertThat(TextUtils.isEmpty(mPanel.getSubTitle())).isTrue();
|
||||||
R.string.media_output_panel_title));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
Reference in New Issue
Block a user