summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Nathalie Le Clair <lcnathalie@google.com> 2022-04-04 16:13:09 +0000
committer Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> 2022-04-04 16:13:09 +0000
commitcc03484e9d5bf6dad4f8196fc914bdffcc0f99ce (patch)
treea22761f139b57bd8d41313e3eb3c6b7a8b2092e3
parent9ae5381050931c91f8a9b4907c8cc3fc52acd481 (diff)
parentc8adf1f70e4a3ea9236fa30e156e03bfdf4a71db (diff)
Assign local device portId 0 am: c8adf1f70e
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/2002570 Change-Id: I122a38f05bbb8f1ad9881a601747a1bc851bce36 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-rw-r--r--services/core/java/com/android/server/hdmi/HdmiCecNetwork.java7
-rw-r--r--services/tests/servicestests/src/com/android/server/hdmi/HdmiCecNetworkTest.java16
2 files changed, 21 insertions, 2 deletions
diff --git a/services/core/java/com/android/server/hdmi/HdmiCecNetwork.java b/services/core/java/com/android/server/hdmi/HdmiCecNetwork.java
index 180bcdbe7546..1234d7fa0832 100644
--- a/services/core/java/com/android/server/hdmi/HdmiCecNetwork.java
+++ b/services/core/java/com/android/server/hdmi/HdmiCecNetwork.java
@@ -865,10 +865,13 @@ public class HdmiCecNetwork {
* on the current device.
*/
int physicalAddressToPortId(int path) {
+ int physicalAddress = getPhysicalAddress();
+ if (path == physicalAddress) {
+ // The local device isn't connected to any port; assign portId 0
+ return Constants.CEC_SWITCH_HOME;
+ }
int mask = 0xF000;
int finalMask = 0xF000;
- int physicalAddress;
- physicalAddress = getPhysicalAddress();
int maskedAddress = physicalAddress;
while (maskedAddress != 0) {
diff --git a/services/tests/servicestests/src/com/android/server/hdmi/HdmiCecNetworkTest.java b/services/tests/servicestests/src/com/android/server/hdmi/HdmiCecNetworkTest.java
index c478c2343361..017039053222 100644
--- a/services/tests/servicestests/src/com/android/server/hdmi/HdmiCecNetworkTest.java
+++ b/services/tests/servicestests/src/com/android/server/hdmi/HdmiCecNetworkTest.java
@@ -142,6 +142,22 @@ public class HdmiCecNetworkTest {
}
@Test
+ public void physicalAddressToPort_localDevice_weAreSourceDevice() {
+ mNativeWrapper.setPhysicalAddress(0x2000);
+ mHdmiCecNetwork.initPortInfo();
+ assertThat(mHdmiCecNetwork.physicalAddressToPortId(0x2000))
+ .isEqualTo(Constants.CEC_SWITCH_HOME);
+ }
+
+ @Test
+ public void physicalAddressToPort_localDevice_weAreTv() {
+ mNativeWrapper.setPhysicalAddress(0x0000);
+ mHdmiCecNetwork.initPortInfo();
+ assertThat(mHdmiCecNetwork.physicalAddressToPortId(0x0000))
+ .isEqualTo(Constants.CEC_SWITCH_HOME);
+ }
+
+ @Test
public void localDevices_verifyOne_tv() {
mHdmiCecNetwork.clearLocalDevices();
mHdmiCecNetwork.addLocalDevice(HdmiDeviceInfo.DEVICE_TV,