Merge "Remove pending actions when standby"
This commit is contained in:
@@ -619,8 +619,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) {
|
||||
@@ -796,10 +798,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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1656,6 +1660,7 @@ final class HdmiCecLocalDeviceTv extends HdmiCecLocalDevice {
|
||||
// Remove recording actions.
|
||||
removeAction(OneTouchRecordAction.class);
|
||||
removeAction(TimerRecordingAction.class);
|
||||
removeAction(NewDeviceAction.class);
|
||||
|
||||
disableSystemAudioIfExist();
|
||||
disableArcIfExist();
|
||||
@@ -1696,12 +1701,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) {
|
||||
|
||||
Reference in New Issue
Block a user