summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Jay Patel <pateljay@google.com> 2021-03-25 16:29:30 +0000
committer Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> 2021-03-25 16:29:30 +0000
commit099fc4dbbb110eda34adfc8e4ec7ffa0e219b45a (patch)
treef6d09c2e3ef968b16c6b56dda0f172484fe4945e
parent0019fda9c44d838e6b883473b06f689d7e251041 (diff)
parent9896cb3eaf50561ba54eb428149a9dc31a3eb6fb (diff)
Merge "Remove pending actions when standby" am: 9575e87746 am: ce15561657 am: 9896cb3eaf
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1317235 Change-Id: Ia551711180c2896ee3f6ec0128ed67ccb2f9e51b
-rw-r--r--services/core/java/com/android/server/hdmi/HdmiCecLocalDeviceTv.java27
1 files changed, 20 insertions, 7 deletions
diff --git a/services/core/java/com/android/server/hdmi/HdmiCecLocalDeviceTv.java b/services/core/java/com/android/server/hdmi/HdmiCecLocalDeviceTv.java
index cd66a8fc7f01..03fb3a4b98be 100644
--- a/services/core/java/com/android/server/hdmi/HdmiCecLocalDeviceTv.java
+++ b/services/core/java/com/android/server/hdmi/HdmiCecLocalDeviceTv.java
@@ -556,8 +556,10 @@ final class HdmiCecLocalDeviceTv extends HdmiCecLocalDevice {
}
}
- addAndStartAction(new NewDeviceAction(this, activeSource.logicalAddress,
- activeSource.physicalAddress, deviceType));
+ if (!mService.isPowerStandbyOrTransient()) {
+ addAndStartAction(new NewDeviceAction(this, activeSource.logicalAddress,
+ activeSource.physicalAddress, deviceType));
+ }
}
private boolean handleNewDeviceAtTheTailOfActivePath(int path) {
@@ -709,10 +711,12 @@ final class HdmiCecLocalDeviceTv extends HdmiCecLocalDevice {
@ServiceThreadOnly
void onNewAvrAdded(HdmiDeviceInfo avr) {
assertRunOnServiceThread();
- addAndStartAction(new SystemAudioAutoInitiationAction(this, avr.getLogicalAddress()));
- if (isConnected(avr.getPortId()) && isArcFeatureEnabled(avr.getPortId())
- && !hasAction(SetArcTransmissionStateAction.class)) {
- startArcAction(true);
+ if (!mService.isPowerStandbyOrTransient()) {
+ addAndStartAction(new SystemAudioAutoInitiationAction(this, avr.getLogicalAddress()));
+ if (isConnected(avr.getPortId()) && isArcFeatureEnabled(avr.getPortId())
+ && !hasAction(SetArcTransmissionStateAction.class)) {
+ startArcAction(true);
+ }
}
}
@@ -1263,6 +1267,7 @@ final class HdmiCecLocalDeviceTv extends HdmiCecLocalDevice {
// Remove recording actions.
removeAction(OneTouchRecordAction.class);
removeAction(TimerRecordingAction.class);
+ removeAction(NewDeviceAction.class);
disableSystemAudioIfExist();
disableArcIfExist();
@@ -1303,12 +1308,20 @@ final class HdmiCecLocalDeviceTv extends HdmiCecLocalDevice {
setArcStatus(false);
// Seq #44.
- removeAction(RequestArcInitiationAction.class);
+ removeAllRunningArcAction();
if (!hasAction(RequestArcTerminationAction.class) && isArcEstablished()) {
addAndStartAction(new RequestArcTerminationAction(this, avr.getLogicalAddress()));
}
}
+ @ServiceThreadOnly
+ private void removeAllRunningArcAction() {
+ // Running or pending actions make TV fail to broadcast <Standby> to connected devices
+ removeAction(RequestArcTerminationAction.class);
+ removeAction(RequestArcInitiationAction.class);
+ removeAction(SetArcTransmissionStateAction.class);
+ }
+
@Override
@ServiceThreadOnly
protected void onStandby(boolean initiatedByCec, int standbyAction) {