diff --git a/services/core/java/com/android/server/hdmi/HdmiCecLocalDevicePlayback.java b/services/core/java/com/android/server/hdmi/HdmiCecLocalDevicePlayback.java index 919d25cc5cf3e..10f6948f8782a 100644 --- a/services/core/java/com/android/server/hdmi/HdmiCecLocalDevicePlayback.java +++ b/services/core/java/com/android/server/hdmi/HdmiCecLocalDevicePlayback.java @@ -258,6 +258,18 @@ public class HdmiCecLocalDevicePlayback extends HdmiCecLocalDeviceSource { return super.handleUserControlPressed(message); } + @Override + protected void wakeUpIfActiveSource() { + if (!isActiveSource()) { + return; + } + // Wake up the device if the power is in standby mode, or its screen is off - + // which can happen if the device is holding a partial lock. + if (mService.isPowerStandbyOrTransient() || !mService.getPowerManager().isScreenOn()) { + mService.wakeUp(); + } + } + @ServiceThreadOnly @Constants.HandleMessageResult protected int handleSetMenuLanguage(HdmiCecMessage message) { diff --git a/services/core/java/com/android/server/hdmi/HdmiCecLocalDeviceSource.java b/services/core/java/com/android/server/hdmi/HdmiCecLocalDeviceSource.java index c001c4003f342..f89594f3288fb 100644 --- a/services/core/java/com/android/server/hdmi/HdmiCecLocalDeviceSource.java +++ b/services/core/java/com/android/server/hdmi/HdmiCecLocalDeviceSource.java @@ -371,7 +371,7 @@ abstract class HdmiCecLocalDeviceSource extends HdmiCecLocalDevice { if (!isActiveSource()) { return; } - // Wake up the device. This will also exit dream mode. + // Wake up the device mService.wakeUp(); return; }