diff options
-rw-r--r-- | core/java/android/hardware/hdmi/HdmiPortInfo.java | 11 | ||||
-rw-r--r-- | services/core/java/com/android/server/hdmi/HdmiControlService.java | 41 |
2 files changed, 32 insertions, 20 deletions
diff --git a/core/java/android/hardware/hdmi/HdmiPortInfo.java b/core/java/android/hardware/hdmi/HdmiPortInfo.java index 7b25f8a..85e7531 100644 --- a/core/java/android/hardware/hdmi/HdmiPortInfo.java +++ b/core/java/android/hardware/hdmi/HdmiPortInfo.java @@ -161,4 +161,15 @@ public final class HdmiPortInfo implements Parcelable { dest.writeInt(mArcSupported ? 1 : 0); dest.writeInt(mMhlSupported ? 1 : 0); } + + @Override + public String toString() { + StringBuffer s = new StringBuffer(); + s.append("port_id: ").append(mId).append(", "); + s.append("address: ").append(mAddress).append(", "); + s.append("cec: ").append(mCecSupported).append(", "); + s.append("arc: ").append(mArcSupported).append(", "); + s.append("mhl: ").append(mMhlSupported); + return s.toString(); + } } diff --git a/services/core/java/com/android/server/hdmi/HdmiControlService.java b/services/core/java/com/android/server/hdmi/HdmiControlService.java index 37c297b..2272283 100644 --- a/services/core/java/com/android/server/hdmi/HdmiControlService.java +++ b/services/core/java/com/android/server/hdmi/HdmiControlService.java @@ -59,6 +59,7 @@ import com.android.server.hdmi.HdmiCecLocalDevice.PendingActionClearedCallback; import libcore.util.EmptyArray; import java.util.ArrayList; +import java.util.Arrays; import java.util.Collections; import java.util.List; @@ -343,30 +344,30 @@ public final class HdmiControlService extends SystemService { mPortInfoMap.put(info.getId(), info); } - HdmiPortInfo[] mhlPortInfo = new HdmiPortInfo[0]; - if (mMhlController != null) { - // TODO: Implement plumbing logic to get MHL port information. - // mhlPortInfo = mMhlController.getPortInfos(); - } - - ArraySet<Integer> mhlSupportedPorts = new ArraySet<Integer>(mhlPortInfo.length); - for (HdmiPortInfo info : mhlPortInfo) { - if (info.isMhlSupported()) { - mhlSupportedPorts.add(info.getId()); + if (mMhlController == null) { + mPortInfo = Collections.unmodifiableList(Arrays.asList(cecPortInfo)); + return; + } else { + HdmiPortInfo[] mhlPortInfo = mMhlController.getPortInfos(); + ArraySet<Integer> mhlSupportedPorts = new ArraySet<Integer>(mhlPortInfo.length); + for (HdmiPortInfo info : mhlPortInfo) { + if (info.isMhlSupported()) { + mhlSupportedPorts.add(info.getId()); + } } - } - // Build HDMI port info list with CEC port info plus MHL supported flag. - ArrayList<HdmiPortInfo> result = new ArrayList<>(cecPortInfo.length); - for (HdmiPortInfo info : cecPortInfo) { - if (mhlSupportedPorts.contains(info.getId())) { - result.add(new HdmiPortInfo(info.getId(), info.getType(), info.getAddress(), - info.isCecSupported(), true, info.isArcSupported())); - } else { - result.add(info); + // Build HDMI port info list with CEC port info plus MHL supported flag. + ArrayList<HdmiPortInfo> result = new ArrayList<>(cecPortInfo.length); + for (HdmiPortInfo info : cecPortInfo) { + if (mhlSupportedPorts.contains(info.getId())) { + result.add(new HdmiPortInfo(info.getId(), info.getType(), info.getAddress(), + info.isCecSupported(), true, info.isArcSupported())); + } else { + result.add(info); + } } + mPortInfo = Collections.unmodifiableList(result); } - mPortInfo = Collections.unmodifiableList(result); } /** |