diff --git a/src/com/android/settings/panel/MediaOutputPanel.java b/src/com/android/settings/panel/MediaOutputPanel.java
index 56ed6fb..1bf6f26 100644
--- a/src/com/android/settings/panel/MediaOutputPanel.java
+++ b/src/com/android/settings/panel/MediaOutputPanel.java
@@ -103,7 +103,7 @@
                 return metadata.getDescription().getSubtitle();
             }
         }
-        return null;
+        return mContext.getText(R.string.media_output_panel_title);
     }
 
     @Override
diff --git a/tests/robotests/src/com/android/settings/panel/MediaOutputPanelTest.java b/tests/robotests/src/com/android/settings/panel/MediaOutputPanelTest.java
index e0b926b..cdfa87f 100644
--- a/tests/robotests/src/com/android/settings/panel/MediaOutputPanelTest.java
+++ b/tests/robotests/src/com/android/settings/panel/MediaOutputPanelTest.java
@@ -35,7 +35,6 @@
 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;
@@ -238,28 +237,31 @@
     }
 
     @Test
-    public void getSubTitle_noMetadata_returnEmpty() {
+    public void getSubTitle_noMetadata_returnDefault() {
         when(mMediaController.getPackageName()).thenReturn(TEST_PACKAGENAME);
         when(mMediaController.getMetadata()).thenReturn(null);
 
-        assertThat(TextUtils.isEmpty(mPanel.getSubTitle())).isTrue();
+        assertThat(mPanel.getSubTitle()).isEqualTo(mContext.getText(
+                R.string.media_output_panel_title));
     }
 
     @Test
-    public void getSubTitle_noPackageName_returnEmpty() {
+    public void getSubTitle_noPackageName_returnDefault() {
         mPanel = MediaOutputPanel.create(mContext, null);
         when(mMediaController.getMetadata()).thenReturn(mMediaMetadata);
 
-        assertThat(TextUtils.isEmpty(mPanel.getSubTitle())).isTrue();
+        assertThat(mPanel.getSubTitle()).isEqualTo(mContext.getText(
+                R.string.media_output_panel_title));
     }
 
     @Test
-    public void getSubTitle_noController_returnEmpty() {
+    public void getSubTitle_noController_returnDefault() {
         mMediaControllers.clear();
         mPanel = MediaOutputPanel.create(mContext, TEST_PACKAGENAME);
         when(mMediaController.getMetadata()).thenReturn(mMediaMetadata);
 
-        assertThat(TextUtils.isEmpty(mPanel.getSubTitle())).isTrue();
+        assertThat(mPanel.getSubTitle()).isEqualTo(mContext.getText(
+                R.string.media_output_panel_title));
     }
 
     @Test
