Loading services/core/java/com/android/server/hdmi/HdmiCecLocalDeviceSource.java +6 −2 Original line number Diff line number Diff line Loading @@ -139,8 +139,12 @@ abstract class HdmiCecLocalDeviceSource extends HdmiCecLocalDevice { @ServiceThreadOnly void toggleAndFollowTvPower() { assertRunOnServiceThread(); if (mService.getPowerManager().isInteractive()) { mService.pauseActiveMediaSessions(); } else { // Wake up Android framework to take over CEC control from the microprocessor. mService.wakeUp(); } mService.queryDisplayStatus(new IHdmiControlCallback.Stub() { @Override public void onComplete(int status) { Loading services/tests/servicestests/src/com/android/server/hdmi/HdmiCecLocalDevicePlaybackTest.java +28 −0 Original line number Diff line number Diff line Loading @@ -24,6 +24,8 @@ import static com.android.server.hdmi.HdmiControlService.INITIATED_BY_ENABLE_CEC import static com.google.common.truth.Truth.assertThat; import static org.mockito.Mockito.when; import android.content.Context; import android.hardware.hdmi.HdmiControlManager; import android.hardware.hdmi.HdmiDeviceInfo; Loading @@ -34,6 +36,7 @@ import android.os.IPowerManager; import android.os.IThermalService; import android.os.Looper; import android.os.PowerManager; import android.os.RemoteException; import android.os.test.TestLooper; import android.platform.test.annotations.Presubmit; import android.sysprop.HdmiProperties; Loading Loading @@ -1551,6 +1554,31 @@ public class HdmiCecLocalDevicePlaybackTest { assertThat(mStandby).isFalse(); } @Test public void toggleAndFollowTvPower_isInteractive() throws RemoteException { when(mIPowerManagerMock.isInteractive()).thenReturn(true); mActiveMediaSessionsPaused = false; mWokenUp = false; mHdmiControlService.toggleAndFollowTvPower(); assertThat(mActiveMediaSessionsPaused).isTrue(); assertThat(mWokenUp).isFalse(); } @Test public void toggleAndFollowTvPower_isNotInteractive() throws RemoteException { when(mIPowerManagerMock.isInteractive()).thenReturn(false); mActiveMediaSessionsPaused = false; mWokenUp = false; mHdmiControlService.toggleAndFollowTvPower(); assertThat(mActiveMediaSessionsPaused).isFalse(); assertThat(mWokenUp).isTrue(); } @Test public void shouldHandleTvPowerKey_CecDisabled() { mHdmiCecLocalDevicePlayback.mService.getHdmiCecConfig().setIntValue( Loading Loading
services/core/java/com/android/server/hdmi/HdmiCecLocalDeviceSource.java +6 −2 Original line number Diff line number Diff line Loading @@ -139,8 +139,12 @@ abstract class HdmiCecLocalDeviceSource extends HdmiCecLocalDevice { @ServiceThreadOnly void toggleAndFollowTvPower() { assertRunOnServiceThread(); if (mService.getPowerManager().isInteractive()) { mService.pauseActiveMediaSessions(); } else { // Wake up Android framework to take over CEC control from the microprocessor. mService.wakeUp(); } mService.queryDisplayStatus(new IHdmiControlCallback.Stub() { @Override public void onComplete(int status) { Loading
services/tests/servicestests/src/com/android/server/hdmi/HdmiCecLocalDevicePlaybackTest.java +28 −0 Original line number Diff line number Diff line Loading @@ -24,6 +24,8 @@ import static com.android.server.hdmi.HdmiControlService.INITIATED_BY_ENABLE_CEC import static com.google.common.truth.Truth.assertThat; import static org.mockito.Mockito.when; import android.content.Context; import android.hardware.hdmi.HdmiControlManager; import android.hardware.hdmi.HdmiDeviceInfo; Loading @@ -34,6 +36,7 @@ import android.os.IPowerManager; import android.os.IThermalService; import android.os.Looper; import android.os.PowerManager; import android.os.RemoteException; import android.os.test.TestLooper; import android.platform.test.annotations.Presubmit; import android.sysprop.HdmiProperties; Loading Loading @@ -1551,6 +1554,31 @@ public class HdmiCecLocalDevicePlaybackTest { assertThat(mStandby).isFalse(); } @Test public void toggleAndFollowTvPower_isInteractive() throws RemoteException { when(mIPowerManagerMock.isInteractive()).thenReturn(true); mActiveMediaSessionsPaused = false; mWokenUp = false; mHdmiControlService.toggleAndFollowTvPower(); assertThat(mActiveMediaSessionsPaused).isTrue(); assertThat(mWokenUp).isFalse(); } @Test public void toggleAndFollowTvPower_isNotInteractive() throws RemoteException { when(mIPowerManagerMock.isInteractive()).thenReturn(false); mActiveMediaSessionsPaused = false; mWokenUp = false; mHdmiControlService.toggleAndFollowTvPower(); assertThat(mActiveMediaSessionsPaused).isFalse(); assertThat(mWokenUp).isTrue(); } @Test public void shouldHandleTvPowerKey_CecDisabled() { mHdmiCecLocalDevicePlayback.mService.getHdmiCecConfig().setIntValue( Loading