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

Commit 6896a532 authored by Marvin Ramin's avatar Marvin Ramin
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 ccd0d1e0
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -3142,7 +3142,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
@@ -263,6 +263,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);