cec: Reset system audio mode status carefully [2/2]
PD#OTT-40245
BUG=266766058
Problem:
When there is a transmission error with <GIVE SYSTEM
AUDIO MODE STATUS> caused by cec busyness, playback
could reset the audio mode status and does not send
volume keyevents to the audio system then.
Solution:
Reset system audio mode status only with error NACK,
which means the target device is not connected.
Verify:
Walmart
Test: presubmits
Change-Id: Ife26b2251f40ee11cdbc86fe0797d29a74fb9be5
Signed-off-by: an.xi <an.xi@amlogic.com>
diff --git a/services/core/java/com/android/server/hdmi/HdmiCecLocalDevicePlayback.java b/services/core/java/com/android/server/hdmi/HdmiCecLocalDevicePlayback.java
index 576a5ff..72895e3 100644
--- a/services/core/java/com/android/server/hdmi/HdmiCecLocalDevicePlayback.java
+++ b/services/core/java/com/android/server/hdmi/HdmiCecLocalDevicePlayback.java
@@ -110,7 +110,8 @@
new SendMessageCallback() {
@Override
public void onSendCompleted(int error) {
- if (error != SendMessageResult.SUCCESS) {
+ // In consideration of occasional transmission failures.
+ if (error == SendMessageResult.NACK) {
HdmiLogger.debug(
"AVR did not respond to <Give System Audio Mode Status>");
mService.setSystemAudioActivated(false);