Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ce155616 authored by Jay Patel's avatar Jay Patel Committed by Automerger Merge Worker
Browse files

Merge "Remove pending actions when standby" am: 9575e877

Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1317235

Change-Id: I25e03c823b1b1d870547b4f226b3d63262b198b4
parents 9f90086a 9575e877
Loading
Loading
Loading
Loading
+20 −7
Original line number Diff line number Diff line
@@ -619,9 +619,11 @@ final class HdmiCecLocalDeviceTv extends HdmiCecLocalDevice {
            }
        }

        if (!mService.isPowerStandbyOrTransient()) {
            addAndStartAction(new NewDeviceAction(this, activeSource.logicalAddress,
                    activeSource.physicalAddress, deviceType));
        }
    }

    private boolean handleNewDeviceAtTheTailOfActivePath(int path) {
        // Seq #22
@@ -796,12 +798,14 @@ final class HdmiCecLocalDeviceTv extends HdmiCecLocalDevice {
    @ServiceThreadOnly
    void onNewAvrAdded(HdmiDeviceInfo avr) {
        assertRunOnServiceThread();
        if (!mService.isPowerStandbyOrTransient()) {
            addAndStartAction(new SystemAudioAutoInitiationAction(this, avr.getLogicalAddress()));
            if (isConnected(avr.getPortId()) && isArcFeatureEnabled(avr.getPortId())
                    && !hasAction(SetArcTransmissionStateAction.class)) {
                startArcAction(true);
            }
        }
    }

    // Clear all device info.
    @ServiceThreadOnly
@@ -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) {