summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--core/java/android/hardware/hdmi/HdmiPortInfo.java11
-rw-r--r--services/core/java/com/android/server/hdmi/HdmiControlService.java41
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);
}
/**