diff --git a/services/core/java/com/android/server/hdmi/HdmiControlService.java b/services/core/java/com/android/server/hdmi/HdmiControlService.java index b9669c74a6dfa..87a908c10721a 100644 --- a/services/core/java/com/android/server/hdmi/HdmiControlService.java +++ b/services/core/java/com/android/server/hdmi/HdmiControlService.java @@ -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); diff --git a/services/tests/servicestests/src/com/android/server/hdmi/HdmiControlServiceTest.java b/services/tests/servicestests/src/com/android/server/hdmi/HdmiControlServiceTest.java index c34b8e19a41d1..ac44ccea21069 100644 --- a/services/tests/servicestests/src/com/android/server/hdmi/HdmiControlServiceTest.java +++ b/services/tests/servicestests/src/com/android/server/hdmi/HdmiControlServiceTest.java @@ -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);