summaryrefslogtreecommitdiffstats
path: root/services
diff options
context:
space:
mode:
authorJinsuk Kim <jinsukkim@google.com>2015-04-21 21:12:29 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2015-04-21 21:12:31 +0000
commit34ea2cc278877da7c07cdb68a21be9d76122c158 (patch)
treeffa37f55bd8c6e3a9916089658ca74f942e976a3 /services
parentfe7cca3d27a6a7c202ba5efa9695d6b575ca2a28 (diff)
parent7e4b480a0bf9f93a428f7c46bfea77ebfdb92d40 (diff)
downloadframeworks_base-34ea2cc278877da7c07cdb68a21be9d76122c158.zip
frameworks_base-34ea2cc278877da7c07cdb68a21be9d76122c158.tar.gz
frameworks_base-34ea2cc278877da7c07cdb68a21be9d76122c158.tar.bz2
Merge "CEC: Prevent premature standby process completion"
Diffstat (limited to 'services')
-rw-r--r--services/core/java/com/android/server/hdmi/HdmiCecLocalDevice.java10
-rw-r--r--services/core/java/com/android/server/hdmi/HdmiCecLocalDeviceTv.java12
2 files changed, 14 insertions, 8 deletions
diff --git a/services/core/java/com/android/server/hdmi/HdmiCecLocalDevice.java b/services/core/java/com/android/server/hdmi/HdmiCecLocalDevice.java
index b24bc65..8031c05 100644
--- a/services/core/java/com/android/server/hdmi/HdmiCecLocalDevice.java
+++ b/services/core/java/com/android/server/hdmi/HdmiCecLocalDevice.java
@@ -176,6 +176,7 @@ abstract class HdmiCecLocalDevice {
void init() {
assertRunOnServiceThread();
mPreferredAddress = getPreferredAddress();
+ mPendingActionClearedCallback = null;
}
/**
@@ -837,16 +838,16 @@ abstract class HdmiCecLocalDevice {
*
* @param initiatedByCec true if this sequence is initiated
* by the reception the CEC messages like &lt;Standby&gt;
- * @param origialCallback callback interface to get notified when all pending actions are
+ * @param originalCallback callback interface to get notified when all pending actions are
* cleared
*/
protected void disableDevice(boolean initiatedByCec,
- final PendingActionClearedCallback origialCallback) {
+ final PendingActionClearedCallback originalCallback) {
mPendingActionClearedCallback = new PendingActionClearedCallback() {
@Override
public void onCleared(HdmiCecLocalDevice device) {
mHandler.removeMessages(MSG_DISABLE_DEVICE_TIMEOUT);
- origialCallback.onCleared(device);
+ originalCallback.onCleared(device);
}
};
mHandler.sendMessageDelayed(Message.obtain(mHandler, MSG_DISABLE_DEVICE_TIMEOUT),
@@ -865,6 +866,9 @@ abstract class HdmiCecLocalDevice {
action.finish(false);
iter.remove();
}
+ if (mPendingActionClearedCallback != null) {
+ mPendingActionClearedCallback.onCleared(this);
+ }
}
/**
diff --git a/services/core/java/com/android/server/hdmi/HdmiCecLocalDeviceTv.java b/services/core/java/com/android/server/hdmi/HdmiCecLocalDeviceTv.java
index 94f8dee..c4f410f 100644
--- a/services/core/java/com/android/server/hdmi/HdmiCecLocalDeviceTv.java
+++ b/services/core/java/com/android/server/hdmi/HdmiCecLocalDeviceTv.java
@@ -1109,11 +1109,13 @@ final class HdmiCecLocalDeviceTv extends HdmiCecLocalDevice {
@ServiceThreadOnly
protected boolean handleTerminateArc(HdmiCecMessage message) {
assertRunOnServiceThread();
- // In cast of termination, do not check ARC configuration in that AVR device
- // might be removed already.
-
- // In case where <Terminate Arc> is started by <Request ARC Termination>
- // need to clean up RequestArcInitiationAction.
+ if (mService .isPowerStandbyOrTransient()) {
+ setArcStatus(false);
+ return true;
+ }
+ // Do not check ARC configuration since the AVR might have been already removed.
+ // Clean up RequestArcTerminationAction in case <Terminate Arc> was started by
+ // <Request ARC Termination>.
removeAction(RequestArcTerminationAction.class);
SetArcTransmissionStateAction action = new SetArcTransmissionStateAction(this,
message.getSource(), false);