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

This commit is contained in:
Michal Olech
2021-05-11 13:12:35 +00:00
committed by Android (Google) Code Review
3 changed files with 19 additions and 25 deletions

View File

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

View File

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

View File

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