[CEC Configuration] Port 'power_state_change_on_active_source_lost'
1. Make use of the API in framework code 2. Store the setting in SharedPreferences under the hood Bug: 171870484 Bug: 171958586 Test: atest HdmiCecLocalDevicePlaybackTest HdmiCecConfigTest Change-Id: I9d469719bb1356c28eb0184e2e794a7fae8395d7
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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 <Active Source> 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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -50,6 +50,15 @@ final class FakeHdmiCecConfig extends HdmiCecConfig {
|
||||
+ " </allowed-values>"
|
||||
+ " <default-value string-value=\"to_tv\" />"
|
||||
+ " </setting>"
|
||||
+ " <setting name=\"power_state_change_on_active_source_lost\""
|
||||
+ " value-type=\"string\""
|
||||
+ " user-configurable=\"true\">"
|
||||
+ " <allowed-values>"
|
||||
+ " <value string-value=\"none\" />"
|
||||
+ " <value string-value=\"standby_now\" />"
|
||||
+ " </allowed-values>"
|
||||
+ " <default-value string-value=\"none\" />"
|
||||
+ " </setting>"
|
||||
+ " <setting name=\"hdmi_cec_version\""
|
||||
+ " value-type=\"int\""
|
||||
+ " user-configurable=\"true\">"
|
||||
@@ -62,7 +71,7 @@ final class FakeHdmiCecConfig extends HdmiCecConfig {
|
||||
+ "</cec-settings>";
|
||||
|
||||
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) {
|
||||
|
||||
@@ -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,
|
||||
"<?xml version='1.0' encoding='utf-8' standalone='yes' ?>"
|
||||
+ "<cec-settings>"
|
||||
+ " <setting name=\"power_state_change_on_active_source_lost\""
|
||||
+ " value-type=\"string\""
|
||||
+ " user-configurable=\"false\">"
|
||||
+ " user-configurable=\"true\">"
|
||||
+ " <allowed-values>"
|
||||
+ " <value string-value=\"none\" />"
|
||||
+ " <value string-value=\"standby_now\" />"
|
||||
@@ -657,8 +655,7 @@ public final class HdmiCecConfigTest {
|
||||
+ "</cec-settings>", 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 {
|
||||
+ "</cec-settings>", 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,
|
||||
"<?xml version='1.0' encoding='utf-8' standalone='yes' ?>"
|
||||
@@ -884,12 +881,10 @@ public final class HdmiCecConfigTest {
|
||||
+ "</cec-settings>", 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 {
|
||||
+ "</cec-settings>", 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 {
|
||||
+ "</cec-settings>", 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));
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user