From 2ab6d9fff36836c71bc0ee4afa25c11b48a9bd99 Mon Sep 17 00:00:00 2001 From: Jinsuk Kim Date: Fri, 16 Jan 2015 15:49:16 +0900 Subject: CEC: Do not send when TV wakes up by one touch play TV should respect the device that wakes up TV by one touch play to keep its active source status by not sending . Bug: 19039773 Change-Id: I0b27e95dcf986df90b25cc2a1891acd82940f13e --- .../core/java/com/android/server/hdmi/DelayedMessageBuffer.java | 9 +++++++++ .../core/java/com/android/server/hdmi/HdmiCecLocalDeviceTv.java | 3 ++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/services/core/java/com/android/server/hdmi/DelayedMessageBuffer.java b/services/core/java/com/android/server/hdmi/DelayedMessageBuffer.java index c908145a6c72..77ffe0b5246a 100644 --- a/services/core/java/com/android/server/hdmi/DelayedMessageBuffer.java +++ b/services/core/java/com/android/server/hdmi/DelayedMessageBuffer.java @@ -76,6 +76,15 @@ final class DelayedMessageBuffer { } } + boolean isBuffered(int opcode) { + for (HdmiCecMessage message : mBuffer) { + if (message.getOpcode() == opcode) { + return true; + } + } + return false; + } + void processAllMessages() { // Use the copied buffer. ArrayList copiedBuffer = new ArrayList(mBuffer); diff --git a/services/core/java/com/android/server/hdmi/HdmiCecLocalDeviceTv.java b/services/core/java/com/android/server/hdmi/HdmiCecLocalDeviceTv.java index a8941619dc2d..7f2f5a926ed6 100644 --- a/services/core/java/com/android/server/hdmi/HdmiCecLocalDeviceTv.java +++ b/services/core/java/com/android/server/hdmi/HdmiCecLocalDeviceTv.java @@ -1427,7 +1427,8 @@ final class HdmiCecLocalDeviceTv extends HdmiCecLocalDevice { } else { int activePath = mService.getPhysicalAddress(); setActivePath(activePath); - if (!routingForBootup) { + if (!routingForBootup + && !mDelayedMessageBuffer.isBuffered(Constants.MESSAGE_ACTIVE_SOURCE)) { mService.sendCecCommand(HdmiCecMessageBuilder.buildActiveSource(mAddress, activePath)); } -- cgit v1.2.3-59-g8ed1b