Merge "Update header information in output switcher" into rvc-dev
diff --git a/src/com/android/settings/panel/MediaOutputPanel.java b/src/com/android/settings/panel/MediaOutputPanel.java
index 998cfc8..54efd85 100644
--- a/src/com/android/settings/panel/MediaOutputPanel.java
+++ b/src/com/android/settings/panel/MediaOutputPanel.java
@@ -89,7 +89,7 @@
         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 @@
         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
diff --git a/tests/robotests/src/com/android/settings/panel/MediaOutputPanelTest.java b/tests/robotests/src/com/android/settings/panel/MediaOutputPanelTest.java
index 43cecfe..563028e 100644
--- a/tests/robotests/src/com/android/settings/panel/MediaOutputPanelTest.java
+++ b/tests/robotests/src/com/android/settings/panel/MediaOutputPanelTest.java
@@ -28,11 +28,13 @@
 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 @@
 
     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 @@
     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 @@
         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 @@
     }
 
     @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 @@
 
         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 @@
     }
 
     @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