Loading services/core/java/com/android/server/hdmi/HdmiCecLocalDevicePlayback.java +6 −1 Original line number Diff line number Diff line Loading @@ -143,7 +143,12 @@ public class HdmiCecLocalDevicePlayback extends HdmiCecLocalDeviceSource { boolean mTvSendStandbyOnSleep = mService.getHdmiCecConfig().getIntValue( HdmiControlManager.CEC_SETTING_NAME_TV_SEND_STANDBY_ON_SLEEP) == HdmiControlManager.TV_SEND_STANDBY_ON_SLEEP_ENABLED; if (initiatedByCec || !mTvSendStandbyOnSleep || !wasActiveSource) { if (!wasActiveSource) { return; } if (initiatedByCec || !mTvSendStandbyOnSleep) { mService.sendCecCommand(HdmiCecMessageBuilder.buildInactiveSource(mAddress, mService.getPhysicalAddress())); return; } switch (standbyAction) { Loading services/tests/servicestests/src/com/android/server/hdmi/HdmiCecLocalDevicePlaybackTest.java +25 −0 Original line number Diff line number Diff line Loading @@ -830,6 +830,31 @@ public class HdmiCecLocalDevicePlaybackTest { assertThat(mNativeWrapper.getResultMessages()).contains(inactiveSource); } @Test public void handleOnStandby_CecMessageReceived() { mHdmiCecLocalDevicePlayback.mService.getHdmiCecConfig().setStringValue( HdmiControlManager.CEC_SETTING_NAME_POWER_CONTROL_MODE, HdmiControlManager.POWER_CONTROL_MODE_TV); mHdmiCecLocalDevicePlayback.setActiveSource(mPlaybackLogicalAddress, mPlaybackPhysicalAddress, "HdmiCecLocalDevicePlaybackTest"); mHdmiCecLocalDevicePlayback.mService.getHdmiCecConfig().setIntValue( HdmiControlManager.CEC_SETTING_NAME_TV_SEND_STANDBY_ON_SLEEP, HdmiControlManager.TV_SEND_STANDBY_ON_SLEEP_ENABLED); mHdmiCecLocalDevicePlayback.onStandby(true, HdmiControlService.STANDBY_SCREEN_OFF); mTestLooper.dispatchAll(); HdmiCecMessage standbyMessageToTv = HdmiCecMessageBuilder.buildStandby( mHdmiCecLocalDevicePlayback.mAddress, ADDR_TV); HdmiCecMessage standbyMessageBroadcast = HdmiCecMessageBuilder.buildStandby( mHdmiCecLocalDevicePlayback.mAddress, ADDR_BROADCAST); HdmiCecMessage inactiveSource = HdmiCecMessageBuilder.buildInactiveSource( mPlaybackLogicalAddress, mPlaybackPhysicalAddress); assertThat(mNativeWrapper.getResultMessages()).doesNotContain(standbyMessageToTv); assertThat(mNativeWrapper.getResultMessages()).doesNotContain(standbyMessageBroadcast); assertThat(mNativeWrapper.getResultMessages()).contains(inactiveSource); } @Test public void handleOnInitializeCecComplete_ByEnableCec() { mHdmiCecLocalDevicePlayback.onInitializeCecComplete( Loading Loading
services/core/java/com/android/server/hdmi/HdmiCecLocalDevicePlayback.java +6 −1 Original line number Diff line number Diff line Loading @@ -143,7 +143,12 @@ public class HdmiCecLocalDevicePlayback extends HdmiCecLocalDeviceSource { boolean mTvSendStandbyOnSleep = mService.getHdmiCecConfig().getIntValue( HdmiControlManager.CEC_SETTING_NAME_TV_SEND_STANDBY_ON_SLEEP) == HdmiControlManager.TV_SEND_STANDBY_ON_SLEEP_ENABLED; if (initiatedByCec || !mTvSendStandbyOnSleep || !wasActiveSource) { if (!wasActiveSource) { return; } if (initiatedByCec || !mTvSendStandbyOnSleep) { mService.sendCecCommand(HdmiCecMessageBuilder.buildInactiveSource(mAddress, mService.getPhysicalAddress())); return; } switch (standbyAction) { Loading
services/tests/servicestests/src/com/android/server/hdmi/HdmiCecLocalDevicePlaybackTest.java +25 −0 Original line number Diff line number Diff line Loading @@ -830,6 +830,31 @@ public class HdmiCecLocalDevicePlaybackTest { assertThat(mNativeWrapper.getResultMessages()).contains(inactiveSource); } @Test public void handleOnStandby_CecMessageReceived() { mHdmiCecLocalDevicePlayback.mService.getHdmiCecConfig().setStringValue( HdmiControlManager.CEC_SETTING_NAME_POWER_CONTROL_MODE, HdmiControlManager.POWER_CONTROL_MODE_TV); mHdmiCecLocalDevicePlayback.setActiveSource(mPlaybackLogicalAddress, mPlaybackPhysicalAddress, "HdmiCecLocalDevicePlaybackTest"); mHdmiCecLocalDevicePlayback.mService.getHdmiCecConfig().setIntValue( HdmiControlManager.CEC_SETTING_NAME_TV_SEND_STANDBY_ON_SLEEP, HdmiControlManager.TV_SEND_STANDBY_ON_SLEEP_ENABLED); mHdmiCecLocalDevicePlayback.onStandby(true, HdmiControlService.STANDBY_SCREEN_OFF); mTestLooper.dispatchAll(); HdmiCecMessage standbyMessageToTv = HdmiCecMessageBuilder.buildStandby( mHdmiCecLocalDevicePlayback.mAddress, ADDR_TV); HdmiCecMessage standbyMessageBroadcast = HdmiCecMessageBuilder.buildStandby( mHdmiCecLocalDevicePlayback.mAddress, ADDR_BROADCAST); HdmiCecMessage inactiveSource = HdmiCecMessageBuilder.buildInactiveSource( mPlaybackLogicalAddress, mPlaybackPhysicalAddress); assertThat(mNativeWrapper.getResultMessages()).doesNotContain(standbyMessageToTv); assertThat(mNativeWrapper.getResultMessages()).doesNotContain(standbyMessageBroadcast); assertThat(mNativeWrapper.getResultMessages()).contains(inactiveSource); } @Test public void handleOnInitializeCecComplete_ByEnableCec() { mHdmiCecLocalDevicePlayback.onInitializeCecComplete( Loading