From 3ac144163eec844917165089077a2a17d46d9d0a Mon Sep 17 00:00:00 2001 From: Tim Peng Date: Mon, 30 Mar 2020 16:20:14 +0800 Subject: [PATCH] No media status is visible in Output Switcher -Reflash header when get latest media controller Bug: 152606491 Test: make -j42 RunSettingsRoboTests Change-Id: I14542a7f8ba921c9d1dbaacf7e01c3ee673527b2 --- .../settings/panel/MediaOutputPanel.java | 1 + .../settings/panel/MediaOutputPanelTest.java | 20 ++++++++++++++++++- 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/src/com/android/settings/panel/MediaOutputPanel.java b/src/com/android/settings/panel/MediaOutputPanel.java index 54efd85fe0d..de66d14e49e 100644 --- a/src/com/android/settings/panel/MediaOutputPanel.java +++ b/src/com/android/settings/panel/MediaOutputPanel.java @@ -220,6 +220,7 @@ public class MediaOutputPanel implements PanelContent, LocalMediaManager.DeviceC if (TextUtils.equals(controller.getPackageName(), mPackageName)) { mMediaController = controller; mMediaController.registerCallback(mCb); + mCallback.onHeaderChanged(); break; } } diff --git a/tests/robotests/src/com/android/settings/panel/MediaOutputPanelTest.java b/tests/robotests/src/com/android/settings/panel/MediaOutputPanelTest.java index 563028e96cb..0f30c200bf1 100644 --- a/tests/robotests/src/com/android/settings/panel/MediaOutputPanelTest.java +++ b/tests/robotests/src/com/android/settings/panel/MediaOutputPanelTest.java @@ -24,6 +24,7 @@ import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.never; import static org.mockito.Mockito.spy; +import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; @@ -58,6 +59,7 @@ import java.util.List; public class MediaOutputPanelTest { private static final String TEST_PACKAGENAME = "com.test.packagename"; + private static final String TEST_PACKAGENAME2 = "com.test.packagename2"; private static final String TEST_ARTIST = "test_artist"; private static final String TEST_SONG = "test_song"; @@ -131,6 +133,21 @@ public class MediaOutputPanelTest { verify(mLocalMediaManager).startScan(); } + @Test + public void onStart_activeSession_verifyOnHeaderChanged() { + mPanel.onStart(); + + verify(mCallback).onHeaderChanged(); + } + + @Test + public void onStart_noMatchedActiveSession_verifyNeverOnHeaderChanged() { + when(mMediaController.getPackageName()).thenReturn(TEST_PACKAGENAME2); + mPanel.onStart(); + + verify(mCallback, never()).onHeaderChanged(); + } + @Test public void onStop_shouldUnregisterCallback() { mPanel.onStop(); @@ -255,12 +272,13 @@ public class MediaOutputPanelTest { @Test public void onMetadataChanged_verifyCallOnHeaderChanged() { mPanel.onStart(); + verify(mCallback).onHeaderChanged(); verify(mMediaController).registerCallback(mControllerCbs.capture()); final MediaController.Callback controllerCallbacks = mControllerCbs.getValue(); controllerCallbacks.onMetadataChanged(mMediaMetadata); - verify(mCallback).onHeaderChanged(); + verify(mCallback, times(2)).onHeaderChanged(); } @Test