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

Commit c2474635 authored by Marvin Ramin's avatar Marvin Ramin Committed by Aaron Kling
Browse files

CEC: Prevent overwriting volume control Settings

Prevent overwriting CEC volume control Settings value when disabling CEC
globally.

This prevents an issue where disabling and re-enabling CEC will leave
volume control disabled, as the Settings value gets set to false when
disabling CEC.

Bug: 158307190
Test: atest HdmiControlService
Change-Id: I34d24185f284dfb89c02f39a3c456045d1ddd227
parent c5bf1dde
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -3023,7 +3023,7 @@ public class HdmiControlService extends SystemService {
            return;
        }

        setHdmiCecVolumeControlEnabled(false);
        mHdmiCecVolumeControlEnabled = false;
        // Call the vendor handler before the service is disabled.
        invokeVendorCommandListenersOnControlStateChanged(false,
                HdmiControlManager.CONTROL_STATE_CHANGED_REASON_SETTING);
+13 −0
Original line number Diff line number Diff line
@@ -260,6 +260,19 @@ public class HdmiControlServiceTest {
        assertThat(mHdmiControlService.isHdmiCecVolumeControlEnabled()).isTrue();
    }

    @Test
    public void disableAndReenableCec_volumeControlReturnsToOriginalValue() {
        boolean volumeControlEnabled = true;
        mHdmiControlService.setHdmiCecVolumeControlEnabled(volumeControlEnabled);

        mHdmiControlService.setControlEnabled(false);
        assertThat(mHdmiControlService.isHdmiCecVolumeControlEnabled()).isFalse();

        mHdmiControlService.setControlEnabled(true);
        assertThat(mHdmiControlService.isHdmiCecVolumeControlEnabled()).isEqualTo(
                volumeControlEnabled);
    }

    @Test
    public void addHdmiCecVolumeControlFeatureListener_emitsCurrentState_enabled() {
        mHdmiControlService.setHdmiCecVolumeControlEnabled(true);