Assign local device portId 0
Before, the local device on a TV would be assigned an invalid portId, which was causing the local device to be removed from the HdmiCecNetwork in some instances. Bug: 213423171 Test: atest HdmiCecNetworkTest Change-Id: I99e1ca1d54a74682c0737deb2ad2163f7db5e0db Merged-In: I99e1ca1d54a74682c0737deb2ad2163f7db5e0db
This commit is contained in:
@@ -865,10 +865,13 @@ public class HdmiCecNetwork {
|
|||||||
* on the current device.
|
* on the current device.
|
||||||
*/
|
*/
|
||||||
int physicalAddressToPortId(int path) {
|
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 mask = 0xF000;
|
||||||
int finalMask = 0xF000;
|
int finalMask = 0xF000;
|
||||||
int physicalAddress;
|
|
||||||
physicalAddress = getPhysicalAddress();
|
|
||||||
int maskedAddress = physicalAddress;
|
int maskedAddress = physicalAddress;
|
||||||
|
|
||||||
while (maskedAddress != 0) {
|
while (maskedAddress != 0) {
|
||||||
|
|||||||
@@ -141,6 +141,22 @@ public class HdmiCecNetworkTest {
|
|||||||
Constants.INVALID_PORT_ID);
|
Constants.INVALID_PORT_ID);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@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
|
@Test
|
||||||
public void localDevices_verifyOne_tv() {
|
public void localDevices_verifyOne_tv() {
|
||||||
mHdmiCecNetwork.clearLocalDevices();
|
mHdmiCecNetwork.clearLocalDevices();
|
||||||
|
|||||||
Reference in New Issue
Block a user