[CEC Configuration] Modify FakeHdmiCecConfig to not persist changes
Bug: 187275931 Bug: 187480852 Test: atest HdmiControlServiceTest Change-Id: I01b57336f4aac4af0afe447cecb6ce2af5411604
This commit is contained in:
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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(
|
||||
|
||||
Reference in New Issue
Block a user