From 3bbf6c4bc02f0a754bfa5dedd251824cd8267ff1 Mon Sep 17 00:00:00 2001 From: "daren.liao" Date: Wed, 30 Dec 2020 11:21:12 +0800 Subject: [PATCH] DO NOT MERGE Fix CEC read Global Setting timing [Description] When UI enables 2 CEC options right after enable CEC TV will read the wrong value, and failed to update value before TV is ready. We should read the setting again after TV is ready. Bug: 176708541 Test: Toggle HDMI control settings 10 times PASS Change-Id: I0e8eaefe3839873c4af476d47bdb1295711d5967 --- .../java/com/android/server/hdmi/HdmiControlService.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/services/core/java/com/android/server/hdmi/HdmiControlService.java b/services/core/java/com/android/server/hdmi/HdmiControlService.java index e2145f077a903..f92679a925244 100644 --- a/services/core/java/com/android/server/hdmi/HdmiControlService.java +++ b/services/core/java/com/android/server/hdmi/HdmiControlService.java @@ -619,7 +619,14 @@ public class HdmiControlService extends SystemService { mWakeUpMessageReceived = false; if (isTvDeviceEnabled()) { - mCecController.setOption(OptionKey.WAKEUP, tv().getAutoWakeup()); + boolean autoWakeupEnabled = + readBooleanSetting(Global.HDMI_CONTROL_AUTO_WAKEUP_ENABLED, true); + boolean autoDeviceOffEnabled = + readBooleanSetting(Global.HDMI_CONTROL_AUTO_DEVICE_OFF_ENABLED, true); + + mCecController.setOption(OptionKey.WAKEUP, autoWakeupEnabled); + tv().setAutoWakeup(autoWakeupEnabled); + tv().setAutoDeviceOff(autoDeviceOffEnabled); } int reason = -1; switch (initiatedBy) {