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

Commit c2ef1a13 authored by Treehugger Robot's avatar Treehugger Robot Committed by Android (Google) Code Review
Browse files

Merge "HDMI: Avoid starting SystemAudioInitiationActionFromAvr multiple times" into main

parents ef666780 c6df8e0d
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -317,6 +317,10 @@ public class HdmiCecLocalDeviceAudioSystem extends HdmiCecLocalDeviceSource {
        if ((systemAudioOnPowerOnProp == ALWAYS_SYSTEM_AUDIO_CONTROL_ON_POWER_ON)
                || ((systemAudioOnPowerOnProp == USE_LAST_STATE_SYSTEM_AUDIO_CONTROL_ON_POWER_ON)
                && lastSystemAudioControlStatus && isSystemAudioControlFeatureEnabled())) {
            if (hasAction(SystemAudioInitiationActionFromAvr.class)) {
                Slog.i(TAG, "SystemAudioInitiationActionFromAvr is in progress. Restarting.");
                removeAction(SystemAudioInitiationActionFromAvr.class);
            }
            addAndStartAction(new SystemAudioInitiationActionFromAvr(this));
        }
    }
@@ -1032,6 +1036,10 @@ public class HdmiCecLocalDeviceAudioSystem extends HdmiCecLocalDeviceSource {
    void onSystemAudioControlFeatureSupportChanged(boolean enabled) {
        setSystemAudioControlFeatureEnabled(enabled);
        if (enabled) {
            if (hasAction(SystemAudioInitiationActionFromAvr.class)) {
                Slog.i(TAG, "SystemAudioInitiationActionFromAvr is in progress. Restarting.");
                removeAction(SystemAudioInitiationActionFromAvr.class);
            }
            addAndStartAction(new SystemAudioInitiationActionFromAvr(this));
        }
    }
+24 −0
Original line number Diff line number Diff line
@@ -363,6 +363,30 @@ public class HdmiCecLocalDeviceAudioSystemTest {
            .isNotEmpty();
    }

    @Test
    public void systemAudioControlOnPowerOn_singleActionStarted() throws Exception {
        mHdmiCecLocalDeviceAudioSystem.removeAction(SystemAudioInitiationActionFromAvr.class);
        mHdmiCecLocalDeviceAudioSystem.systemAudioControlOnPowerOn(
                Constants.ALWAYS_SYSTEM_AUDIO_CONTROL_ON_POWER_ON, true);
        mHdmiCecLocalDeviceAudioSystem.systemAudioControlOnPowerOn(
                Constants.ALWAYS_SYSTEM_AUDIO_CONTROL_ON_POWER_ON, true);
        assertThat(
                mHdmiCecLocalDeviceAudioSystem.getActions(
                        SystemAudioInitiationActionFromAvr.class))
                .hasSize(1);
    }

    @Test
    public void onSystemAudioControlFeatureSupportChanged_singleActionStarted() throws Exception {
        mHdmiCecLocalDeviceAudioSystem.removeAction(SystemAudioInitiationActionFromAvr.class);
        mHdmiCecLocalDeviceAudioSystem.onSystemAudioControlFeatureSupportChanged(true);
        mHdmiCecLocalDeviceAudioSystem.onSystemAudioControlFeatureSupportChanged(true);
        assertThat(
                mHdmiCecLocalDeviceAudioSystem.getActions(
                        SystemAudioInitiationActionFromAvr.class))
                .hasSize(1);
    }

    @Test
    public void handleActiveSource_updateActiveSource() throws Exception {
        HdmiCecMessage message = HdmiCecMessageBuilder.buildActiveSource(ADDR_TV, 0x0000);