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

Commit d261ad7b authored by Michal Olech's avatar Michal Olech Committed by Android (Google) Code Review
Browse files

Merge "[CEC Configuration] Modify FakeHdmiCecConfig to not persist changes" into sc-dev

parents 369bb74a cd151f02
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -221,7 +221,7 @@ public class HdmiCecConfig {
        }
    }

    private class Setting {
    protected class Setting {
        @NonNull private final Context mContext;
        @NonNull private final @CecSettingName String mName;
        private final boolean mUserConfigurable;
@@ -566,7 +566,7 @@ public class HdmiCecConfig {
        }
    }

    private String retrieveValue(@NonNull Setting setting, @NonNull String defaultValue) {
    protected String retrieveValue(@NonNull Setting setting, @NonNull String defaultValue) {
        @Storage int storage = getStorage(setting);
        String storageKey = getStorageKey(setting);
        if (storage == STORAGE_SYSPROPS) {
@@ -582,7 +582,7 @@ public class HdmiCecConfig {
        return null;
    }

    private void storeValue(@NonNull Setting setting, @NonNull String value) {
    protected void storeValue(@NonNull Setting setting, @NonNull String value) {
        @Storage int storage = getStorage(setting);
        String storageKey = getStorageKey(setting);
        if (storage == STORAGE_SYSPROPS) {
@@ -626,7 +626,7 @@ public class HdmiCecConfig {
        notifySettingChanged(setting);
    }

    private void notifySettingChanged(@NonNull Setting setting) {
    protected void notifySettingChanged(@NonNull Setting setting) {
        synchronized (mLock) {
            ArrayMap<SettingChangeListener, Executor> listeners =
                    mSettingChangeListeners.get(setting);
+15 −0
Original line number Diff line number Diff line
@@ -26,6 +26,8 @@ import android.content.res.Resources;

import com.android.internal.R;

import java.util.HashMap;

/**
 * Fake class which stubs default system configuration with user-configurable
 * settings (useful for testing).
@@ -33,6 +35,8 @@ import com.android.internal.R;
final class FakeHdmiCecConfig extends HdmiCecConfig {
    private static final String TAG = "FakeHdmiCecConfig";

    private final HashMap<String, String> mSettings = new HashMap<>();

    public static Context buildContext(Context context) {
        Context contextSpy = spy(new ContextWrapper(context));
        doReturn(buildResources(context)).when(contextSpy).getResources();
@@ -218,4 +222,15 @@ final class FakeHdmiCecConfig extends HdmiCecConfig {
    FakeHdmiCecConfig(@NonNull Context context) {
        super(buildContext(context), new StorageAdapter(context));
    }

    @Override
    protected String retrieveValue(@NonNull Setting setting, @NonNull String defaultValue) {
        return mSettings.getOrDefault(setting.getName(), defaultValue);
    }

    @Override
    protected void storeValue(@NonNull Setting setting, @NonNull String value) {
        mSettings.put(setting.getName(), value);
        notifySettingChanged(setting);
    }
}
+0 −21
Original line number Diff line number Diff line
@@ -47,7 +47,6 @@ import android.os.PowerManager;
import android.os.RemoteException;
import android.os.test.TestLooper;
import android.platform.test.annotations.Presubmit;
import android.provider.Settings;

import androidx.test.InstrumentationRegistry;
import androidx.test.filters.SmallTest;
@@ -237,9 +236,6 @@ public class HdmiControlServiceTest {
        mHdmiPortInfo[3] =
            new HdmiPortInfo(4, HdmiPortInfo.PORT_INPUT, 0x3000, true, false, false);
        mNativeWrapper.setPortInfo(mHdmiPortInfo);
        mHdmiControlServiceSpy.getHdmiCecConfig().setIntValue(
                HdmiControlManager.CEC_SETTING_NAME_HDMI_CEC_ENABLED,
                HdmiControlManager.HDMI_CEC_CONTROL_ENABLED);
        mHdmiControlServiceSpy.initService();
        mHdmiControlServiceSpy.allocateLogicalAddress(mLocalDevices, INITIATED_BY_ENABLE_CEC);

@@ -361,23 +357,6 @@ public class HdmiControlServiceTest {
                HdmiControlManager.VOLUME_CONTROL_ENABLED);
    }

    @Test
    public void setAndGetCecVolumeControlEnabled_changesSetting() {
        mHdmiControlServiceSpy.getHdmiCecConfig().setIntValue(
                HdmiControlManager.CEC_SETTING_NAME_VOLUME_CONTROL_MODE,
                HdmiControlManager.VOLUME_CONTROL_DISABLED);
        assertThat(mHdmiControlServiceSpy.readIntSetting(
                Settings.Global.HDMI_CONTROL_VOLUME_CONTROL_ENABLED, -1)).isEqualTo(
                HdmiControlManager.VOLUME_CONTROL_DISABLED);

        mHdmiControlServiceSpy.getHdmiCecConfig().setIntValue(
                HdmiControlManager.CEC_SETTING_NAME_VOLUME_CONTROL_MODE,
                HdmiControlManager.VOLUME_CONTROL_ENABLED);
        assertThat(mHdmiControlServiceSpy.readIntSetting(
                Settings.Global.HDMI_CONTROL_VOLUME_CONTROL_ENABLED, -1)).isEqualTo(
                HdmiControlManager.VOLUME_CONTROL_ENABLED);
    }

    @Test
    public void setAndGetCecVolumeControlEnabledInternal_doesNotChangeSetting() {
        mHdmiControlServiceSpy.getHdmiCecConfig().setIntValue(