From 867b4e0c55b4b1e432a3585fc945a999f066ef81 Mon Sep 17 00:00:00 2001 From: Jungshik Jang Date: Tue, 12 Aug 2014 13:41:30 +0900 Subject: [PATCH] Set active port path to HdmiControlService Set active port path to HdmiControlService so that the service can handle proper event patch between cec and mhl devices. Bug: 16215362 Change-Id: I2bd703916a422429b1029067fa3422e24de39274 --- .../java/com/android/server/hdmi/HdmiCecLocalDevice.java | 9 ++++----- .../java/com/android/server/hdmi/HdmiControlService.java | 9 +++++++++ 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/services/core/java/com/android/server/hdmi/HdmiCecLocalDevice.java b/services/core/java/com/android/server/hdmi/HdmiCecLocalDevice.java index b0c1a8aaf3b60..b894fd7a08b0a 100644 --- a/services/core/java/com/android/server/hdmi/HdmiCecLocalDevice.java +++ b/services/core/java/com/android/server/hdmi/HdmiCecLocalDevice.java @@ -631,6 +631,7 @@ abstract class HdmiCecLocalDevice { synchronized (mLock) { mActiveRoutingPath = path; } + mService.setActivePortId(pathToPortId(path)); } /** @@ -649,11 +650,9 @@ abstract class HdmiCecLocalDevice { * @param portId the new active port id */ void setActivePortId(int portId) { - synchronized (mLock) { - // We update active routing path instead, since we get the active port id from - // the active routing path. - mActiveRoutingPath = mService.portIdToPath(portId); - } + // We update active routing path instead, since we get the active port id from + // the active routing path. + setActivePath(mService.portIdToPath(portId)); } @ServiceThreadOnly diff --git a/services/core/java/com/android/server/hdmi/HdmiControlService.java b/services/core/java/com/android/server/hdmi/HdmiControlService.java index 9a8ef3a109d50..6f33f75fe4b85 100644 --- a/services/core/java/com/android/server/hdmi/HdmiControlService.java +++ b/services/core/java/com/android/server/hdmi/HdmiControlService.java @@ -239,6 +239,9 @@ public final class HdmiControlService extends SystemService { @ServiceThreadOnly private boolean mWakeUpMessageReceived = false; + @ServiceThreadOnly + private int mActivePortId = Constants.INVALID_PORT_ID; + public HdmiControlService(Context context) { super(context); mLocalDevices = HdmiUtils.asImmutableList(getContext().getResources().getIntArray( @@ -1718,4 +1721,10 @@ public final class HdmiControlService extends SystemService { }); } } + + @ServiceThreadOnly + void setActivePortId(int portId) { + assertRunOnServiceThread(); + mActivePortId = portId; + } }