Merge changes from topic "SendStandbyOnSleepSharedPrefs"

* changes:
  [CEC Configuration] Switch POWER_CONTROL_MODE to Shared Preferences
  [CEC Configuration] Switch TV_WAKE_ON_ONE_TOUCH_PLAY to SharedPrefs
  [CEC Configuration] Switch HDMI_SYSTEM_AUDIO_CONTROL_ENABLED to SharefPrefs
  [CEC Configuration] Switch VOLUME_CONTROL_MODE to Shared Preferences
  [CEC Configuration] Switch ROUTING_CONTROL setting to SharedPrefs
This commit is contained in:
Michal Olech
2021-10-11 12:47:54 +00:00
committed by Android (Google) Code Review
5 changed files with 10 additions and 148 deletions

View File

@@ -11049,75 +11049,6 @@ public final class Settings {
@Readable
public static final String HDMI_CONTROL_ENABLED = "hdmi_control_enabled";
/**
* Controls whether volume control commands via HDMI CEC are enabled. (0 = false, 1 =
* true).
*
* <p>Effects on different device types:
* <table>
* <tr><th>HDMI CEC device type</th><th>0: disabled</th><th>1: enabled</th></tr>
* <tr>
* <td>TV (type: 0)</td>
* <td>Per CEC specification.</td>
* <td>TV changes system volume. TV no longer reacts to incoming volume changes
* via {@code <User Control Pressed>}. TV no longer handles {@code <Report Audio
* Status>}.</td>
* </tr>
* <tr>
* <td>Playback device (type: 4)</td>
* <td>Device sends volume commands to TV/Audio system via {@code <User Control
* Pressed>}</td>
* <td>Device does not send volume commands via {@code <User Control Pressed>}.</td>
* </tr>
* <tr>
* <td>Audio device (type: 5)</td>
* <td>Full "System Audio Control" capabilities.</td>
* <td>Audio device no longer reacts to incoming {@code <User Control Pressed>}
* volume commands. Audio device no longer reports volume changes via {@code
* <Report Audio Status>}.</td>
* </tr>
* </table>
*
* <p> Due to the resulting behavior, usage on TV and Audio devices is discouraged.
*
* @hide
* @see android.hardware.hdmi.HdmiControlManager#setHdmiCecVolumeControlEnabled(boolean)
*/
@Readable
public static final String HDMI_CONTROL_VOLUME_CONTROL_ENABLED =
"hdmi_control_volume_control_enabled";
/**
* Whether HDMI System Audio Control feature is enabled. If enabled, TV will try to turn on
* system audio mode if there's a connected CEC-enabled AV Receiver. Then audio stream will
* be played on AVR instead of TV spaeker. If disabled, the system audio mode will never be
* activated.
* @hide
*/
@Readable
public static final String HDMI_SYSTEM_AUDIO_CONTROL_ENABLED =
"hdmi_system_audio_control_enabled";
/**
* Whether HDMI Routing Control feature is enabled. If enabled, the switch device will
* route to the correct input source on receiving Routing Control related messages. If
* disabled, you can only switch the input via controls on this device.
* @hide
*/
@Readable
public static final String HDMI_CEC_SWITCH_ENABLED =
"hdmi_cec_switch_enabled";
/**
* Whether TV will automatically turn on upon reception of the CEC command
* &lt;Text View On&gt; or &lt;Image View On&gt;. (0 = false, 1 = true)
*
* @hide
*/
@Readable
public static final String HDMI_CONTROL_AUTO_WAKEUP_ENABLED =
"hdmi_control_auto_wakeup_enabled";
/**
* Whether TV will also turn off other CEC devices when it goes to standby mode.
* (0 = false, 1 = true)
@@ -11128,30 +11059,6 @@ public final class Settings {
public static final String HDMI_CONTROL_AUTO_DEVICE_OFF_ENABLED =
"hdmi_control_auto_device_off_enabled";
/**
* Property to decide which devices the playback device can send a <Standby> message to
* upon going to sleep. It additionally controls whether a playback device attempts to turn
* on the connected Audio system when waking up. Supported values are:
* <ul>
* <li>{@link HdmiControlManager#POWER_CONTROL_MODE_TV} Upon going to sleep, device
* sends {@code <Standby>} to TV only. Upon waking up, device does not turn on the Audio
* system via {@code <System Audio Mode Request>}.</li>
* <li>{@link HdmiControlManager#POWER_CONTROL_MODE_TV_AND_AUDIO_SYSTEM} Upon going to
* sleep, sends {@code <Standby>} to TV and Audio system. Upon waking up, device attempts
* to turn on the Audio system via {@code <System Audio Mode Request>}.</li>
* <li>{@link HdmiControlManager#POWER_CONTROL_MODE_BROADCAST} Upon going to sleep,
* device sends {@code <Standby>} to all devices in the network. Upon waking up, device
* attempts to turn on the Audio system via {@code <System Audio Mode Request>}.</li>
* <li>{@link HdmiControlManager#POWER_CONTROL_MODE_NONE} Upon going to sleep, device
* does not send any {@code <Standby>} message. Upon waking up, device does not turn on the
* Audio system via {@code <System Audio Mode Request>}.</li>
* </ul>
*
* @hide
*/
public static final String HDMI_CONTROL_SEND_STANDBY_ON_SLEEP =
"hdmi_control_send_standby_on_sleep";
/**
* Whether or not media is shown automatically when bypassing as a heads up.
* @hide

View File

@@ -804,12 +804,6 @@ class SettingsProtoDumpUtil {
dumpSetting(s, p,
Settings.Global.HDMI_CONTROL_ENABLED,
GlobalSettingsProto.Hdmi.CONTROL_ENABLED);
dumpSetting(s, p,
Settings.Global.HDMI_SYSTEM_AUDIO_CONTROL_ENABLED,
GlobalSettingsProto.Hdmi.SYSTEM_AUDIO_CONTROL_ENABLED);
dumpSetting(s, p,
Settings.Global.HDMI_CONTROL_AUTO_WAKEUP_ENABLED,
GlobalSettingsProto.Hdmi.CONTROL_AUTO_WAKEUP_ENABLED);
dumpSetting(s, p,
Settings.Global.HDMI_CONTROL_AUTO_DEVICE_OFF_ENABLED,
GlobalSettingsProto.Hdmi.CONTROL_AUTO_DEVICE_OFF_ENABLED);

View File

@@ -299,13 +299,8 @@ public class SettingsBackupTest {
Settings.Global.GNSS_HAL_LOCATION_REQUEST_DURATION_MILLIS,
Settings.Global.GNSS_SATELLITE_BLOCKLIST,
Settings.Global.GPRS_REGISTER_CHECK_PERIOD_MS,
Settings.Global.HDMI_CEC_SWITCH_ENABLED,
Settings.Global.HDMI_CONTROL_AUTO_DEVICE_OFF_ENABLED,
Settings.Global.HDMI_CONTROL_AUTO_WAKEUP_ENABLED,
Settings.Global.HDMI_CONTROL_ENABLED,
Settings.Global.HDMI_CONTROL_SEND_STANDBY_ON_SLEEP,
Settings.Global.HDMI_CONTROL_VOLUME_CONTROL_ENABLED,
Settings.Global.HDMI_SYSTEM_AUDIO_CONTROL_ENABLED,
Settings.Global.HEADS_UP_NOTIFICATIONS_ENABLED,
Settings.Global.HIDDEN_API_POLICY,
Settings.Global.FORCE_NON_DEBUGGABLE_FINAL_BUILD_FOR_COMPAT,

View File

@@ -522,19 +522,19 @@ public class HdmiCecConfig {
case HdmiControlManager.CEC_SETTING_NAME_HDMI_CEC_VERSION:
return STORAGE_SHARED_PREFS;
case HdmiControlManager.CEC_SETTING_NAME_ROUTING_CONTROL:
return STORAGE_GLOBAL_SETTINGS;
return STORAGE_SHARED_PREFS;
case HdmiControlManager.CEC_SETTING_NAME_POWER_CONTROL_MODE:
return STORAGE_GLOBAL_SETTINGS;
return STORAGE_SHARED_PREFS;
case HdmiControlManager.CEC_SETTING_NAME_VOLUME_CONTROL_MODE:
return STORAGE_GLOBAL_SETTINGS;
return STORAGE_SHARED_PREFS;
case HdmiControlManager.CEC_SETTING_NAME_POWER_STATE_CHANGE_ON_ACTIVE_SOURCE_LOST:
return STORAGE_SHARED_PREFS;
case HdmiControlManager.CEC_SETTING_NAME_SYSTEM_AUDIO_CONTROL:
return STORAGE_GLOBAL_SETTINGS;
return STORAGE_SHARED_PREFS;
case HdmiControlManager.CEC_SETTING_NAME_SYSTEM_AUDIO_MODE_MUTING:
return STORAGE_SHARED_PREFS;
case HdmiControlManager.CEC_SETTING_NAME_TV_WAKE_ON_ONE_TOUCH_PLAY:
return STORAGE_GLOBAL_SETTINGS;
return STORAGE_SHARED_PREFS;
case HdmiControlManager.CEC_SETTING_NAME_TV_SEND_STANDBY_ON_SLEEP:
return STORAGE_GLOBAL_SETTINGS;
case HdmiControlManager.CEC_SETTING_NAME_RC_PROFILE_TV:
@@ -563,19 +563,19 @@ public class HdmiCecConfig {
case HdmiControlManager.CEC_SETTING_NAME_HDMI_CEC_VERSION:
return setting.getName();
case HdmiControlManager.CEC_SETTING_NAME_ROUTING_CONTROL:
return Global.HDMI_CEC_SWITCH_ENABLED;
return setting.getName();
case HdmiControlManager.CEC_SETTING_NAME_POWER_CONTROL_MODE:
return Global.HDMI_CONTROL_SEND_STANDBY_ON_SLEEP;
return setting.getName();
case HdmiControlManager.CEC_SETTING_NAME_VOLUME_CONTROL_MODE:
return Global.HDMI_CONTROL_VOLUME_CONTROL_ENABLED;
return setting.getName();
case HdmiControlManager.CEC_SETTING_NAME_POWER_STATE_CHANGE_ON_ACTIVE_SOURCE_LOST:
return setting.getName();
case HdmiControlManager.CEC_SETTING_NAME_SYSTEM_AUDIO_CONTROL:
return Global.HDMI_SYSTEM_AUDIO_CONTROL_ENABLED;
return setting.getName();
case HdmiControlManager.CEC_SETTING_NAME_SYSTEM_AUDIO_MODE_MUTING:
return setting.getName();
case HdmiControlManager.CEC_SETTING_NAME_TV_WAKE_ON_ONE_TOUCH_PLAY:
return Global.HDMI_CONTROL_AUTO_WAKEUP_ENABLED;
return setting.getName();
case HdmiControlManager.CEC_SETTING_NAME_TV_SEND_STANDBY_ON_SLEEP:
return Global.HDMI_CONTROL_AUTO_DEVICE_OFF_ENABLED;
case HdmiControlManager.CEC_SETTING_NAME_RC_PROFILE_TV:
@@ -634,15 +634,6 @@ public class HdmiCecConfig {
case Global.HDMI_CONTROL_ENABLED:
notifySettingChanged(HdmiControlManager.CEC_SETTING_NAME_HDMI_CEC_ENABLED);
break;
case Global.HDMI_CONTROL_SEND_STANDBY_ON_SLEEP:
notifySettingChanged(HdmiControlManager.CEC_SETTING_NAME_POWER_CONTROL_MODE);
break;
case Global.HDMI_CONTROL_VOLUME_CONTROL_ENABLED:
notifySettingChanged(HdmiControlManager.CEC_SETTING_NAME_VOLUME_CONTROL_MODE);
break;
case Global.HDMI_CONTROL_AUTO_WAKEUP_ENABLED:
notifySettingChanged(HdmiControlManager.CEC_SETTING_NAME_TV_WAKE_ON_ONE_TOUCH_PLAY);
break;
case Global.HDMI_CONTROL_AUTO_DEVICE_OFF_ENABLED:
notifySettingChanged(HdmiControlManager.CEC_SETTING_NAME_TV_SEND_STANDBY_ON_SLEEP);
break;
@@ -687,9 +678,6 @@ public class HdmiCecConfig {
ContentResolver resolver = mContext.getContentResolver();
String[] settings = new String[] {
Global.HDMI_CONTROL_ENABLED,
Global.HDMI_CONTROL_SEND_STANDBY_ON_SLEEP,
Global.HDMI_CONTROL_VOLUME_CONTROL_ENABLED,
Global.HDMI_CONTROL_AUTO_WAKEUP_ENABLED,
Global.HDMI_CONTROL_AUTO_DEVICE_OFF_ENABLED,
};
for (String setting: settings) {

View File

@@ -338,18 +338,6 @@ public final class HdmiCecConfigTest {
HdmiControlManager.CEC_SETTING_NAME_HDMI_CEC_ENABLED));
}
@Test
public void getStringValue_GlobalSetting_BasicSanity() {
when(mStorageAdapter.retrieveGlobalSetting(
Global.HDMI_CONTROL_SEND_STANDBY_ON_SLEEP,
HdmiControlManager.POWER_CONTROL_MODE_TV_AND_AUDIO_SYSTEM))
.thenReturn(HdmiControlManager.POWER_CONTROL_MODE_BROADCAST);
HdmiCecConfig hdmiCecConfig = new HdmiCecConfig(mContext, mStorageAdapter);
assertThat(hdmiCecConfig.getStringValue(
HdmiControlManager.CEC_SETTING_NAME_POWER_CONTROL_MODE))
.isEqualTo(HdmiControlManager.POWER_CONTROL_MODE_BROADCAST);
}
@Test
public void getStringValue_SharedPref_BasicSanity() {
when(mStorageAdapter.retrieveSharedPref(
@@ -428,16 +416,6 @@ public final class HdmiCecConfigTest {
"bar"));
}
@Test
public void setStringValue_GlobalSetting_BasicSanity() {
HdmiCecConfig hdmiCecConfig = new HdmiCecConfig(mContext, mStorageAdapter);
hdmiCecConfig.setStringValue(HdmiControlManager.CEC_SETTING_NAME_POWER_CONTROL_MODE,
HdmiControlManager.POWER_CONTROL_MODE_BROADCAST);
verify(mStorageAdapter).storeGlobalSetting(
Global.HDMI_CONTROL_SEND_STANDBY_ON_SLEEP,
HdmiControlManager.POWER_CONTROL_MODE_BROADCAST);
}
@Test
public void setStringValue_SharedPref_BasicSanity() {
HdmiCecConfig hdmiCecConfig = new HdmiCecConfig(mContext, mStorageAdapter);