Merge changes from topics "CecConfigPowerStateChangeOnActiveSourceLost", "CecConfigSendStandbyOnSleep", "CecConfigSystemAudioModeMuting"

* changes:
  [CEC Configuration] Port 'system_audio_mode_muting'
  [CEC Configuration] Port 'power_state_change_on_active_source_lost'
  [CEC Configuration] Use CEC Config API in the 'send_standby_on_sleep' option
This commit is contained in:
TreeHugger Robot
2020-11-16 13:30:10 +00:00
committed by Android (Google) Code Review
8 changed files with 230 additions and 151 deletions

View File

@@ -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,18 +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.
*/
public static final String SYSPROP_SYSTEM_AUDIO_MODE_MUTING =
"ro.hdmi.cec.audio.system_audio_mode_muting.enabled";
@NonNull private final Context mContext;
@NonNull private final StorageAdapter mStorageAdapter;
@Nullable private final CecSettings mSystemConfig;
@@ -99,6 +92,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 +127,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 +177,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,9 +256,9 @@ 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;
return STORAGE_SHARED_PREFS;
default:
throw new RuntimeException("Invalid CEC setting '" + setting.getName()
+ "' storage.");
@@ -252,9 +274,9 @@ 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;
return setting.getName();
default:
throw new RuntimeException("Invalid CEC setting '" + setting.getName()
+ "' storage key.");
@@ -269,7 +291,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 +307,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);
}
}

View File

