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

Commit 8142ddd6 authored by Michal Olech's avatar Michal Olech
Browse files

[CEC Configuration] Use listeners from the HdmiCecConfig instead of Global Settings

Bug: 172905515
Test: smoke
Change-Id: I12917f3ac27fd6c08e9dd74484b1a575d3910b28
parent ecf20a85
Loading
Loading
Loading
Loading
+21 −10
Original line number Diff line number Diff line
@@ -468,7 +468,9 @@ public class HdmiControlService extends SystemService {

        mPowerStatusController.setPowerStatus(getInitialPowerStatus());
        mProhibitMode = false;
        mHdmiControlEnabled = readBooleanSetting(Global.HDMI_CONTROL_ENABLED, true);
        mHdmiControlEnabled = mHdmiCecConfig.getIntValue(
                                HdmiControlManager.CEC_SETTING_NAME_HDMI_CEC_ENABLED)
                                    == HdmiControlManager.HDMI_CEC_CONTROL_ENABLED;
        mHdmiCecVolumeControlEnabled = readBooleanSetting(
                Global.HDMI_CONTROL_VOLUME_CONTROL_ENABLED, true);
        mMhlInputChangeEnabled = readBooleanSetting(Global.MHL_INPUT_SWITCHING_ENABLED, true);
@@ -498,7 +500,24 @@ public class HdmiControlService extends SystemService {
        if (mMessageValidator == null) {
            mMessageValidator = new HdmiCecMessageValidator(this);
        }
        mHdmiCecConfig.registerGlobalSettingsObserver(mIoLooper);
        mHdmiCecConfig.registerGlobalSettingsObserver(mHandler.getLooper());
        mHdmiCecConfig.registerChangeListener(HdmiControlManager.CEC_SETTING_NAME_HDMI_CEC_ENABLED,
                new HdmiCecConfig.SettingChangeListener() {
                    @Override
                    public void onChange(String setting) {
                        boolean enabled = mHdmiCecConfig.getIntValue(
                                HdmiControlManager.CEC_SETTING_NAME_HDMI_CEC_ENABLED)
                                    == HdmiControlManager.HDMI_CEC_CONTROL_ENABLED;
                        setControlEnabled(enabled);
                    }
                });
        mHdmiCecConfig.registerChangeListener(HdmiControlManager.CEC_SETTING_NAME_HDMI_CEC_VERSION,
                new HdmiCecConfig.SettingChangeListener() {
                    @Override
                    public void onChange(String setting) {
                        initializeCec(INITIATED_BY_ENABLE_CEC);
                    }
                });
    }

    private void bootCompleted() {
@@ -623,9 +642,7 @@ public class HdmiControlService extends SystemService {
    private void registerContentObserver() {
        ContentResolver resolver = getContext().getContentResolver();
        String[] settings = new String[] {
                Global.HDMI_CONTROL_ENABLED,
                Global.HDMI_CONTROL_VOLUME_CONTROL_ENABLED,
                Global.HDMI_CEC_VERSION,
                Global.HDMI_CONTROL_AUTO_WAKEUP_ENABLED,
                Global.HDMI_CONTROL_AUTO_DEVICE_OFF_ENABLED,
                Global.HDMI_SYSTEM_AUDIO_CONTROL_ENABLED,
@@ -651,12 +668,6 @@ public class HdmiControlService extends SystemService {
            String option = uri.getLastPathSegment();
            boolean enabled = readBooleanSetting(option, true);
            switch (option) {
                case Global.HDMI_CONTROL_ENABLED:
                    setControlEnabled(enabled);
                    break;
                case Global.HDMI_CEC_VERSION:
                    initializeCec(INITIATED_BY_ENABLE_CEC);
                    break;
                case Global.HDMI_CONTROL_VOLUME_CONTROL_ENABLED:
                    setHdmiCecVolumeControlEnabledInternal(enabled);
                    break;
+9 −0
Original line number Diff line number Diff line
@@ -59,6 +59,15 @@ final class FakeHdmiCecConfig extends HdmiCecConfig {
                    + "    </allowed-values>"
                    + "    <default-value string-value=\"none\" />"
                    + "  </setting>"
                    + "  <setting name=\"hdmi_cec_enabled\""
                    + "           value-type=\"int\""
                    + "           user-configurable=\"true\">"
                    + "    <allowed-values>"
                    + "      <value int-value=\"0\" />"
                    + "      <value int-value=\"1\" />"
                    + "    </allowed-values>"
                    + "    <default-value int-value=\"1\" />"
                    + "  </setting>"
                    + "  <setting name=\"hdmi_cec_version\""
                    + "           value-type=\"int\""
                    + "           user-configurable=\"true\">"