diff --git a/services/core/java/com/android/server/hdmi/HdmiCecConfig.java b/services/core/java/com/android/server/hdmi/HdmiCecConfig.java index 3794da398c01c..e22b37d13328f 100644 --- a/services/core/java/com/android/server/hdmi/HdmiCecConfig.java +++ b/services/core/java/com/android/server/hdmi/HdmiCecConfig.java @@ -23,6 +23,7 @@ import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.StringDef; import android.content.Context; +import android.content.SharedPreferences; import android.hardware.hdmi.HdmiControlManager; import android.os.Environment; import android.os.SystemProperties; @@ -59,15 +60,19 @@ public class HdmiCecConfig { private static final String ETC_DIR = "etc"; private static final String CONFIG_FILE = "cec_config.xml"; + private static final String SHARED_PREFS_DIR = "shared_prefs"; + private static final String SHARED_PREFS_NAME = "cec_config.xml"; @IntDef({ STORAGE_SYSPROPS, STORAGE_GLOBAL_SETTINGS, + STORAGE_SHARED_PREFS, }) private @interface Storage {} private static final int STORAGE_SYSPROPS = 0; private static final int STORAGE_GLOBAL_SETTINGS = 1; + private static final int STORAGE_SHARED_PREFS = 2; private static final String VALUE_TYPE_STRING = "string"; private static final String VALUE_TYPE_INT = "int"; @@ -78,12 +83,6 @@ public class HdmiCecConfig { }) private @interface ValueType {} - /** - * System property key for Power State Change on Active Source Lost. - */ - public static final String SYSPROP_POWER_STATE_CHANGE_ON_ACTIVE_SOURCE_LOST = - "ro.hdmi.cec.source.power_state_change_on_active_source_lost"; - /** * System property key for Audio Mode Muting. */ @@ -99,6 +98,20 @@ public class HdmiCecConfig { * Setting storage input/output helper class. */ public static class StorageAdapter { + @NonNull private final Context mContext; + @NonNull private final SharedPreferences mSharedPrefs; + + StorageAdapter(@NonNull Context context) { + mContext = context; + // The package info in the context isn't initialized in the way it is for normal apps, + // so the standard, name-based context.getSharedPreferences doesn't work. Instead, we + // build the path manually below using the same policy that appears in ContextImpl. + final Context deviceContext = mContext.createDeviceProtectedStorageContext(); + final File prefsFile = new File(new File(Environment.getDataSystemDirectory(), + SHARED_PREFS_DIR), SHARED_PREFS_NAME); + mSharedPrefs = deviceContext.getSharedPreferences(prefsFile, Context.MODE_PRIVATE); + } + /** * Read the value from a system property. * Returns the given default value if the system property is not set. @@ -120,20 +133,35 @@ public class HdmiCecConfig { * Read the value from a global setting. * Returns the given default value if the system property is not set. */ - public String retrieveGlobalSetting(@NonNull Context context, - @NonNull String storageKey, + public String retrieveGlobalSetting(@NonNull String storageKey, @NonNull String defaultValue) { - String value = Global.getString(context.getContentResolver(), storageKey); + String value = Global.getString(mContext.getContentResolver(), storageKey); return value != null ? value : defaultValue; } /** * Write the value to a global setting. */ - public void storeGlobalSetting(@NonNull Context context, - @NonNull String storageKey, + public void storeGlobalSetting(@NonNull String storageKey, @NonNull String value) { - Global.putString(context.getContentResolver(), storageKey, value); + Global.putString(mContext.getContentResolver(), storageKey, value); + } + + /** + * Read the value from a shared preference. + * Returns the given default value if the preference is not set. + */ + public String retrieveSharedPref(@NonNull String storageKey, + @NonNull String defaultValue) { + return mSharedPrefs.getString(storageKey, defaultValue); + } + + /** + * Write the value to a shared preference. + */ + public void storeSharedPref(@NonNull String storageKey, + @NonNull String value) { + mSharedPrefs.edit().putString(storageKey, value).apply(); } } @@ -155,7 +183,7 @@ public class HdmiCecConfig { } HdmiCecConfig(@NonNull Context context) { - this(context, new StorageAdapter(), + this(context, new StorageAdapter(context), readSettingsFromFile(Environment.buildPath(Environment.getRootDirectory(), ETC_DIR, CONFIG_FILE)), readSettingsFromFile(Environment.buildPath(Environment.getVendorDirectory(), @@ -234,7 +262,7 @@ public class HdmiCecConfig { case HdmiControlManager.CEC_SETTING_NAME_SEND_STANDBY_ON_SLEEP: return STORAGE_GLOBAL_SETTINGS; case HdmiControlManager.CEC_SETTING_NAME_POWER_STATE_CHANGE_ON_ACTIVE_SOURCE_LOST: - return STORAGE_SYSPROPS; + return STORAGE_SHARED_PREFS; case HdmiControlManager.CEC_SETTING_NAME_SYSTEM_AUDIO_MODE_MUTING: return STORAGE_SYSPROPS; default: @@ -252,7 +280,7 @@ public class HdmiCecConfig { case HdmiControlManager.CEC_SETTING_NAME_SEND_STANDBY_ON_SLEEP: return Global.HDMI_CONTROL_SEND_STANDBY_ON_SLEEP; case HdmiControlManager.CEC_SETTING_NAME_POWER_STATE_CHANGE_ON_ACTIVE_SOURCE_LOST: - return SYSPROP_POWER_STATE_CHANGE_ON_ACTIVE_SOURCE_LOST; + return setting.getName(); case HdmiControlManager.CEC_SETTING_NAME_SYSTEM_AUDIO_MODE_MUTING: return SYSPROP_SYSTEM_AUDIO_MODE_MUTING; default: @@ -269,7 +297,10 @@ public class HdmiCecConfig { return mStorageAdapter.retrieveSystemProperty(storageKey, defaultValue); } else if (storage == STORAGE_GLOBAL_SETTINGS) { Slog.d(TAG, "Reading '" + storageKey + "' global setting."); - return mStorageAdapter.retrieveGlobalSetting(mContext, storageKey, defaultValue); + return mStorageAdapter.retrieveGlobalSetting(storageKey, defaultValue); + } else if (storage == STORAGE_SHARED_PREFS) { + Slog.d(TAG, "Reading '" + storageKey + "' shared preference."); + return mStorageAdapter.retrieveSharedPref(storageKey, defaultValue); } return null; } @@ -282,7 +313,10 @@ public class HdmiCecConfig { mStorageAdapter.storeSystemProperty(storageKey, value); } else if (storage == STORAGE_GLOBAL_SETTINGS) { Slog.d(TAG, "Setting '" + storageKey + "' global setting."); - mStorageAdapter.storeGlobalSetting(mContext, storageKey, value); + mStorageAdapter.storeGlobalSetting(storageKey, value); + } else if (storage == STORAGE_SHARED_PREFS) { + Slog.d(TAG, "Setting '" + storageKey + "' shared pref."); + mStorageAdapter.storeSharedPref(storageKey, value); } } diff --git a/services/core/java/com/android/server/hdmi/HdmiCecLocalDevicePlayback.java b/services/core/java/com/android/server/hdmi/HdmiCecLocalDevicePlayback.java index 37cb0176f7325..109f6a7f56fec 100644 --- a/services/core/java/com/android/server/hdmi/HdmiCecLocalDevicePlayback.java +++ b/services/core/java/com/android/server/hdmi/HdmiCecLocalDevicePlayback.java @@ -66,13 +66,6 @@ public class HdmiCecLocalDevicePlayback extends HdmiCecLocalDeviceSource { .playback_device_action_on_routing_control() .orElse(HdmiProperties.playback_device_action_on_routing_control_values.NONE); - // Behaviour of the device when is lost in favor of another device. - @VisibleForTesting - protected HdmiProperties.power_state_change_on_active_source_lost_values - mPowerStateChangeOnActiveSourceLost = HdmiProperties - .power_state_change_on_active_source_lost() - .orElse(HdmiProperties.power_state_change_on_active_source_lost_values.NONE); - HdmiCecLocalDevicePlayback(HdmiControlService service) { super(service, HdmiDeviceInfo.DEVICE_PLAYBACK); @@ -279,11 +272,12 @@ public class HdmiCecLocalDevicePlayback extends HdmiCecLocalDeviceSource { @ServiceThreadOnly protected void onActiveSourceLost() { assertRunOnServiceThread(); - switch (mPowerStateChangeOnActiveSourceLost) { - case STANDBY_NOW: + switch (mService.getHdmiCecConfig().getStringValue( + HdmiControlManager.CEC_SETTING_NAME_POWER_STATE_CHANGE_ON_ACTIVE_SOURCE_LOST)) { + case HdmiControlManager.POWER_STATE_CHANGE_ON_ACTIVE_SOURCE_LOST_STANDBY_NOW: mService.standby(); return; - case NONE: + case HdmiControlManager.POWER_STATE_CHANGE_ON_ACTIVE_SOURCE_LOST_NONE: return; } } diff --git a/services/tests/servicestests/src/com/android/server/hdmi/FakeHdmiCecConfig.java b/services/tests/servicestests/src/com/android/server/hdmi/FakeHdmiCecConfig.java index 52899faf0ed7c..a7f6b82fae10e 100644 --- a/services/tests/servicestests/src/com/android/server/hdmi/FakeHdmiCecConfig.java +++ b/services/tests/servicestests/src/com/android/server/hdmi/FakeHdmiCecConfig.java @@ -50,6 +50,15 @@ final class FakeHdmiCecConfig extends HdmiCecConfig { + " " + " " + " " + + " " + + " " + + " " + + " " + + " " + + " " + + " " + " " @@ -62,7 +71,7 @@ final class FakeHdmiCecConfig extends HdmiCecConfig { + ""; FakeHdmiCecConfig(@NonNull Context context) { - super(context, new StorageAdapter(), parseFromString(SYSTEM_CONFIG_XML), null); + super(context, new StorageAdapter(context), parseFromString(SYSTEM_CONFIG_XML), null); } private static CecSettings parseFromString(@NonNull String configXml) { diff --git a/services/tests/servicestests/src/com/android/server/hdmi/HdmiCecConfigTest.java b/services/tests/servicestests/src/com/android/server/hdmi/HdmiCecConfigTest.java index dd74f22c78b77..596faee46eb75 100644 --- a/services/tests/servicestests/src/com/android/server/hdmi/HdmiCecConfigTest.java +++ b/services/tests/servicestests/src/com/android/server/hdmi/HdmiCecConfigTest.java @@ -27,7 +27,6 @@ import android.content.Context; import android.hardware.hdmi.HdmiControlManager; import android.platform.test.annotations.Presubmit; import android.provider.Settings.Global; -import android.sysprop.HdmiProperties; import androidx.test.InstrumentationRegistry; import androidx.test.filters.SmallTest; @@ -609,7 +608,7 @@ public final class HdmiCecConfigTest { @Test public void getStringValue_GlobalSetting_BasicSanity() { - when(mStorageAdapter.retrieveGlobalSetting(mContext, + when(mStorageAdapter.retrieveGlobalSetting( Global.HDMI_CONTROL_SEND_STANDBY_ON_SLEEP, HdmiControlManager.SEND_STANDBY_ON_SLEEP_TO_TV)) .thenReturn(HdmiControlManager.SEND_STANDBY_ON_SLEEP_BROADCAST); @@ -634,20 +633,19 @@ public final class HdmiCecConfigTest { } @Test - public void getStringValue_SystemProperty_BasicSanity() { - when(mStorageAdapter.retrieveSystemProperty( - HdmiCecConfig.SYSPROP_POWER_STATE_CHANGE_ON_ACTIVE_SOURCE_LOST, - HdmiProperties.power_state_change_on_active_source_lost_values - .NONE.name().toLowerCase())) - .thenReturn(HdmiProperties.power_state_change_on_active_source_lost_values - .STANDBY_NOW.name().toLowerCase()); + public void getStringValue_SharedPref_BasicSanity() { + when(mStorageAdapter.retrieveSharedPref( + HdmiControlManager.CEC_SETTING_NAME_POWER_STATE_CHANGE_ON_ACTIVE_SOURCE_LOST, + HdmiControlManager.POWER_STATE_CHANGE_ON_ACTIVE_SOURCE_LOST_NONE)) + .thenReturn( + HdmiControlManager.POWER_STATE_CHANGE_ON_ACTIVE_SOURCE_LOST_STANDBY_NOW); HdmiCecConfig hdmiCecConfig = HdmiCecConfig.createFromStrings( mContext, mStorageAdapter, "" + "" + " " + + " user-configurable=\"true\">" + " " + " " + " " @@ -657,8 +655,7 @@ public final class HdmiCecConfigTest { + "", null); assertThat(hdmiCecConfig.getStringValue( HdmiControlManager.CEC_SETTING_NAME_POWER_STATE_CHANGE_ON_ACTIVE_SOURCE_LOST)) - .isEqualTo(HdmiProperties.power_state_change_on_active_source_lost_values - .STANDBY_NOW.name().toLowerCase()); + .isEqualTo(HdmiControlManager.POWER_STATE_CHANGE_ON_ACTIVE_SOURCE_LOST_STANDBY_NOW); } @Test @@ -704,7 +701,7 @@ public final class HdmiCecConfigTest { @Test public void getIntValue_GlobalSetting_BasicSanity() { - when(mStorageAdapter.retrieveGlobalSetting(mContext, + when(mStorageAdapter.retrieveGlobalSetting( Global.HDMI_CONTROL_ENABLED, Integer.toString(HdmiControlManager.HDMI_CEC_CONTROL_ENABLED))) .thenReturn(Integer.toString(HdmiControlManager.HDMI_CEC_CONTROL_DISABLED)); @@ -729,7 +726,7 @@ public final class HdmiCecConfigTest { @Test public void getIntValue_GlobalSetting_HexValue() { - when(mStorageAdapter.retrieveGlobalSetting(mContext, + when(mStorageAdapter.retrieveGlobalSetting( Global.HDMI_CONTROL_ENABLED, Integer.toHexString(HdmiControlManager.HDMI_CEC_CONTROL_ENABLED))) .thenReturn(Integer.toString(HdmiControlManager.HDMI_CEC_CONTROL_DISABLED)); @@ -861,13 +858,13 @@ public final class HdmiCecConfigTest { + "", null); hdmiCecConfig.setStringValue(HdmiControlManager.CEC_SETTING_NAME_SEND_STANDBY_ON_SLEEP, HdmiControlManager.SEND_STANDBY_ON_SLEEP_BROADCAST); - verify(mStorageAdapter).storeGlobalSetting(mContext, + verify(mStorageAdapter).storeGlobalSetting( Global.HDMI_CONTROL_SEND_STANDBY_ON_SLEEP, HdmiControlManager.SEND_STANDBY_ON_SLEEP_BROADCAST); } @Test - public void setStringValue_SystemProperty_BasicSanity() { + public void setStringValue_SharedPref_BasicSanity() { HdmiCecConfig hdmiCecConfig = HdmiCecConfig.createFromStrings( mContext, mStorageAdapter, "" @@ -884,12 +881,10 @@ public final class HdmiCecConfigTest { + "", null); hdmiCecConfig.setStringValue( HdmiControlManager.CEC_SETTING_NAME_POWER_STATE_CHANGE_ON_ACTIVE_SOURCE_LOST, - HdmiProperties.power_state_change_on_active_source_lost_values - .STANDBY_NOW.name().toLowerCase()); - verify(mStorageAdapter).storeSystemProperty( - HdmiCecConfig.SYSPROP_POWER_STATE_CHANGE_ON_ACTIVE_SOURCE_LOST, - HdmiProperties.power_state_change_on_active_source_lost_values - .STANDBY_NOW.name().toLowerCase()); + HdmiControlManager.POWER_STATE_CHANGE_ON_ACTIVE_SOURCE_LOST_STANDBY_NOW); + verify(mStorageAdapter).storeSharedPref( + HdmiControlManager.CEC_SETTING_NAME_POWER_STATE_CHANGE_ON_ACTIVE_SOURCE_LOST, + HdmiControlManager.POWER_STATE_CHANGE_ON_ACTIVE_SOURCE_LOST_STANDBY_NOW); } @Test @@ -973,7 +968,7 @@ public final class HdmiCecConfigTest { + "", null); hdmiCecConfig.setIntValue(HdmiControlManager.CEC_SETTING_NAME_HDMI_CEC_ENABLED, HdmiControlManager.HDMI_CEC_CONTROL_DISABLED); - verify(mStorageAdapter).storeGlobalSetting(mContext, + verify(mStorageAdapter).storeGlobalSetting( Global.HDMI_CONTROL_ENABLED, Integer.toString(HdmiControlManager.HDMI_CEC_CONTROL_DISABLED)); } @@ -996,7 +991,7 @@ public final class HdmiCecConfigTest { + "", null); hdmiCecConfig.setIntValue(HdmiControlManager.CEC_SETTING_NAME_HDMI_CEC_ENABLED, HdmiControlManager.HDMI_CEC_CONTROL_DISABLED); - verify(mStorageAdapter).storeGlobalSetting(mContext, + verify(mStorageAdapter).storeGlobalSetting( Global.HDMI_CONTROL_ENABLED, Integer.toString(HdmiControlManager.HDMI_CEC_CONTROL_DISABLED)); } diff --git a/services/tests/servicestests/src/com/android/server/hdmi/HdmiCecLocalDevicePlaybackTest.java b/services/tests/servicestests/src/com/android/server/hdmi/HdmiCecLocalDevicePlaybackTest.java index 67d63ad5bd903..cdb49ad54f1ec 100644 --- a/services/tests/servicestests/src/com/android/server/hdmi/HdmiCecLocalDevicePlaybackTest.java +++ b/services/tests/servicestests/src/com/android/server/hdmi/HdmiCecLocalDevicePlaybackTest.java @@ -282,8 +282,9 @@ public class HdmiCecLocalDevicePlaybackTest { @Test public void handleRoutingChange_otherDevice_None() { - mHdmiCecLocalDevicePlayback.mPowerStateChangeOnActiveSourceLost = - HdmiProperties.power_state_change_on_active_source_lost_values.NONE; + mHdmiCecLocalDevicePlayback.mService.getHdmiCecConfig().setStringValue( + HdmiControlManager.CEC_SETTING_NAME_POWER_STATE_CHANGE_ON_ACTIVE_SOURCE_LOST, + HdmiControlManager.POWER_STATE_CHANGE_ON_ACTIVE_SOURCE_LOST_NONE); mHdmiCecLocalDevicePlayback.setActiveSource(mPlaybackLogicalAddress, mPlaybackPhysicalAddress, "HdmiCecLocalDevicePlaybackTest"); mStandby = false; @@ -300,8 +301,9 @@ public class HdmiCecLocalDevicePlaybackTest { @Test public void handleRoutingChange_sameDevice_None_ActiveSource() { - mHdmiCecLocalDevicePlayback.mPowerStateChangeOnActiveSourceLost = - HdmiProperties.power_state_change_on_active_source_lost_values.NONE; + mHdmiCecLocalDevicePlayback.mService.getHdmiCecConfig().setStringValue( + HdmiControlManager.CEC_SETTING_NAME_POWER_STATE_CHANGE_ON_ACTIVE_SOURCE_LOST, + HdmiControlManager.POWER_STATE_CHANGE_ON_ACTIVE_SOURCE_LOST_NONE); mHdmiCecLocalDevicePlayback.setActiveSource(mPlaybackLogicalAddress, mPlaybackPhysicalAddress, "HdmiCecLocalDevicePlaybackTest"); mStandby = false; @@ -319,8 +321,9 @@ public class HdmiCecLocalDevicePlaybackTest { @Test public void handleRoutingChange_sameDevice_None_InactiveSource() { - mHdmiCecLocalDevicePlayback.mPowerStateChangeOnActiveSourceLost = - HdmiProperties.power_state_change_on_active_source_lost_values.NONE; + mHdmiCecLocalDevicePlayback.mService.getHdmiCecConfig().setStringValue( + HdmiControlManager.CEC_SETTING_NAME_POWER_STATE_CHANGE_ON_ACTIVE_SOURCE_LOST, + HdmiControlManager.POWER_STATE_CHANGE_ON_ACTIVE_SOURCE_LOST_NONE); mHdmiCecLocalDevicePlayback.setActiveSource(ADDR_TV, 0x0000, "HdmiCecLocalDevicePlaybackTest"); mStandby = false; @@ -338,8 +341,9 @@ public class HdmiCecLocalDevicePlaybackTest { @Test public void handleRoutingChange_otherDevice_StandbyNow() { - mHdmiCecLocalDevicePlayback.mPowerStateChangeOnActiveSourceLost = - HdmiProperties.power_state_change_on_active_source_lost_values.STANDBY_NOW; + mHdmiCecLocalDevicePlayback.mService.getHdmiCecConfig().setStringValue( + HdmiControlManager.CEC_SETTING_NAME_POWER_STATE_CHANGE_ON_ACTIVE_SOURCE_LOST, + HdmiControlManager.POWER_STATE_CHANGE_ON_ACTIVE_SOURCE_LOST_STANDBY_NOW); mHdmiCecLocalDevicePlayback.setActiveSource(mPlaybackLogicalAddress, mPlaybackPhysicalAddress, "HdmiCecLocalDevicePlaybackTest"); mStandby = false; @@ -352,8 +356,9 @@ public class HdmiCecLocalDevicePlaybackTest { @Test public void handleRoutingChange_otherDevice_StandbyNow_InactiveSource() { - mHdmiCecLocalDevicePlayback.mPowerStateChangeOnActiveSourceLost = - HdmiProperties.power_state_change_on_active_source_lost_values.STANDBY_NOW; + mHdmiCecLocalDevicePlayback.mService.getHdmiCecConfig().setStringValue( + HdmiControlManager.CEC_SETTING_NAME_POWER_STATE_CHANGE_ON_ACTIVE_SOURCE_LOST, + HdmiControlManager.POWER_STATE_CHANGE_ON_ACTIVE_SOURCE_LOST_STANDBY_NOW); mHdmiCecLocalDevicePlayback.setActiveSource(ADDR_TV, 0x0000, "HdmiCecLocalDevicePlaybackTest"); mStandby = false; @@ -366,8 +371,9 @@ public class HdmiCecLocalDevicePlaybackTest { @Test public void handleRoutingChange_sameDevice_StandbyNow_ActiveSource() { - mHdmiCecLocalDevicePlayback.mPowerStateChangeOnActiveSourceLost = - HdmiProperties.power_state_change_on_active_source_lost_values.STANDBY_NOW; + mHdmiCecLocalDevicePlayback.mService.getHdmiCecConfig().setStringValue( + HdmiControlManager.CEC_SETTING_NAME_POWER_STATE_CHANGE_ON_ACTIVE_SOURCE_LOST, + HdmiControlManager.POWER_STATE_CHANGE_ON_ACTIVE_SOURCE_LOST_STANDBY_NOW); mHdmiCecLocalDevicePlayback.setActiveSource(mPlaybackLogicalAddress, mPlaybackPhysicalAddress, "HdmiCecLocalDevicePlaybackTest"); mStandby = false; @@ -381,8 +387,9 @@ public class HdmiCecLocalDevicePlaybackTest { @Test public void handleRoutingInformation_otherDevice_None() { - mHdmiCecLocalDevicePlayback.mPowerStateChangeOnActiveSourceLost = - HdmiProperties.power_state_change_on_active_source_lost_values.NONE; + mHdmiCecLocalDevicePlayback.mService.getHdmiCecConfig().setStringValue( + HdmiControlManager.CEC_SETTING_NAME_POWER_STATE_CHANGE_ON_ACTIVE_SOURCE_LOST, + HdmiControlManager.POWER_STATE_CHANGE_ON_ACTIVE_SOURCE_LOST_NONE); mHdmiCecLocalDevicePlayback.setActiveSource(mPlaybackLogicalAddress, mPlaybackPhysicalAddress, "HdmiCecLocalDevicePlaybackTest"); mStandby = false; @@ -398,8 +405,9 @@ public class HdmiCecLocalDevicePlaybackTest { @Test public void handleRoutingInformation_sameDevice_None_ActiveSource() { - mHdmiCecLocalDevicePlayback.mPowerStateChangeOnActiveSourceLost = - HdmiProperties.power_state_change_on_active_source_lost_values.NONE; + mHdmiCecLocalDevicePlayback.mService.getHdmiCecConfig().setStringValue( + HdmiControlManager.CEC_SETTING_NAME_POWER_STATE_CHANGE_ON_ACTIVE_SOURCE_LOST, + HdmiControlManager.POWER_STATE_CHANGE_ON_ACTIVE_SOURCE_LOST_NONE); mHdmiCecLocalDevicePlayback.setActiveSource(mPlaybackLogicalAddress, mPlaybackPhysicalAddress, "HdmiCecLocalDevicePlaybackTest"); mStandby = false; @@ -417,8 +425,9 @@ public class HdmiCecLocalDevicePlaybackTest { @Test public void handleRoutingInformation_sameDevice_None_InactiveSource() { - mHdmiCecLocalDevicePlayback.mPowerStateChangeOnActiveSourceLost = - HdmiProperties.power_state_change_on_active_source_lost_values.NONE; + mHdmiCecLocalDevicePlayback.mService.getHdmiCecConfig().setStringValue( + HdmiControlManager.CEC_SETTING_NAME_POWER_STATE_CHANGE_ON_ACTIVE_SOURCE_LOST, + HdmiControlManager.POWER_STATE_CHANGE_ON_ACTIVE_SOURCE_LOST_NONE); mHdmiCecLocalDevicePlayback.setActiveSource(ADDR_TV, 0x0000, "HdmiCecLocalDevicePlaybackTest"); mStandby = false; @@ -436,8 +445,9 @@ public class HdmiCecLocalDevicePlaybackTest { @Test public void handleRoutingInformation_otherDevice_StandbyNow() { - mHdmiCecLocalDevicePlayback.mPowerStateChangeOnActiveSourceLost = - HdmiProperties.power_state_change_on_active_source_lost_values.STANDBY_NOW; + mHdmiCecLocalDevicePlayback.mService.getHdmiCecConfig().setStringValue( + HdmiControlManager.CEC_SETTING_NAME_POWER_STATE_CHANGE_ON_ACTIVE_SOURCE_LOST, + HdmiControlManager.POWER_STATE_CHANGE_ON_ACTIVE_SOURCE_LOST_STANDBY_NOW); mHdmiCecLocalDevicePlayback.setActiveSource(mPlaybackLogicalAddress, mPlaybackPhysicalAddress, "HdmiCecLocalDevicePlaybackTest"); mStandby = false; @@ -450,8 +460,9 @@ public class HdmiCecLocalDevicePlaybackTest { @Test public void handleRoutingInformation_otherDevice_StandbyNow_InactiveSource() { - mHdmiCecLocalDevicePlayback.mPowerStateChangeOnActiveSourceLost = - HdmiProperties.power_state_change_on_active_source_lost_values.STANDBY_NOW; + mHdmiCecLocalDevicePlayback.mService.getHdmiCecConfig().setStringValue( + HdmiControlManager.CEC_SETTING_NAME_POWER_STATE_CHANGE_ON_ACTIVE_SOURCE_LOST, + HdmiControlManager.POWER_STATE_CHANGE_ON_ACTIVE_SOURCE_LOST_STANDBY_NOW); mHdmiCecLocalDevicePlayback.setActiveSource(ADDR_TV, 0x0000, "HdmiCecLocalDevicePlaybackTest"); mStandby = false; @@ -464,8 +475,9 @@ public class HdmiCecLocalDevicePlaybackTest { @Test public void handleRoutingInformation_sameDevice_StandbyNow_ActiveSource() { - mHdmiCecLocalDevicePlayback.mPowerStateChangeOnActiveSourceLost = - HdmiProperties.power_state_change_on_active_source_lost_values.STANDBY_NOW; + mHdmiCecLocalDevicePlayback.mService.getHdmiCecConfig().setStringValue( + HdmiControlManager.CEC_SETTING_NAME_POWER_STATE_CHANGE_ON_ACTIVE_SOURCE_LOST, + HdmiControlManager.POWER_STATE_CHANGE_ON_ACTIVE_SOURCE_LOST_STANDBY_NOW); mHdmiCecLocalDevicePlayback.setActiveSource(mPlaybackLogicalAddress, mPlaybackPhysicalAddress, "HdmiCecLocalDevicePlaybackTest"); mStandby = false; @@ -740,8 +752,9 @@ public class HdmiCecLocalDevicePlaybackTest { @Test public void handleActiveSource_ActiveSource_None() { - mHdmiCecLocalDevicePlayback.mPowerStateChangeOnActiveSourceLost = - HdmiProperties.power_state_change_on_active_source_lost_values.NONE; + mHdmiCecLocalDevicePlayback.mService.getHdmiCecConfig().setStringValue( + HdmiControlManager.CEC_SETTING_NAME_POWER_STATE_CHANGE_ON_ACTIVE_SOURCE_LOST, + HdmiControlManager.POWER_STATE_CHANGE_ON_ACTIVE_SOURCE_LOST_NONE); mStandby = false; HdmiCecMessage message = HdmiCecMessageBuilder.buildActiveSource(mPlaybackLogicalAddress, mPlaybackPhysicalAddress); @@ -757,8 +770,9 @@ public class HdmiCecLocalDevicePlaybackTest { @Test public void handleActiveSource_notActiveSource_None() { - mHdmiCecLocalDevicePlayback.mPowerStateChangeOnActiveSourceLost = - HdmiProperties.power_state_change_on_active_source_lost_values.NONE; + mHdmiCecLocalDevicePlayback.mService.getHdmiCecConfig().setStringValue( + HdmiControlManager.CEC_SETTING_NAME_POWER_STATE_CHANGE_ON_ACTIVE_SOURCE_LOST, + HdmiControlManager.POWER_STATE_CHANGE_ON_ACTIVE_SOURCE_LOST_NONE); mStandby = false; HdmiCecMessage message = HdmiCecMessageBuilder.buildActiveSource(ADDR_TV, 0x0000); assertThat(mHdmiCecLocalDevicePlayback.handleActiveSource(message)).isTrue(); @@ -773,8 +787,9 @@ public class HdmiCecLocalDevicePlaybackTest { @Test public void handleActiveSource_ActiveSource_StandbyNow() { - mHdmiCecLocalDevicePlayback.mPowerStateChangeOnActiveSourceLost = - HdmiProperties.power_state_change_on_active_source_lost_values.STANDBY_NOW; + mHdmiCecLocalDevicePlayback.mService.getHdmiCecConfig().setStringValue( + HdmiControlManager.CEC_SETTING_NAME_POWER_STATE_CHANGE_ON_ACTIVE_SOURCE_LOST, + HdmiControlManager.POWER_STATE_CHANGE_ON_ACTIVE_SOURCE_LOST_STANDBY_NOW); mStandby = false; HdmiCecMessage message = HdmiCecMessageBuilder.buildActiveSource(mPlaybackLogicalAddress, mPlaybackPhysicalAddress); @@ -786,8 +801,9 @@ public class HdmiCecLocalDevicePlaybackTest { @Test public void handleActiveSource_notActiveSource_StandbyNow() { - mHdmiCecLocalDevicePlayback.mPowerStateChangeOnActiveSourceLost = - HdmiProperties.power_state_change_on_active_source_lost_values.STANDBY_NOW; + mHdmiCecLocalDevicePlayback.mService.getHdmiCecConfig().setStringValue( + HdmiControlManager.CEC_SETTING_NAME_POWER_STATE_CHANGE_ON_ACTIVE_SOURCE_LOST, + HdmiControlManager.POWER_STATE_CHANGE_ON_ACTIVE_SOURCE_LOST_STANDBY_NOW); mStandby = false; HdmiCecMessage message = HdmiCecMessageBuilder.buildActiveSource(ADDR_TV, 0x0000); assertThat(mHdmiCecLocalDevicePlayback.handleActiveSource(message)).isTrue(); @@ -1026,8 +1042,9 @@ public class HdmiCecLocalDevicePlaybackTest { @Test public void handleSetStreamPath_otherDevice_None() { - mHdmiCecLocalDevicePlayback.mPowerStateChangeOnActiveSourceLost = - HdmiProperties.power_state_change_on_active_source_lost_values.NONE; + mHdmiCecLocalDevicePlayback.mService.getHdmiCecConfig().setStringValue( + HdmiControlManager.CEC_SETTING_NAME_POWER_STATE_CHANGE_ON_ACTIVE_SOURCE_LOST, + HdmiControlManager.POWER_STATE_CHANGE_ON_ACTIVE_SOURCE_LOST_NONE); mHdmiCecLocalDevicePlayback.setActiveSource(mPlaybackLogicalAddress, mPlaybackPhysicalAddress, "HdmiCecLocalDevicePlaybackTest"); mStandby = false; @@ -1044,8 +1061,9 @@ public class HdmiCecLocalDevicePlaybackTest { @Test public void handleSetStreamPath_otherDevice_StandbyNow() { - mHdmiCecLocalDevicePlayback.mPowerStateChangeOnActiveSourceLost = - HdmiProperties.power_state_change_on_active_source_lost_values.STANDBY_NOW; + mHdmiCecLocalDevicePlayback.mService.getHdmiCecConfig().setStringValue( + HdmiControlManager.CEC_SETTING_NAME_POWER_STATE_CHANGE_ON_ACTIVE_SOURCE_LOST, + HdmiControlManager.POWER_STATE_CHANGE_ON_ACTIVE_SOURCE_LOST_STANDBY_NOW); mHdmiCecLocalDevicePlayback.setActiveSource(mPlaybackLogicalAddress, mPlaybackPhysicalAddress, "HdmiCecLocalDevicePlaybackTest"); mStandby = false; @@ -1058,8 +1076,9 @@ public class HdmiCecLocalDevicePlaybackTest { @Test public void handleSetStreamPath_otherDevice_StandbyNow_InactiveSource() { - mHdmiCecLocalDevicePlayback.mPowerStateChangeOnActiveSourceLost = - HdmiProperties.power_state_change_on_active_source_lost_values.STANDBY_NOW; + mHdmiCecLocalDevicePlayback.mService.getHdmiCecConfig().setStringValue( + HdmiControlManager.CEC_SETTING_NAME_POWER_STATE_CHANGE_ON_ACTIVE_SOURCE_LOST, + HdmiControlManager.POWER_STATE_CHANGE_ON_ACTIVE_SOURCE_LOST_STANDBY_NOW); mHdmiCecLocalDevicePlayback.setActiveSource(ADDR_TV, 0x0000, "HdmiCecLocalDevicePlaybackTest"); mStandby = false;