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

Commit 9575e877 authored by Jay Patel's avatar Jay Patel Committed by Gerrit Code Review
Browse files

Merge "Remove pending actions when standby"

parents 6e55574e 55bc36d3
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) {