@@ -778,11 +778,14 @@ public class HdmiCecLocalDeviceAudioSystem extends HdmiCecLocalDeviceSource {
switchToAudioInput();
}
// Mute device when feature is turned off and unmute device when feature is turned on.
// PROPERTY_SYSTEM_AUDIO_MODE_MUTING_ENABLE is false when device never needs to be muted.
// CEC_SETTING_NAME_SYSTEM_AUDIO_MODE_MUTING is false when device never needs to be muted.
boolean systemAudioModeMutingEnabled = mService.getHdmiCecConfig().getIntValue(
HdmiControlManager.CEC_SETTING_NAME_SYSTEM_AUDIO_MODE_MUTING)
== HdmiControlManager.SYSTEM_AUDIO_MODE_MUTING_ENABLED;
boolean currentMuteStatus =
mService.getAudioManager().isStreamMute(AudioManager.STREAM_MUSIC);
if (currentMuteStatus == newSystemAudioMode) {
if (HdmiProperties.system_audio_mode_muting().orElse(true) || newSystemAudioMode) {
if (systemAudioModeMutingEnabled || newSystemAudioMode) {
mService.getAudioManager()
.adjustStreamVolume(
AudioManager.STREAM_MUSIC,
@@ -806,7 +809,7 @@ public class HdmiCecLocalDeviceAudioSystem extends HdmiCecLocalDeviceSource {
// Audio Mode is off even without terminating the ARC. This can stop the current
// audio device from playing audio when system audio mode is off.
if (mArcIntentUsed
&& !HdmiProperties.system_audio_mode_muting().orElse(true)
&& !systemAudioModeMutingEnabled
&& !newSystemAudioMode
&& getLocalActivePort() == Constants.CEC_SWITCH_ARC) {
routeToInputFromPortId(getRoutingPort());

View File

@@ -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);
@@ -81,14 +74,6 @@ public class HdmiCecLocalDevicePlayback extends HdmiCecLocalDeviceSource {
// The option is false by default. Update settings db as well to have the right
// initial setting on UI.
mService.writeBooleanSetting(Global.HDMI_CONTROL_AUTO_DEVICE_OFF_ENABLED, mAutoTvOff);
// Initialize settings database with System Property value. This will be the initial
// setting on the UI. If no System Property is set, the option is set to to_tv by default.
mService.writeStringSetting(Global.HDMI_CONTROL_SEND_STANDBY_ON_SLEEP,
mService.readStringSetting(Global.HDMI_CONTROL_SEND_STANDBY_ON_SLEEP,
HdmiProperties.send_standby_on_sleep().orElse(
HdmiProperties.send_standby_on_sleep_values.TO_TV).name()
.toLowerCase()));
}
@Override
@@ -195,11 +180,8 @@ public class HdmiCecLocalDevicePlayback extends HdmiCecLocalDeviceSource {
case HdmiControlService.STANDBY_SCREEN_OFF:
// Get latest setting value
@HdmiControlManager.StandbyBehavior
String sendStandbyOnSleep = mService.readStringSetting(
Global.HDMI_CONTROL_SEND_STANDBY_ON_SLEEP,
HdmiProperties.send_standby_on_sleep().orElse(
HdmiProperties.send_standby_on_sleep_values.TO_TV).name()
.toLowerCase());
String sendStandbyOnSleep = mService.getHdmiCecConfig().getStringValue(
HdmiControlManager.CEC_SETTING_NAME_SEND_STANDBY_ON_SLEEP);
switch (sendStandbyOnSleep) {
case HdmiControlManager.SEND_STANDBY_ON_SLEEP_TO_TV:
mService.sendCecCommand(
@@ -290,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;
}
}

View File

@@ -19,7 +19,6 @@ import android.hardware.hdmi.HdmiControlManager;
import android.hardware.hdmi.HdmiPlaybackClient.OneTouchPlayCallback;
import android.hardware.hdmi.IHdmiControlCallback;
import android.os.RemoteException;
import android.provider.Settings.Global;
import android.util.Slog;
import java.util.ArrayList;
@@ -166,8 +165,9 @@ final class OneTouchPlayAction extends HdmiCecFeatureAction {
if (service.isAudioSystemDevice()) {
return false;
}
String sendStandbyOnSleep = service.readStringSetting(
Global.HDMI_CONTROL_SEND_STANDBY_ON_SLEEP, "");
@HdmiControlManager.StandbyBehavior String sendStandbyOnSleep =
service.getHdmiCecConfig().getStringValue(
HdmiControlManager.CEC_SETTING_NAME_SEND_STANDBY_ON_SLEEP);
return sendStandbyOnSleep.equals(HdmiControlManager.SEND_STANDBY_ON_SLEEP_BROADCAST);
}
}

View File

@@ -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\">"
@@ -59,10 +68,19 @@ final class FakeHdmiCecConfig extends HdmiCecConfig {
+ " </allowed-values>"
+ " <default-value int-value=\"0x05\" />"
+ " </setting>"
+ " <setting name=\"system_audio_mode_muting\""
+ " value-type=\"int\""
+ " user-configurable=\"true\">"
+ " <allowed-values>"
+ " <value int-value=\"0\" />"
+ " <value int-value=\"1\" />"
+ " </allowed-values>"
+ " <default-value int-value=\"1\" />"
+ " </setting>"
+ "</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) {

View File

@@ -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));
@@ -753,9 +750,9 @@ public final class HdmiCecConfigTest {
}
@Test
public void getIntValue_SystemProperty_BasicSanity() {
when(mStorageAdapter.retrieveSystemProperty(
HdmiCecConfig.SYSPROP_SYSTEM_AUDIO_MODE_MUTING,
public void getIntValue_SharedPref_BasicSanity() {
when(mStorageAdapter.retrieveSharedPref(
HdmiControlManager.CEC_SETTING_NAME_SYSTEM_AUDIO_MODE_MUTING,
Integer.toString(HdmiControlManager.SYSTEM_AUDIO_MODE_MUTING_ENABLED)))
.thenReturn(Integer.toString(HdmiControlManager.SYSTEM_AUDIO_MODE_MUTING_DISABLED));
HdmiCecConfig hdmiCecConfig = HdmiCecConfig.createFromStrings(
@@ -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,13 +991,13 @@ 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));
}
@Test
public void setIntValue_SystemProperty_BasicSanity() {
public void setIntValue_SharedPref_BasicSanity() {
HdmiCecConfig hdmiCecConfig = HdmiCecConfig.createFromStrings(
mContext, mStorageAdapter,
"<?xml version='1.0' encoding='utf-8' standalone='yes' ?>"
@@ -1020,8 +1015,8 @@ public final class HdmiCecConfigTest {
hdmiCecConfig.setIntValue(
HdmiControlManager.CEC_SETTING_NAME_SYSTEM_AUDIO_MODE_MUTING,
HdmiControlManager.SYSTEM_AUDIO_MODE_MUTING_DISABLED);
verify(mStorageAdapter).storeSystemProperty(
HdmiCecConfig.SYSPROP_SYSTEM_AUDIO_MODE_MUTING,
verify(mStorageAdapter).storeSharedPref(
HdmiControlManager.CEC_SETTING_NAME_SYSTEM_AUDIO_MODE_MUTING,
Integer.toString(HdmiControlManager.SYSTEM_AUDIO_MODE_MUTING_DISABLED));
}
}

View File

@@ -27,6 +27,7 @@ import static com.android.server.hdmi.HdmiControlService.STANDBY_SCREEN_OFF;
import static com.google.common.truth.Truth.assertThat;
import android.content.Context;
import android.hardware.hdmi.HdmiControlManager;
import android.hardware.hdmi.HdmiDeviceInfo;
import android.hardware.hdmi.HdmiPortInfo;
import android.hardware.hdmi.IHdmiControlCallback;
@@ -451,6 +452,39 @@ public class HdmiCecLocalDeviceAudioSystemTest {
.isTrue();
}
@Test
public void systemAudioModeMuting_enabled() {
mHdmiControlService.getHdmiCecConfig().setIntValue(
HdmiControlManager.CEC_SETTING_NAME_SYSTEM_AUDIO_MODE_MUTING,
HdmiControlManager.SYSTEM_AUDIO_MODE_MUTING_ENABLED);
mHdmiCecLocalDeviceAudioSystem.checkSupportAndSetSystemAudioMode(true);
assertThat(mHdmiCecLocalDeviceAudioSystem.isSystemAudioActivated()).isTrue();
assertThat(mHdmiControlService.getAudioManager().isStreamMute(
AudioManager.STREAM_MUSIC)).isFalse();
mHdmiCecLocalDeviceAudioSystem.checkSupportAndSetSystemAudioMode(false);
assertThat(mHdmiCecLocalDeviceAudioSystem.isSystemAudioActivated()).isFalse();
assertThat(mHdmiControlService.getAudioManager().isStreamMute(
AudioManager.STREAM_MUSIC)).isTrue();
}
@Test
public void systemAudioModeMuting_disabled() {
mHdmiControlService.getHdmiCecConfig().setIntValue(
HdmiControlManager.CEC_SETTING_NAME_SYSTEM_AUDIO_MODE_MUTING,
HdmiControlManager.SYSTEM_AUDIO_MODE_MUTING_DISABLED);
mHdmiCecLocalDeviceAudioSystem.checkSupportAndSetSystemAudioMode(true);
assertThat(mHdmiCecLocalDeviceAudioSystem.isSystemAudioActivated()).isTrue();
assertThat(mHdmiControlService.getAudioManager().isStreamMute(
AudioManager.STREAM_MUSIC)).isFalse();
mHdmiCecLocalDeviceAudioSystem.checkSupportAndSetSystemAudioMode(false);
assertThat(mHdmiCecLocalDeviceAudioSystem.isSystemAudioActivated()).isFalse();
assertThat(mHdmiControlService.getAudioManager().isStreamMute(
AudioManager.STREAM_MUSIC)).isFalse();
mHdmiControlService.getHdmiCecConfig().setIntValue(
HdmiControlManager.CEC_SETTING_NAME_SYSTEM_AUDIO_MODE_MUTING,
HdmiControlManager.SYSTEM_AUDIO_MODE_MUTING_ENABLED);
}
@Test
public void terminateSystemAudioMode_systemAudioModeOff() throws Exception {
mHdmiCecLocalDeviceAudioSystem.checkSupportAndSetSystemAudioMode(false);

View File

@@ -35,7 +35,6 @@ import android.os.Looper;
import android.os.PowerManager;
import android.os.test.TestLooper;
import android.platform.test.annotations.Presubmit;
import android.provider.Settings.Global;
import android.sysprop.HdmiProperties;
import android.view.KeyEvent;
@@ -116,16 +115,16 @@ public class HdmiCecLocalDevicePlaybackTest {
return false;
}
@Override
PowerManager getPowerManager() {
return powerManager;
}
@Override
PowerManager getPowerManager() {
return powerManager;
}
@Override
HdmiCecConfig getHdmiCecConfig() {
return hdmiCecConfig;
}
};
@Override
HdmiCecConfig getHdmiCecConfig() {
return hdmiCecConfig;
}
};
mHdmiCecLocalDevicePlayback = new HdmiCecLocalDevicePlayback(mHdmiControlService);
mHdmiCecLocalDevicePlayback.init();
@@ -283,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;
@@ -301,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;
@@ -320,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;
@@ -339,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;
@@ -353,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;
@@ -367,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;
@@ -382,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;
@@ -399,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;
@@ -418,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;
@@ -437,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;
@@ -451,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;
@@ -465,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;
@@ -536,8 +547,8 @@ public class HdmiCecLocalDevicePlaybackTest {
@Test
public void handleOnStandby_ScreenOff_NotActiveSource_ToTv() {
mHdmiCecLocalDevicePlayback.mService.writeStringSetting(
Global.HDMI_CONTROL_SEND_STANDBY_ON_SLEEP,
mHdmiCecLocalDevicePlayback.mService.getHdmiCecConfig().setStringValue(
HdmiControlManager.CEC_SETTING_NAME_SEND_STANDBY_ON_SLEEP,
HdmiControlManager.SEND_STANDBY_ON_SLEEP_TO_TV);
mHdmiCecLocalDevicePlayback.setActiveSource(ADDR_TV, 0x0000,
"HdmiCecLocalDevicePlaybackTest");
@@ -556,8 +567,8 @@ public class HdmiCecLocalDevicePlaybackTest {
@Test
public void handleOnStandby_ScreenOff_NotActiveSource_Broadcast() {
mHdmiCecLocalDevicePlayback.mService.writeStringSetting(
Global.HDMI_CONTROL_SEND_STANDBY_ON_SLEEP,
mHdmiCecLocalDevicePlayback.mService.getHdmiCecConfig().setStringValue(
HdmiControlManager.CEC_SETTING_NAME_SEND_STANDBY_ON_SLEEP,
HdmiControlManager.SEND_STANDBY_ON_SLEEP_BROADCAST);
mHdmiCecLocalDevicePlayback.setActiveSource(ADDR_TV, 0x0000,
"HdmiCecLocalDevicePlaybackTest");
@@ -576,8 +587,8 @@ public class HdmiCecLocalDevicePlaybackTest {
@Test
public void handleOnStandby_ScreenOff_NotActiveSource_None() {
mHdmiCecLocalDevicePlayback.mService.writeStringSetting(
Global.HDMI_CONTROL_SEND_STANDBY_ON_SLEEP,
mHdmiCecLocalDevicePlayback.mService.getHdmiCecConfig().setStringValue(
HdmiControlManager.CEC_SETTING_NAME_SEND_STANDBY_ON_SLEEP,
HdmiControlManager.SEND_STANDBY_ON_SLEEP_NONE);
mHdmiCecLocalDevicePlayback.setActiveSource(ADDR_TV, 0x0000,
"HdmiCecLocalDevicePlaybackTest");
@@ -596,8 +607,8 @@ public class HdmiCecLocalDevicePlaybackTest {
@Test
public void handleOnStandby_ScreenOff_ActiveSource_ToTv() {
mHdmiCecLocalDevicePlayback.mService.writeStringSetting(
Global.HDMI_CONTROL_SEND_STANDBY_ON_SLEEP,
mHdmiCecLocalDevicePlayback.mService.getHdmiCecConfig().setStringValue(
HdmiControlManager.CEC_SETTING_NAME_SEND_STANDBY_ON_SLEEP,
HdmiControlManager.SEND_STANDBY_ON_SLEEP_TO_TV);
mHdmiCecLocalDevicePlayback.setActiveSource(mPlaybackLogicalAddress,
mPlaybackPhysicalAddress, "HdmiCecLocalDevicePlaybackTest");
@@ -616,8 +627,8 @@ public class HdmiCecLocalDevicePlaybackTest {
@Test
public void handleOnStandby_ScreenOff_ActiveSource_Broadcast() {
mHdmiCecLocalDevicePlayback.mService.writeStringSetting(
Global.HDMI_CONTROL_SEND_STANDBY_ON_SLEEP,
mHdmiCecLocalDevicePlayback.mService.getHdmiCecConfig().setStringValue(
HdmiControlManager.CEC_SETTING_NAME_SEND_STANDBY_ON_SLEEP,
HdmiControlManager.SEND_STANDBY_ON_SLEEP_BROADCAST);
mHdmiCecLocalDevicePlayback.setActiveSource(mPlaybackLogicalAddress,
mPlaybackPhysicalAddress, "HdmiCecLocalDevicePlaybackTest");
@@ -636,8 +647,8 @@ public class HdmiCecLocalDevicePlaybackTest {
@Test
public void handleOnStandby_ScreenOff_ActiveSource_None() {
mHdmiCecLocalDevicePlayback.mService.writeStringSetting(
Global.HDMI_CONTROL_SEND_STANDBY_ON_SLEEP,
mHdmiCecLocalDevicePlayback.mService.getHdmiCecConfig().setStringValue(
HdmiControlManager.CEC_SETTING_NAME_SEND_STANDBY_ON_SLEEP,
HdmiControlManager.SEND_STANDBY_ON_SLEEP_NONE);
mHdmiCecLocalDevicePlayback.setActiveSource(mPlaybackLogicalAddress,
mPlaybackPhysicalAddress, "HdmiCecLocalDevicePlaybackTest");
@@ -741,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);
@@ -758,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();
@@ -774,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);
@@ -787,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();
@@ -1027,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;
@@ -1045,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;
@@ -1059,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;
@@ -1073,8 +1091,8 @@ public class HdmiCecLocalDevicePlaybackTest {
@Test
public void oneTouchPlay_SendStandbyOnSleepToTv() {
mHdmiCecLocalDevicePlayback.mService.writeStringSetting(
Global.HDMI_CONTROL_SEND_STANDBY_ON_SLEEP,
mHdmiCecLocalDevicePlayback.mService.getHdmiCecConfig().setStringValue(
HdmiControlManager.CEC_SETTING_NAME_SEND_STANDBY_ON_SLEEP,
HdmiControlManager.SEND_STANDBY_ON_SLEEP_TO_TV);
mHdmiControlService.oneTouchPlay(new IHdmiControlCallback.Stub() {
@Override
@@ -1096,8 +1114,8 @@ public class HdmiCecLocalDevicePlaybackTest {
@Test
public void oneTouchPlay_SendStandbyOnSleepBroadcast() {
mHdmiCecLocalDevicePlayback.mService.writeStringSetting(
Global.HDMI_CONTROL_SEND_STANDBY_ON_SLEEP,
mHdmiCecLocalDevicePlayback.mService.getHdmiCecConfig().setStringValue(
HdmiControlManager.CEC_SETTING_NAME_SEND_STANDBY_ON_SLEEP,
HdmiControlManager.SEND_STANDBY_ON_SLEEP_BROADCAST);
mHdmiControlService.oneTouchPlay(new IHdmiControlCallback.Stub() {
@Override
@@ -1119,8 +1137,8 @@ public class HdmiCecLocalDevicePlaybackTest {
@Test
public void oneTouchPlay_SendStandbyOnSleepNone() {
mHdmiCecLocalDevicePlayback.mService.writeStringSetting(
Global.HDMI_CONTROL_SEND_STANDBY_ON_SLEEP,
mHdmiCecLocalDevicePlayback.mService.getHdmiCecConfig().setStringValue(
HdmiControlManager.CEC_SETTING_NAME_SEND_STANDBY_ON_SLEEP,
HdmiControlManager.SEND_STANDBY_ON_SLEEP_NONE);
mHdmiControlService.oneTouchPlay(new IHdmiControlCallback.Stub() {
@Override