diff --git a/core/java/android/hardware/hdmi/HdmiControlManager.java b/core/java/android/hardware/hdmi/HdmiControlManager.java index dac1b494e7510..0a5496e47fddb 100644 --- a/core/java/android/hardware/hdmi/HdmiControlManager.java +++ b/core/java/android/hardware/hdmi/HdmiControlManager.java @@ -1422,7 +1422,8 @@ public final class HdmiControlManager { * Called when HDMI Control (CEC) is enabled/disabled. * * @param isCecEnabled status of HDMI Control - * {@link android.provider.Settings.Global#HDMI_CONTROL_ENABLED}: {@code true} if enabled. + * {@link android.hardware.hdmi.HdmiControlManager#CEC_SETTING_NAME_HDMI_CEC_ENABLED}: + * {@code HDMI_CEC_CONTROL_ENABLED} if enabled. * @param isCecAvailable status of CEC support of the connected display (the TV). * {@code true} if supported. * diff --git a/core/java/android/provider/Settings.java b/core/java/android/provider/Settings.java index dc6e647c2c22a..2fb318a6c8eb3 100644 --- a/core/java/android/provider/Settings.java +++ b/core/java/android/provider/Settings.java @@ -11049,14 +11049,6 @@ public final class Settings { @Deprecated public static final String INSTALL_NON_MARKET_APPS = Secure.INSTALL_NON_MARKET_APPS; - /** - * Whether HDMI control shall be enabled. If disabled, no CEC/MHL command will be - * sent or processed. (0 = false, 1 = true) - * @hide - */ - @Readable - public static final String HDMI_CONTROL_ENABLED = "hdmi_control_enabled"; - /** * Whether TV will also turn off other CEC devices when it goes to standby mode. * (0 = false, 1 = true) diff --git a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProtoDumpUtil.java b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProtoDumpUtil.java index cbee9827cefa0..178b42d744771 100644 --- a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProtoDumpUtil.java +++ b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProtoDumpUtil.java @@ -801,9 +801,6 @@ class SettingsProtoDumpUtil { p.end(gpuToken); final long hdmiToken = p.start(GlobalSettingsProto.HDMI); - dumpSetting(s, p, - Settings.Global.HDMI_CONTROL_ENABLED, - GlobalSettingsProto.Hdmi.CONTROL_ENABLED); dumpSetting(s, p, Settings.Global.HDMI_CONTROL_AUTO_DEVICE_OFF_ENABLED, GlobalSettingsProto.Hdmi.CONTROL_AUTO_DEVICE_OFF_ENABLED); diff --git a/packages/SettingsProvider/test/src/android/provider/SettingsBackupTest.java b/packages/SettingsProvider/test/src/android/provider/SettingsBackupTest.java index 3c700dca70e2d..0f5f066223582 100644 --- a/packages/SettingsProvider/test/src/android/provider/SettingsBackupTest.java +++ b/packages/SettingsProvider/test/src/android/provider/SettingsBackupTest.java @@ -300,7 +300,6 @@ public class SettingsBackupTest { Settings.Global.GNSS_SATELLITE_BLOCKLIST, Settings.Global.GPRS_REGISTER_CHECK_PERIOD_MS, Settings.Global.HDMI_CONTROL_AUTO_DEVICE_OFF_ENABLED, - Settings.Global.HDMI_CONTROL_ENABLED, Settings.Global.HEADS_UP_NOTIFICATIONS_ENABLED, Settings.Global.HIDDEN_API_POLICY, Settings.Global.FORCE_NON_DEBUGGABLE_FINAL_BUILD_FOR_COMPAT, diff --git a/services/core/java/com/android/server/hdmi/HdmiCecConfig.java b/services/core/java/com/android/server/hdmi/HdmiCecConfig.java index cf8cc38bd188d..b118fff4d1c3b 100644 --- a/services/core/java/com/android/server/hdmi/HdmiCecConfig.java +++ b/services/core/java/com/android/server/hdmi/HdmiCecConfig.java @@ -518,7 +518,7 @@ public class HdmiCecConfig { private int getStorage(@NonNull Setting setting) { switch (setting.getName()) { case HdmiControlManager.CEC_SETTING_NAME_HDMI_CEC_ENABLED: - return STORAGE_GLOBAL_SETTINGS; + return STORAGE_SHARED_PREFS; case HdmiControlManager.CEC_SETTING_NAME_HDMI_CEC_VERSION: return STORAGE_SHARED_PREFS; case HdmiControlManager.CEC_SETTING_NAME_ROUTING_CONTROL: @@ -559,7 +559,7 @@ public class HdmiCecConfig { private String getStorageKey(@NonNull Setting setting) { switch (setting.getName()) { case HdmiControlManager.CEC_SETTING_NAME_HDMI_CEC_ENABLED: - return Global.HDMI_CONTROL_ENABLED; + return setting.getName(); case HdmiControlManager.CEC_SETTING_NAME_HDMI_CEC_VERSION: return setting.getName(); case HdmiControlManager.CEC_SETTING_NAME_ROUTING_CONTROL: @@ -631,9 +631,6 @@ public class HdmiCecConfig { private void notifyGlobalSettingChanged(String setting) { switch (setting) { - case Global.HDMI_CONTROL_ENABLED: - notifySettingChanged(HdmiControlManager.CEC_SETTING_NAME_HDMI_CEC_ENABLED); - break; case Global.HDMI_CONTROL_AUTO_DEVICE_OFF_ENABLED: notifySettingChanged(HdmiControlManager.CEC_SETTING_NAME_TV_SEND_STANDBY_ON_SLEEP); break; @@ -677,7 +674,6 @@ public class HdmiCecConfig { mSettingsObserver = new SettingsObserver(handler); ContentResolver resolver = mContext.getContentResolver(); String[] settings = new String[] { - Global.HDMI_CONTROL_ENABLED, Global.HDMI_CONTROL_AUTO_DEVICE_OFF_ENABLED, }; for (String setting: settings) { 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 c1d9857e23d79..f30750665e2d9 100644 --- a/services/tests/servicestests/src/com/android/server/hdmi/HdmiCecConfigTest.java +++ b/services/tests/servicestests/src/com/android/server/hdmi/HdmiCecConfigTest.java @@ -18,7 +18,6 @@ package com.android.server.hdmi; import static com.google.common.truth.Truth.assertThat; import static junit.framework.Assert.assertTrue; -import static junit.framework.Assert.fail; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.never; @@ -26,13 +25,11 @@ import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import static org.testng.Assert.assertThrows; -import android.annotation.NonNull; import android.content.Context; import android.content.res.Resources; import android.hardware.hdmi.HdmiControlManager; import android.os.test.TestLooper; import android.platform.test.annotations.Presubmit; -import android.provider.Settings.Global; import androidx.test.InstrumentationRegistry; import androidx.test.filters.SmallTest; @@ -40,16 +37,12 @@ import androidx.test.filters.SmallTest; import com.android.internal.R; import org.junit.Before; -import org.junit.Ignore; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.JUnit4; import org.mockito.Mock; import org.mockito.MockitoAnnotations; -import java.util.concurrent.CountDownLatch; -import java.util.concurrent.TimeUnit; - @SmallTest @Presubmit @RunWith(JUnit4.class) @@ -366,18 +359,6 @@ public final class HdmiCecConfigTest { HdmiControlManager.CEC_SETTING_NAME_POWER_CONTROL_MODE)); } - @Test - public void getIntValue_GlobalSetting_BasicSanity() { - when(mStorageAdapter.retrieveGlobalSetting( - Global.HDMI_CONTROL_ENABLED, - Integer.toString(HdmiControlManager.HDMI_CEC_CONTROL_ENABLED))) - .thenReturn(Integer.toString(HdmiControlManager.HDMI_CEC_CONTROL_DISABLED)); - HdmiCecConfig hdmiCecConfig = new HdmiCecConfig(mContext, mStorageAdapter); - assertThat(hdmiCecConfig.getIntValue( - HdmiControlManager.CEC_SETTING_NAME_HDMI_CEC_ENABLED)) - .isEqualTo(HdmiControlManager.HDMI_CEC_CONTROL_DISABLED); - } - @Test public void getIntValue_SharedPref_BasicSanity() { when(mStorageAdapter.retrieveSharedPref( @@ -453,16 +434,6 @@ public final class HdmiCecConfigTest { 123)); } - @Test - public void setIntValue_GlobalSetting_BasicSanity() { - HdmiCecConfig hdmiCecConfig = new HdmiCecConfig(mContext, mStorageAdapter); - hdmiCecConfig.setIntValue(HdmiControlManager.CEC_SETTING_NAME_HDMI_CEC_ENABLED, - HdmiControlManager.HDMI_CEC_CONTROL_DISABLED); - verify(mStorageAdapter).storeGlobalSetting( - Global.HDMI_CONTROL_ENABLED, - Integer.toString(HdmiControlManager.HDMI_CEC_CONTROL_DISABLED)); - } - @Test public void setIntValue_SharedPref_BasicSanity() { HdmiCecConfig hdmiCecConfig = new HdmiCecConfig(mContext, mStorageAdapter); @@ -502,51 +473,4 @@ public final class HdmiCecConfigTest { verify(mSettingChangeListener, never()).onChange( HdmiControlManager.CEC_SETTING_NAME_SYSTEM_AUDIO_MODE_MUTING); } - - /** - * Externally modified Global Settings still need to be supported. This test verifies that - * setting change notification is being forwarded to listeners registered via HdmiCecConfig. - */ - @Test - @Ignore("b/175381065") - public void globalSettingObserver_BasicSanity() throws Exception { - CountDownLatch notifyLatch = new CountDownLatch(1); - // Get current value of the setting in the system. - String originalValue = Global.getString(mContext.getContentResolver(), - Global.HDMI_CONTROL_ENABLED); - try { - HdmiCecConfig hdmiCecConfig = new HdmiCecConfig(mContext, mStorageAdapter); - hdmiCecConfig.registerGlobalSettingsObserver(mTestLooper.getLooper()); - HdmiCecConfig.SettingChangeListener latchUpdateListener = - new HdmiCecConfig.SettingChangeListener() { - @Override - public void onChange( - @NonNull @HdmiControlManager.CecSettingName String setting) { - notifyLatch.countDown(); - assertThat(setting).isEqualTo( - HdmiControlManager.CEC_SETTING_NAME_HDMI_CEC_ENABLED); - } - }; - hdmiCecConfig.registerChangeListener( - HdmiControlManager.CEC_SETTING_NAME_HDMI_CEC_ENABLED, - latchUpdateListener); - - // Flip the value of the setting. - String valueToSet = ((originalValue == null || originalValue.equals("1")) ? "0" : "1"); - Global.putString(mContext.getContentResolver(), Global.HDMI_CONTROL_ENABLED, - valueToSet); - assertThat(Global.getString(mContext.getContentResolver(), - Global.HDMI_CONTROL_ENABLED)).isEqualTo(valueToSet); - mTestLooper.dispatchAll(); - - if (!notifyLatch.await(TIMEOUT_CONTENT_CHANGE_SEC, TimeUnit.SECONDS)) { - fail("Timed out waiting for the notify callback"); - } - hdmiCecConfig.unregisterGlobalSettingsObserver(); - } finally { - // Restore the previous value of the setting in the system. - Global.putString(mContext.getContentResolver(), Global.HDMI_CONTROL_ENABLED, - originalValue); - } - } }