From cae6627702a3bae3121f0ebbb9c8069e77f81cc7 Mon Sep 17 00:00:00 2001 From: Jinsuk Kim Date: Fri, 4 Jul 2014 13:26:44 +0900 Subject: [PATCH] Obtain TV power status correctly in HdmiControlService Bug: 15845654 Change-Id: I28b97e7ecb462b4fbaf6ac573e4d0fc9fcf724da --- .../android/server/hdmi/HdmiCecLocalDeviceTv.java | 4 ++++ .../android/server/hdmi/RoutingControlAction.java | 13 +++++-------- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/services/core/java/com/android/server/hdmi/HdmiCecLocalDeviceTv.java b/services/core/java/com/android/server/hdmi/HdmiCecLocalDeviceTv.java index 810e6707add93..1b88aea0d3c27 100644 --- a/services/core/java/com/android/server/hdmi/HdmiCecLocalDeviceTv.java +++ b/services/core/java/com/android/server/hdmi/HdmiCecLocalDeviceTv.java @@ -215,6 +215,10 @@ final class HdmiCecLocalDeviceTv extends HdmiCecLocalDevice { addAndStartAction(new RoutingControlAction(this, newPath, false, callback)); } + int getPowerStatus() { + return mService.getPowerStatus(); + } + /** * Sends key to a target CEC device. * diff --git a/services/core/java/com/android/server/hdmi/RoutingControlAction.java b/services/core/java/com/android/server/hdmi/RoutingControlAction.java index 5f3c6549e1db1..04e5cac403cec 100644 --- a/services/core/java/com/android/server/hdmi/RoutingControlAction.java +++ b/services/core/java/com/android/server/hdmi/RoutingControlAction.java @@ -108,9 +108,8 @@ final class RoutingControlAction extends FeatureAction { } private void handleReportPowerStatus(int devicePowerStatus) { - int tvPowerStatus = getTvPowerStatus(); - if (isPowerStatusOnOrTransientToOn(tvPowerStatus)) { - if (isPowerStatusOnOrTransientToOn(devicePowerStatus)) { + if (isPowerOnOrTransient(getTvPowerStatus())) { + if (isPowerOnOrTransient(devicePowerStatus)) { sendSetStreamPath(); } else { tv().updateActivePortId(tv().pathToPortId(mCurrentRoutingPath)); @@ -121,11 +120,10 @@ final class RoutingControlAction extends FeatureAction { } private int getTvPowerStatus() { - // TODO: Obtain TV power status. - return HdmiCec.POWER_STATUS_ON; + return tv().getPowerStatus(); } - private static boolean isPowerStatusOnOrTransientToOn(int status) { + private static boolean isPowerOnOrTransient(int status) { return status == HdmiCec.POWER_STATUS_ON || status == HdmiCec.POWER_STATUS_TRANSIENT_TO_ON; } @@ -156,8 +154,7 @@ final class RoutingControlAction extends FeatureAction { } return; case STATE_WAIT_FOR_REPORT_POWER_STATUS: - int tvPowerStatus = getTvPowerStatus(); - if (isPowerStatusOnOrTransientToOn(tvPowerStatus)) { + if (isPowerOnOrTransient(getTvPowerStatus())) { tv().updateActivePortId(tv().pathToPortId(mCurrentRoutingPath)); sendSetStreamPath(); }