From 1f8d1c576f06ed63c21d175fb0c86db596f59353 Mon Sep 17 00:00:00 2001 From: Jinsuk Kim Date: Tue, 12 Aug 2014 15:39:53 +0900 Subject: [PATCH] CEC: Fix two bugs - goes out with invalid parameter (F.F.F.F) for old path if the active source/path is not set. Should have been set to internal path (0.0.0.0) - was still sent when active source was not set. Fixed to discard it. Bug: 16966486 Bug: 16965446 Change-Id: I5abb062be42c17514b3ed7ac930d7a3535fc9132 --- .../java/com/android/server/hdmi/HdmiCecLocalDeviceTv.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/services/core/java/com/android/server/hdmi/HdmiCecLocalDeviceTv.java b/services/core/java/com/android/server/hdmi/HdmiCecLocalDeviceTv.java index 4810650e35999..334107ee3bfd0 100644 --- a/services/core/java/com/android/server/hdmi/HdmiCecLocalDeviceTv.java +++ b/services/core/java/com/android/server/hdmi/HdmiCecLocalDeviceTv.java @@ -309,7 +309,8 @@ final class HdmiCecLocalDeviceTv extends HdmiCecLocalDevice { // TODO: Return immediately if the operation is triggered by // and this is the first notification about the active input after power-on // (switch to HDMI didn't happen so far but is expected to happen soon). - int oldPath = mService.portIdToPath(getActivePortId()); + int oldPath = getActivePortId() != Constants.INVALID_PORT_ID + ? mService.portIdToPath(getActivePortId()) : getDeviceInfo().getPhysicalAddress(); int newPath = mService.portIdToPath(portId); HdmiCecMessage routingChange = HdmiCecMessageBuilder.buildRoutingChange(mAddress, oldPath, newPath); @@ -336,11 +337,11 @@ final class HdmiCecLocalDeviceTv extends HdmiCecLocalDevice { if (!action.isEmpty()) { action.get(0).processKeyEvent(keyCode, isPressed); } else { - if (isPressed) { + if (isPressed && getActiveSource().isValid()) { int logicalAddress = getActiveSource().logicalAddress; addAndStartAction(new SendKeyAction(this, logicalAddress, keyCode)); } else { - Slog.w(TAG, "Discard key release event"); + Slog.w(TAG, "Discard key event: " + keyCode + " pressed:" + isPressed); } } }