Loading services/core/java/com/android/server/hdmi/HdmiCecLocalDevicePlayback.java +1 −0 Original line number Diff line number Diff line Loading @@ -239,6 +239,7 @@ public class HdmiCecLocalDevicePlayback extends HdmiCecLocalDeviceSource { @ServiceThreadOnly protected void onActiveSourceLost() { assertRunOnServiceThread(); mService.pauseActiveMediaSessions(); switch (mService.getHdmiCecConfig().getStringValue( HdmiControlManager.CEC_SETTING_NAME_POWER_STATE_CHANGE_ON_ACTIVE_SOURCE_LOST)) { case HdmiControlManager.POWER_STATE_CHANGE_ON_ACTIVE_SOURCE_LOST_STANDBY_NOW: Loading services/core/java/com/android/server/hdmi/HdmiControlService.java +12 −0 Original line number Diff line number Diff line Loading @@ -56,6 +56,8 @@ import android.hardware.hdmi.IHdmiVendorCommandListener; import android.hardware.tv.cec.V1_0.OptionKey; import android.hardware.tv.cec.V1_0.SendMessageResult; import android.media.AudioManager; import android.media.session.MediaController; import android.media.session.MediaSessionManager; import android.media.tv.TvInputManager; import android.media.tv.TvInputManager.TvInputCallback; import android.net.Uri; Loading Loading @@ -3294,6 +3296,16 @@ public class HdmiControlService extends SystemService { } } @VisibleForTesting void pauseActiveMediaSessions() { MediaSessionManager mediaSessionManager = getContext() .getSystemService(MediaSessionManager.class); List<MediaController> mediaControllers = mediaSessionManager.getActiveSessions(null); for (MediaController mediaController : mediaControllers) { mediaController.getTransportControls().pause(); } } void setActiveSource(int logicalAddress, int physicalAddress, String caller) { synchronized (mLock) { mActiveSource.logicalAddress = logicalAddress; Loading services/tests/servicestests/src/com/android/server/hdmi/HdmiCecLocalDevicePlaybackTest.java +194 −0 Original line number Diff line number Diff line Loading @@ -67,6 +67,7 @@ public class HdmiCecLocalDevicePlaybackTest { private int mPlaybackLogicalAddress; private boolean mWokenUp; private boolean mStandby; private boolean mActiveMediaSessionsPaused; @Mock private IPowerManager mIPowerManagerMock; Loading Loading @@ -96,6 +97,11 @@ public class HdmiCecLocalDevicePlaybackTest { mHdmiControlService.onStandby(HdmiControlService.STANDBY_SCREEN_OFF); } @Override void pauseActiveMediaSessions() { mActiveMediaSessionsPaused = true; } @Override boolean isStandbyMessageReceived() { return mStandby; Loading Loading @@ -391,6 +397,54 @@ public class HdmiCecLocalDevicePlaybackTest { assertThat(mStandby).isFalse(); } @Test public void handleRoutingChange_otherDevice_ActiveSource_mediaSessionsPaused() { mHdmiCecLocalDevicePlayback.setActiveSource(mPlaybackLogicalAddress, mPlaybackPhysicalAddress, "HdmiCecLocalDevicePlaybackTest"); mActiveMediaSessionsPaused = false; HdmiCecMessage message = HdmiCecMessageBuilder.buildRoutingChange(ADDR_TV, 0x0000, 0x5000); mHdmiCecLocalDevicePlayback.dispatchMessage(message); mTestLooper.dispatchAll(); assertThat(mActiveMediaSessionsPaused).isTrue(); } @Test public void handleRoutingChange_otherDevice_InactiveSource_mediaSessionsNotPaused() { mHdmiCecLocalDevicePlayback.setActiveSource(ADDR_TV, 0x0000, "HdmiCecLocalDevicePlaybackTest"); mActiveMediaSessionsPaused = false; HdmiCecMessage message = HdmiCecMessageBuilder.buildRoutingChange(ADDR_TV, 0x0000, 0x5000); mHdmiCecLocalDevicePlayback.dispatchMessage(message); mTestLooper.dispatchAll(); assertThat(mActiveMediaSessionsPaused).isFalse(); } @Test public void handleRoutingChange_sameDevice_ActiveSource_mediaSessionsNotPaused() { mHdmiCecLocalDevicePlayback.setActiveSource(mPlaybackLogicalAddress, mPlaybackPhysicalAddress, "HdmiCecLocalDevicePlaybackTest"); mActiveMediaSessionsPaused = false; HdmiCecMessage message = HdmiCecMessageBuilder.buildRoutingChange(ADDR_TV, 0x0000, mPlaybackPhysicalAddress); mHdmiCecLocalDevicePlayback.dispatchMessage(message); mTestLooper.dispatchAll(); assertThat(mActiveMediaSessionsPaused).isFalse(); } @Test public void handleRoutingChange_sameDevice_InactiveSource_mediaSessionsNotPaused() { mHdmiCecLocalDevicePlayback.setActiveSource(ADDR_TV, 0x0000, "HdmiCecLocalDevicePlaybackTest"); mActiveMediaSessionsPaused = false; HdmiCecMessage message = HdmiCecMessageBuilder.buildRoutingChange(ADDR_TV, 0x0000, mPlaybackPhysicalAddress); mHdmiCecLocalDevicePlayback.dispatchMessage(message); mTestLooper.dispatchAll(); assertThat(mActiveMediaSessionsPaused).isFalse(); } @Test public void handleRoutingInformation_otherDevice_None() { mHdmiCecLocalDevicePlayback.mService.getHdmiCecConfig().setStringValue( Loading Loading @@ -495,6 +549,52 @@ public class HdmiCecLocalDevicePlaybackTest { assertThat(mStandby).isFalse(); } @Test public void handleRoutingInformation_otherDevice_ActiveSource_mediaSessionsPaused() { mHdmiCecLocalDevicePlayback.setActiveSource(mPlaybackLogicalAddress, mPlaybackPhysicalAddress, "HdmiCecLocalDevicePlaybackTest"); mActiveMediaSessionsPaused = false; HdmiCecMessage message = HdmiCecMessageBuilder.buildRoutingInformation(ADDR_TV, 0x5000); mHdmiCecLocalDevicePlayback.dispatchMessage(message); mTestLooper.dispatchAll(); assertThat(mActiveMediaSessionsPaused).isTrue(); } @Test public void handleRoutingInformation_otherDevice_InactiveSource_mediaSessionsNotPaused() { mHdmiCecLocalDevicePlayback.setActiveSource(ADDR_TV, 0x0000, "HdmiCecLocalDevicePlaybackTest"); mActiveMediaSessionsPaused = false; HdmiCecMessage message = HdmiCecMessageBuilder.buildRoutingInformation(ADDR_TV, 0x5000); mHdmiCecLocalDevicePlayback.dispatchMessage(message); mTestLooper.dispatchAll(); assertThat(mActiveMediaSessionsPaused).isFalse(); } @Test public void handleRoutingInformation_sameDevice_ActiveSource_mediaSessionsNotPaused() { mHdmiCecLocalDevicePlayback.setActiveSource(mPlaybackLogicalAddress, mPlaybackPhysicalAddress, "HdmiCecLocalDevicePlaybackTest"); mActiveMediaSessionsPaused = false; HdmiCecMessage message = HdmiCecMessageBuilder.buildRoutingInformation(ADDR_TV, mPlaybackPhysicalAddress); mHdmiCecLocalDevicePlayback.dispatchMessage(message); mTestLooper.dispatchAll(); assertThat(mActiveMediaSessionsPaused).isFalse(); } @Test public void handleRoutingInformation_sameDevice_InactiveSource_mediaSessionsNotPaused() { mHdmiCecLocalDevicePlayback.setActiveSource(ADDR_TV, 0x0000, "HdmiCecLocalDevicePlaybackTest"); mActiveMediaSessionsPaused = false; HdmiCecMessage message = HdmiCecMessageBuilder.buildRoutingInformation(ADDR_TV, mPlaybackPhysicalAddress); mHdmiCecLocalDevicePlayback.dispatchMessage(message); mTestLooper.dispatchAll(); assertThat(mActiveMediaSessionsPaused).isFalse(); } @Test public void handleSetStreamPath() { HdmiCecMessage message = Loading Loading @@ -830,6 +930,52 @@ public class HdmiCecLocalDevicePlaybackTest { assertThat(mHdmiCecLocalDevicePlayback.isActiveSource()).isFalse(); } @Test public void handleActiveSource_otherDevice_ActiveSource_mediaSessionsPaused() { mHdmiCecLocalDevicePlayback.setActiveSource(mPlaybackLogicalAddress, mPlaybackPhysicalAddress, "HdmiCecLocalDevicePlaybackTest"); mActiveMediaSessionsPaused = false; HdmiCecMessage message = HdmiCecMessageBuilder.buildActiveSource(ADDR_TV, 0x0000); mHdmiCecLocalDevicePlayback.dispatchMessage(message); mTestLooper.dispatchAll(); assertThat(mActiveMediaSessionsPaused).isTrue(); } @Test public void handleActiveSource_otherDevice_InactiveSource_mediaSessionsNotPaused() { mHdmiCecLocalDevicePlayback.setActiveSource(ADDR_TV, 0x0000, "HdmiCecLocalDevicePlaybackTest"); mActiveMediaSessionsPaused = false; HdmiCecMessage message = HdmiCecMessageBuilder.buildActiveSource(ADDR_TV, 0x0000); mHdmiCecLocalDevicePlayback.dispatchMessage(message); mTestLooper.dispatchAll(); assertThat(mActiveMediaSessionsPaused).isFalse(); } @Test public void handleActiveSource_sameDevice_ActiveSource_mediaSessionsNotPaused() { mHdmiCecLocalDevicePlayback.setActiveSource(mPlaybackLogicalAddress, mPlaybackPhysicalAddress, "HdmiCecLocalDevicePlaybackTest"); mActiveMediaSessionsPaused = false; HdmiCecMessage message = HdmiCecMessageBuilder.buildActiveSource(mPlaybackLogicalAddress, mPlaybackPhysicalAddress); mHdmiCecLocalDevicePlayback.dispatchMessage(message); mTestLooper.dispatchAll(); assertThat(mActiveMediaSessionsPaused).isFalse(); } @Test public void handleActiveSource_sameDevice_InactiveSource_mediaSessionsNotPaused() { mHdmiCecLocalDevicePlayback.setActiveSource(ADDR_TV, 0x0000, "HdmiCecLocalDevicePlaybackTest"); mActiveMediaSessionsPaused = false; HdmiCecMessage message = HdmiCecMessageBuilder.buildActiveSource(mPlaybackLogicalAddress, mPlaybackPhysicalAddress); mHdmiCecLocalDevicePlayback.dispatchMessage(message); mTestLooper.dispatchAll(); assertThat(mActiveMediaSessionsPaused).isFalse(); } @Test public void losingActiveSource_standbyNow_verifyStandbyMessageIsSentOnNextStandby() { // As described in b/161097846. Loading Loading @@ -1157,6 +1303,54 @@ public class HdmiCecLocalDevicePlaybackTest { assertThat(mStandby).isFalse(); } @Test public void handleSetStreamPath_otherDevice_ActiveSource_mediaSessionsPaused() { mHdmiCecLocalDevicePlayback.setActiveSource(mPlaybackLogicalAddress, mPlaybackPhysicalAddress, "HdmiCecLocalDevicePlaybackTest"); mActiveMediaSessionsPaused = false; HdmiCecMessage message = HdmiCecMessageBuilder.buildSetStreamPath(ADDR_TV, 0x5000); mHdmiCecLocalDevicePlayback.dispatchMessage(message); mTestLooper.dispatchAll(); assertThat(mActiveMediaSessionsPaused).isTrue(); } @Test public void handleSetStreamPath_otherDevice_InactiveSource_mediaSessionsNotPaused() { mHdmiCecLocalDevicePlayback.setActiveSource(ADDR_TV, 0x0000, "HdmiCecLocalDevicePlaybackTest"); mActiveMediaSessionsPaused = false; HdmiCecMessage message = HdmiCecMessageBuilder.buildSetStreamPath(ADDR_TV, 0x5000); mHdmiCecLocalDevicePlayback.dispatchMessage(message); mTestLooper.dispatchAll(); assertThat(mActiveMediaSessionsPaused).isFalse(); } @Test public void handleSetStreamPath_sameDevice_ActiveSource_mediaSessionsNotPaused() { mHdmiCecLocalDevicePlayback.setActiveSource(mPlaybackLogicalAddress, mPlaybackPhysicalAddress, "HdmiCecLocalDevicePlaybackTest"); mActiveMediaSessionsPaused = false; HdmiCecMessage message = HdmiCecMessageBuilder.buildSetStreamPath(ADDR_TV, mPlaybackPhysicalAddress); mHdmiCecLocalDevicePlayback.dispatchMessage(message); mTestLooper.dispatchAll(); assertThat(mActiveMediaSessionsPaused).isFalse(); } @Test public void handleSetStreamPath_sameDevice_InactiveSource_mediaSessionsNotPaused() { mHdmiCecLocalDevicePlayback.setActiveSource(ADDR_TV, 0x0000, "HdmiCecLocalDevicePlaybackTest"); mActiveMediaSessionsPaused = false; HdmiCecMessage message = HdmiCecMessageBuilder.buildSetStreamPath(ADDR_TV, mPlaybackPhysicalAddress); mHdmiCecLocalDevicePlayback.dispatchMessage(message); mTestLooper.dispatchAll(); assertThat(mActiveMediaSessionsPaused).isFalse(); } @Test public void oneTouchPlay_SendStandbyOnSleepToTv() { mHdmiCecLocalDevicePlayback.mService.getHdmiCecConfig().setStringValue( Loading Loading
services/core/java/com/android/server/hdmi/HdmiCecLocalDevicePlayback.java +1 −0 Original line number Diff line number Diff line Loading @@ -239,6 +239,7 @@ public class HdmiCecLocalDevicePlayback extends HdmiCecLocalDeviceSource { @ServiceThreadOnly protected void onActiveSourceLost() { assertRunOnServiceThread(); mService.pauseActiveMediaSessions(); switch (mService.getHdmiCecConfig().getStringValue( HdmiControlManager.CEC_SETTING_NAME_POWER_STATE_CHANGE_ON_ACTIVE_SOURCE_LOST)) { case HdmiControlManager.POWER_STATE_CHANGE_ON_ACTIVE_SOURCE_LOST_STANDBY_NOW: Loading
services/core/java/com/android/server/hdmi/HdmiControlService.java +12 −0 Original line number Diff line number Diff line Loading @@ -56,6 +56,8 @@ import android.hardware.hdmi.IHdmiVendorCommandListener; import android.hardware.tv.cec.V1_0.OptionKey; import android.hardware.tv.cec.V1_0.SendMessageResult; import android.media.AudioManager; import android.media.session.MediaController; import android.media.session.MediaSessionManager; import android.media.tv.TvInputManager; import android.media.tv.TvInputManager.TvInputCallback; import android.net.Uri; Loading Loading @@ -3294,6 +3296,16 @@ public class HdmiControlService extends SystemService { } } @VisibleForTesting void pauseActiveMediaSessions() { MediaSessionManager mediaSessionManager = getContext() .getSystemService(MediaSessionManager.class); List<MediaController> mediaControllers = mediaSessionManager.getActiveSessions(null); for (MediaController mediaController : mediaControllers) { mediaController.getTransportControls().pause(); } } void setActiveSource(int logicalAddress, int physicalAddress, String caller) { synchronized (mLock) { mActiveSource.logicalAddress = logicalAddress; Loading
services/tests/servicestests/src/com/android/server/hdmi/HdmiCecLocalDevicePlaybackTest.java +194 −0 Original line number Diff line number Diff line Loading @@ -67,6 +67,7 @@ public class HdmiCecLocalDevicePlaybackTest { private int mPlaybackLogicalAddress; private boolean mWokenUp; private boolean mStandby; private boolean mActiveMediaSessionsPaused; @Mock private IPowerManager mIPowerManagerMock; Loading Loading @@ -96,6 +97,11 @@ public class HdmiCecLocalDevicePlaybackTest { mHdmiControlService.onStandby(HdmiControlService.STANDBY_SCREEN_OFF); } @Override void pauseActiveMediaSessions() { mActiveMediaSessionsPaused = true; } @Override boolean isStandbyMessageReceived() { return mStandby; Loading Loading @@ -391,6 +397,54 @@ public class HdmiCecLocalDevicePlaybackTest { assertThat(mStandby).isFalse(); } @Test public void handleRoutingChange_otherDevice_ActiveSource_mediaSessionsPaused() { mHdmiCecLocalDevicePlayback.setActiveSource(mPlaybackLogicalAddress, mPlaybackPhysicalAddress, "HdmiCecLocalDevicePlaybackTest"); mActiveMediaSessionsPaused = false; HdmiCecMessage message = HdmiCecMessageBuilder.buildRoutingChange(ADDR_TV, 0x0000, 0x5000); mHdmiCecLocalDevicePlayback.dispatchMessage(message); mTestLooper.dispatchAll(); assertThat(mActiveMediaSessionsPaused).isTrue(); } @Test public void handleRoutingChange_otherDevice_InactiveSource_mediaSessionsNotPaused() { mHdmiCecLocalDevicePlayback.setActiveSource(ADDR_TV, 0x0000, "HdmiCecLocalDevicePlaybackTest"); mActiveMediaSessionsPaused = false; HdmiCecMessage message = HdmiCecMessageBuilder.buildRoutingChange(ADDR_TV, 0x0000, 0x5000); mHdmiCecLocalDevicePlayback.dispatchMessage(message); mTestLooper.dispatchAll(); assertThat(mActiveMediaSessionsPaused).isFalse(); } @Test public void handleRoutingChange_sameDevice_ActiveSource_mediaSessionsNotPaused() { mHdmiCecLocalDevicePlayback.setActiveSource(mPlaybackLogicalAddress, mPlaybackPhysicalAddress, "HdmiCecLocalDevicePlaybackTest"); mActiveMediaSessionsPaused = false; HdmiCecMessage message = HdmiCecMessageBuilder.buildRoutingChange(ADDR_TV, 0x0000, mPlaybackPhysicalAddress); mHdmiCecLocalDevicePlayback.dispatchMessage(message); mTestLooper.dispatchAll(); assertThat(mActiveMediaSessionsPaused).isFalse(); } @Test public void handleRoutingChange_sameDevice_InactiveSource_mediaSessionsNotPaused() { mHdmiCecLocalDevicePlayback.setActiveSource(ADDR_TV, 0x0000, "HdmiCecLocalDevicePlaybackTest"); mActiveMediaSessionsPaused = false; HdmiCecMessage message = HdmiCecMessageBuilder.buildRoutingChange(ADDR_TV, 0x0000, mPlaybackPhysicalAddress); mHdmiCecLocalDevicePlayback.dispatchMessage(message); mTestLooper.dispatchAll(); assertThat(mActiveMediaSessionsPaused).isFalse(); } @Test public void handleRoutingInformation_otherDevice_None() { mHdmiCecLocalDevicePlayback.mService.getHdmiCecConfig().setStringValue( Loading Loading @@ -495,6 +549,52 @@ public class HdmiCecLocalDevicePlaybackTest { assertThat(mStandby).isFalse(); } @Test public void handleRoutingInformation_otherDevice_ActiveSource_mediaSessionsPaused() { mHdmiCecLocalDevicePlayback.setActiveSource(mPlaybackLogicalAddress, mPlaybackPhysicalAddress, "HdmiCecLocalDevicePlaybackTest"); mActiveMediaSessionsPaused = false; HdmiCecMessage message = HdmiCecMessageBuilder.buildRoutingInformation(ADDR_TV, 0x5000); mHdmiCecLocalDevicePlayback.dispatchMessage(message); mTestLooper.dispatchAll(); assertThat(mActiveMediaSessionsPaused).isTrue(); } @Test public void handleRoutingInformation_otherDevice_InactiveSource_mediaSessionsNotPaused() { mHdmiCecLocalDevicePlayback.setActiveSource(ADDR_TV, 0x0000, "HdmiCecLocalDevicePlaybackTest"); mActiveMediaSessionsPaused = false; HdmiCecMessage message = HdmiCecMessageBuilder.buildRoutingInformation(ADDR_TV, 0x5000); mHdmiCecLocalDevicePlayback.dispatchMessage(message); mTestLooper.dispatchAll(); assertThat(mActiveMediaSessionsPaused).isFalse(); } @Test public void handleRoutingInformation_sameDevice_ActiveSource_mediaSessionsNotPaused() { mHdmiCecLocalDevicePlayback.setActiveSource(mPlaybackLogicalAddress, mPlaybackPhysicalAddress, "HdmiCecLocalDevicePlaybackTest"); mActiveMediaSessionsPaused = false; HdmiCecMessage message = HdmiCecMessageBuilder.buildRoutingInformation(ADDR_TV, mPlaybackPhysicalAddress); mHdmiCecLocalDevicePlayback.dispatchMessage(message); mTestLooper.dispatchAll(); assertThat(mActiveMediaSessionsPaused).isFalse(); } @Test public void handleRoutingInformation_sameDevice_InactiveSource_mediaSessionsNotPaused() { mHdmiCecLocalDevicePlayback.setActiveSource(ADDR_TV, 0x0000, "HdmiCecLocalDevicePlaybackTest"); mActiveMediaSessionsPaused = false; HdmiCecMessage message = HdmiCecMessageBuilder.buildRoutingInformation(ADDR_TV, mPlaybackPhysicalAddress); mHdmiCecLocalDevicePlayback.dispatchMessage(message); mTestLooper.dispatchAll(); assertThat(mActiveMediaSessionsPaused).isFalse(); } @Test public void handleSetStreamPath() { HdmiCecMessage message = Loading Loading @@ -830,6 +930,52 @@ public class HdmiCecLocalDevicePlaybackTest { assertThat(mHdmiCecLocalDevicePlayback.isActiveSource()).isFalse(); } @Test public void handleActiveSource_otherDevice_ActiveSource_mediaSessionsPaused() { mHdmiCecLocalDevicePlayback.setActiveSource(mPlaybackLogicalAddress, mPlaybackPhysicalAddress, "HdmiCecLocalDevicePlaybackTest"); mActiveMediaSessionsPaused = false; HdmiCecMessage message = HdmiCecMessageBuilder.buildActiveSource(ADDR_TV, 0x0000); mHdmiCecLocalDevicePlayback.dispatchMessage(message); mTestLooper.dispatchAll(); assertThat(mActiveMediaSessionsPaused).isTrue(); } @Test public void handleActiveSource_otherDevice_InactiveSource_mediaSessionsNotPaused() { mHdmiCecLocalDevicePlayback.setActiveSource(ADDR_TV, 0x0000, "HdmiCecLocalDevicePlaybackTest"); mActiveMediaSessionsPaused = false; HdmiCecMessage message = HdmiCecMessageBuilder.buildActiveSource(ADDR_TV, 0x0000); mHdmiCecLocalDevicePlayback.dispatchMessage(message); mTestLooper.dispatchAll(); assertThat(mActiveMediaSessionsPaused).isFalse(); } @Test public void handleActiveSource_sameDevice_ActiveSource_mediaSessionsNotPaused() { mHdmiCecLocalDevicePlayback.setActiveSource(mPlaybackLogicalAddress, mPlaybackPhysicalAddress, "HdmiCecLocalDevicePlaybackTest"); mActiveMediaSessionsPaused = false; HdmiCecMessage message = HdmiCecMessageBuilder.buildActiveSource(mPlaybackLogicalAddress, mPlaybackPhysicalAddress); mHdmiCecLocalDevicePlayback.dispatchMessage(message); mTestLooper.dispatchAll(); assertThat(mActiveMediaSessionsPaused).isFalse(); } @Test public void handleActiveSource_sameDevice_InactiveSource_mediaSessionsNotPaused() { mHdmiCecLocalDevicePlayback.setActiveSource(ADDR_TV, 0x0000, "HdmiCecLocalDevicePlaybackTest"); mActiveMediaSessionsPaused = false; HdmiCecMessage message = HdmiCecMessageBuilder.buildActiveSource(mPlaybackLogicalAddress, mPlaybackPhysicalAddress); mHdmiCecLocalDevicePlayback.dispatchMessage(message); mTestLooper.dispatchAll(); assertThat(mActiveMediaSessionsPaused).isFalse(); } @Test public void losingActiveSource_standbyNow_verifyStandbyMessageIsSentOnNextStandby() { // As described in b/161097846. Loading Loading @@ -1157,6 +1303,54 @@ public class HdmiCecLocalDevicePlaybackTest { assertThat(mStandby).isFalse(); } @Test public void handleSetStreamPath_otherDevice_ActiveSource_mediaSessionsPaused() { mHdmiCecLocalDevicePlayback.setActiveSource(mPlaybackLogicalAddress, mPlaybackPhysicalAddress, "HdmiCecLocalDevicePlaybackTest"); mActiveMediaSessionsPaused = false; HdmiCecMessage message = HdmiCecMessageBuilder.buildSetStreamPath(ADDR_TV, 0x5000); mHdmiCecLocalDevicePlayback.dispatchMessage(message); mTestLooper.dispatchAll(); assertThat(mActiveMediaSessionsPaused).isTrue(); } @Test public void handleSetStreamPath_otherDevice_InactiveSource_mediaSessionsNotPaused() { mHdmiCecLocalDevicePlayback.setActiveSource(ADDR_TV, 0x0000, "HdmiCecLocalDevicePlaybackTest"); mActiveMediaSessionsPaused = false; HdmiCecMessage message = HdmiCecMessageBuilder.buildSetStreamPath(ADDR_TV, 0x5000); mHdmiCecLocalDevicePlayback.dispatchMessage(message); mTestLooper.dispatchAll(); assertThat(mActiveMediaSessionsPaused).isFalse(); } @Test public void handleSetStreamPath_sameDevice_ActiveSource_mediaSessionsNotPaused() { mHdmiCecLocalDevicePlayback.setActiveSource(mPlaybackLogicalAddress, mPlaybackPhysicalAddress, "HdmiCecLocalDevicePlaybackTest"); mActiveMediaSessionsPaused = false; HdmiCecMessage message = HdmiCecMessageBuilder.buildSetStreamPath(ADDR_TV, mPlaybackPhysicalAddress); mHdmiCecLocalDevicePlayback.dispatchMessage(message); mTestLooper.dispatchAll(); assertThat(mActiveMediaSessionsPaused).isFalse(); } @Test public void handleSetStreamPath_sameDevice_InactiveSource_mediaSessionsNotPaused() { mHdmiCecLocalDevicePlayback.setActiveSource(ADDR_TV, 0x0000, "HdmiCecLocalDevicePlaybackTest"); mActiveMediaSessionsPaused = false; HdmiCecMessage message = HdmiCecMessageBuilder.buildSetStreamPath(ADDR_TV, mPlaybackPhysicalAddress); mHdmiCecLocalDevicePlayback.dispatchMessage(message); mTestLooper.dispatchAll(); assertThat(mActiveMediaSessionsPaused).isFalse(); } @Test public void oneTouchPlay_SendStandbyOnSleepToTv() { mHdmiCecLocalDevicePlayback.mService.getHdmiCecConfig().setStringValue( Loading