diff --git a/res/layout/panel_layout.xml b/res/layout/panel_layout.xml index 895d09b89ad..5f33c32eb08 100644 --- a/res/layout/panel_layout.xml +++ b/res/layout/panel_layout.xml @@ -36,6 +36,7 @@ android:visibility="gone"> sliceUris = mPanel.getSlices(); @@ -471,7 +483,13 @@ public class PanelFragment extends Fragment { @Override public void onHeaderChanged() { ThreadUtils.postOnMainThread(() -> { - mTitleIcon.setImageIcon(mPanel.getIcon().toIcon(getContext())); + final IconCompat icon = mPanel.getIcon(); + if (icon != null) { + mTitleIcon.setImageIcon(icon.toIcon(getContext())); + mTitleGroup.setVisibility(View.VISIBLE); + } else { + mTitleGroup.setVisibility(View.GONE); + } mHeaderTitle.setText(mPanel.getTitle()); mHeaderSubtitle.setText(mPanel.getSubTitle()); }); diff --git a/tests/robotests/src/com/android/settings/panel/MediaOutputPanelTest.java b/tests/robotests/src/com/android/settings/panel/MediaOutputPanelTest.java index 2ab428d9b75..207a64428c1 100644 --- a/tests/robotests/src/com/android/settings/panel/MediaOutputPanelTest.java +++ b/tests/robotests/src/com/android/settings/panel/MediaOutputPanelTest.java @@ -317,4 +317,20 @@ public class MediaOutputPanelTest { public void getViewType_checkType() { assertThat(mPanel.getViewType()).isEqualTo(PanelContent.VIEW_TYPE_SLIDER_LARGE_ICON); } + + @Test + public void getIcon_mediaControllerIsNull_returnNull() { + mMediaControllers.clear(); + mPanel.onStart(); + + assertThat(mPanel.getIcon()).isNull(); + } + + @Test + public void getIcon_mediaMetadataIsNull_returnNull() { + mPanel.onStart(); + when(mMediaController.getMetadata()).thenReturn(null); + + assertThat(mPanel.getIcon()).isNull(); + } }