From bd3deee37b6b94f6beafc0c32b7f2a92afeb0bd8 Mon Sep 17 00:00:00 2001 From: Jinsuk Kim Date: Tue, 24 Mar 2015 16:55:01 +0900 Subject: [PATCH] CEC: Explicitly turn on screen for remote control passthrough Ensures that the playback device turns on display output signal upon receiving CEC command . Bug: 19518981 Change-Id: I4f898380c9ffc071da2357a51e61309ae5d233f5 (cherry picked from commit 9b8507c52ae845c8eed9fd9952bf66538934b8fd) --- .../server/hdmi/HdmiCecLocalDevicePlayback.java | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/services/core/java/com/android/server/hdmi/HdmiCecLocalDevicePlayback.java b/services/core/java/com/android/server/hdmi/HdmiCecLocalDevicePlayback.java index a8f6954405c33..8034809064f44 100644 --- a/services/core/java/com/android/server/hdmi/HdmiCecLocalDevicePlayback.java +++ b/services/core/java/com/android/server/hdmi/HdmiCecLocalDevicePlayback.java @@ -179,6 +179,13 @@ final class HdmiCecLocalDevicePlayback extends HdmiCecLocalDevice { } } + @ServiceThreadOnly + protected boolean handleUserControlPressed(HdmiCecMessage message) { + assertRunOnServiceThread(); + wakeUpIfActiveSource(); + return super.handleUserControlPressed(message); + } + @Override @ServiceThreadOnly protected boolean handleSetStreamPath(HdmiCecMessage message) { @@ -216,7 +223,12 @@ final class HdmiCecLocalDevicePlayback extends HdmiCecLocalDevice { } private void wakeUpIfActiveSource() { - if (mIsActiveSource && mService.isPowerStandbyOrTransient()) { + if (!mIsActiveSource) { + 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(); } }