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

Commit f83bc67d authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Make RRO defaults forward compatible"

parents 0f29c840 7ae2d163
Loading
Loading
Loading
Loading
+14 −6
Original line number Diff line number Diff line
@@ -29,6 +29,7 @@ import android.os.Environment;
import android.os.SystemProperties;
import android.provider.Settings.Global;
import android.util.ArrayMap;
import android.util.Slog;

import com.android.internal.R;
import com.android.internal.annotations.GuardedBy;
@@ -246,9 +247,11 @@ public class HdmiCecConfig {
                mAllowedValues.add(value);
                if (mContext.getResources().getBoolean(defaultResId)) {
                    if (mDefaultValue != null) {
                        throw new VerificationException("Invalid CEC setup for '"
                            + this.getName() + "' setting. "
                            + "Setting already has a default value.");
                        Slog.e(TAG,
                                "Failed to set '" + value + "' as a default for '" + this.getName()
                                        + "': Setting already has a default ('" + mDefaultValue
                                        + "').");
                        return;
                    }
                    mDefaultValue = value;
                }
@@ -277,6 +280,11 @@ public class HdmiCecConfig {
        mContext = context;
        mStorageAdapter = storageAdapter;

        // IMPORTANT: when adding a config value for a particular setting, register that value AFTER
        // the existing values for that setting. That way, defaults set in the RRO are forward
        // compatible even if the RRO doesn't include that new value yet
        // (e.g. because it's ported from a previous release).

        Setting hdmiCecEnabled = registerSetting(
                HdmiControlManager.CEC_SETTING_NAME_HDMI_CEC_ENABLED,
                R.bool.config_cecHdmiCecEnabled_userConfigurable);
@@ -313,15 +321,15 @@ public class HdmiCecConfig {
        powerControlMode.registerValue(HdmiControlManager.POWER_CONTROL_MODE_TV,
                R.bool.config_cecPowerControlModeTv_allowed,
                R.bool.config_cecPowerControlModeTv_default);
        powerControlMode.registerValue(HdmiControlManager.POWER_CONTROL_MODE_TV_AND_AUDIO_SYSTEM,
                R.bool.config_cecPowerControlModeTvAndAudioSystem_allowed,
                R.bool.config_cecPowerControlModeTvAndAudioSystem_default);
        powerControlMode.registerValue(HdmiControlManager.POWER_CONTROL_MODE_BROADCAST,
                R.bool.config_cecPowerControlModeBroadcast_allowed,
                R.bool.config_cecPowerControlModeBroadcast_default);
        powerControlMode.registerValue(HdmiControlManager.POWER_CONTROL_MODE_NONE,
                R.bool.config_cecPowerControlModeNone_allowed,
                R.bool.config_cecPowerControlModeNone_default);
        powerControlMode.registerValue(HdmiControlManager.POWER_CONTROL_MODE_TV_AND_AUDIO_SYSTEM,
                R.bool.config_cecPowerControlModeTvAndAudioSystem_allowed,
                R.bool.config_cecPowerControlModeTvAndAudioSystem_default);

        Setting powerStateChangeOnActiveSourceLost = registerSetting(
                HdmiControlManager.CEC_SETTING_NAME_POWER_STATE_CHANGE_ON_ACTIVE_SOURCE_LOST,
+4 −2
Original line number Diff line number Diff line
@@ -320,8 +320,10 @@ public final class HdmiCecConfigTest {
    @Test
    public void getDefaultStringValue_MultipleDefaults() {
        setBooleanResource(R.bool.config_cecPowerControlModeBroadcast_default, true);
        assertThrows(RuntimeException.class,
                () -> new HdmiCecConfig(mContext, mStorageAdapter));
        HdmiCecConfig hdmiCecConfig = new HdmiCecConfig(mContext, mStorageAdapter);
        assertThat(hdmiCecConfig.getDefaultStringValue(
                HdmiControlManager.CEC_SETTING_NAME_POWER_CONTROL_MODE))
                .isEqualTo(HdmiControlManager.POWER_CONTROL_MODE_BROADCAST);
    }

    @Test