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

Bug: 172905515
Test: smoke
Change-Id: I12917f3ac27fd6c08e9dd74484b1a575d3910b28
This commit is contained in:
Michal Olech
2020-11-30 11:55:20 +01:00
parent ecf20a8565
commit 8142ddd64d
2 changed files with 30 additions and 10 deletions

View File

@@ -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;

View File

@@ -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\">"