From c5093cfb71ececda4eaa1cd3771f5661b09336ed Mon Sep 17 00:00:00 2001 From: "daren.liao" Date: Tue, 20 Jul 2021 15:11:53 +0800 Subject: [PATCH] Fix SystemAudioAutoInitiationAction not started [Description] revert part of solution in 55bc36d33c284f50190641792ac90a26c8d8e0ed On Android R, TV's power status is TRANSIENT_TO_STANDBY by default, in this case, device information related actions should be started as well, that's why we allow SystemAudioAutoInitiationAction and NewDeviceAction to be started When TV boot up, SystemAudioAutoInitiationAction is not started if power statusof HdmiControlService is not ON This happens if onNewAvrAdded is called before SystemService.PHASE_BOOT_COMPLETED Bug: 194429425 Test: Build PASS Boot with ARC device plugged PASS Change-Id: I79cd1d4f5a180a052be49df186505e579f7d1339 --- .../server/hdmi/HdmiCecLocalDeviceTv.java | 20 ++++++++----------- 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/services/core/java/com/android/server/hdmi/HdmiCecLocalDeviceTv.java b/services/core/java/com/android/server/hdmi/HdmiCecLocalDeviceTv.java index 8bb5204ee0834..66227d384f3c3 100644 --- a/services/core/java/com/android/server/hdmi/HdmiCecLocalDeviceTv.java +++ b/services/core/java/com/android/server/hdmi/HdmiCecLocalDeviceTv.java @@ -619,10 +619,8 @@ final class HdmiCecLocalDeviceTv extends HdmiCecLocalDevice { } } - if (!mService.isPowerStandbyOrTransient()) { - addAndStartAction(new NewDeviceAction(this, activeSource.logicalAddress, - activeSource.physicalAddress, deviceType)); - } + addAndStartAction(new NewDeviceAction(this, activeSource.logicalAddress, + activeSource.physicalAddress, deviceType)); } private boolean handleNewDeviceAtTheTailOfActivePath(int path) { @@ -798,14 +796,12 @@ final class HdmiCecLocalDeviceTv extends HdmiCecLocalDevice { @ServiceThreadOnly void onNewAvrAdded(HdmiDeviceInfo avr) { assertRunOnServiceThread(); - if (!mService.isPowerStandbyOrTransient()) { - addAndStartAction(new SystemAudioAutoInitiationAction(this, avr.getLogicalAddress())); - if (!isDirectConnectAddress(avr.getPhysicalAddress())) { - startArcAction(false); - } else if (isConnected(avr.getPortId()) && isArcFeatureEnabled(avr.getPortId()) - && !hasAction(SetArcTransmissionStateAction.class)) { - startArcAction(true); - } + addAndStartAction(new SystemAudioAutoInitiationAction(this, avr.getLogicalAddress())); + if (!isDirectConnectAddress(avr.getPhysicalAddress())) { + startArcAction(false); + } else if (isConnected(avr.getPortId()) && isArcFeatureEnabled(avr.getPortId()) + && !hasAction(SetArcTransmissionStateAction.class)) { + startArcAction(true); } }