summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJinsuk Kim <jinsukkim@google.com>2015-03-24 16:55:01 +0900
committerThe Android Automerger <android-build@google.com>2015-03-27 15:02:03 -0700
commit32dcf5684c2754ff392693daa81e55f3ca6a1ff9 (patch)
tree823361856d65c20ec947b5ae8327b5a76bc4c5be
parentb298ba3fa8434c20de557a5ababbfac63625b897 (diff)
downloadbase-32dcf5684c2754ff392693daa81e55f3ca6a1ff9.tar.gz
CEC: Explicitly turn on screen for remote control passthrough
Ensures that the playback device turns on display output signal upon receiving CEC command <User Control Pressed>. Bug: 19518981 Change-Id: I4f898380c9ffc071da2357a51e61309ae5d233f5 (cherry picked from commit 9b8507c52ae845c8eed9fd9952bf66538934b8fd)
-rw-r--r--services/core/java/com/android/server/hdmi/HdmiCecLocalDevicePlayback.java14
1 files changed, 13 insertions, 1 deletions
diff --git a/services/core/java/com/android/server/hdmi/HdmiCecLocalDevicePlayback.java b/services/core/java/com/android/server/hdmi/HdmiCecLocalDevicePlayback.java
index a8f6954405c3..8034809064f4 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();
}
}