Only send <Standby> to TV on sleep when active source
Test: make, flash, let device go to sleep due to keycode_power and
energy saver mode, verify that <Standby> is only sent when mIsActiveSource is true.
Bug: 155228844
Change-Id: Ie62d60e8c4fa573aac6c08a4c1093d5f1a52d7f3
diff --git a/services/core/java/com/android/server/hdmi/HdmiCecLocalDevicePlayback.java b/services/core/java/com/android/server/hdmi/HdmiCecLocalDevicePlayback.java
index 1810963..67861c2 100644
--- a/services/core/java/com/android/server/hdmi/HdmiCecLocalDevicePlayback.java
+++ b/services/core/java/com/android/server/hdmi/HdmiCecLocalDevicePlayback.java
@@ -163,12 +163,13 @@
}
if (mIsActiveSource) {
mService.sendCecCommand(HdmiCecMessageBuilder.buildInactiveSource(
- mAddress, mService.getPhysicalAddress()));
+ mAddress, mService.getPhysicalAddress()));
}
+ boolean wasActiveSource = mIsActiveSource;
// Invalidate the internal active source record when goes to standby
// This set will also update mIsActiveSource
mService.setActiveSource(Constants.ADDR_INVALID, Constants.INVALID_PHYSICAL_ADDRESS);
- if (initiatedByCec || !mAutoTvOff) {
+ if (initiatedByCec || !mAutoTvOff || !wasActiveSource) {
return;
}
switch (standbyAction) {