Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1e3b0364 authored by daren.liao's avatar daren.liao Committed by Paul Colta
Browse files

Remove redundant <Give OSD name> for TV devices

NewDeviceAction already send <Give OSD name>

Bug: 239880341

Test: Boot pass, connect CEC device PASS
atest com.android.server.hdmi.HdmiCecLocalDeviceTvTest
 ##newDeviceConnectedIfOnlyOneGiveOsdNameSent

Change-Id: Ide00d75807d9456ba46576f91ebf6d0ecaf4f931
parent 6ea41f31
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -566,7 +566,9 @@ abstract class HdmiCecLocalDevice extends HdmiLocalDevice {

        HdmiDeviceInfo cecDeviceInfo = mService.getHdmiCecNetwork().getCecDeviceInfo(address);
        // If no non-default display name is available for the device, request the devices OSD name.
        if (cecDeviceInfo != null && cecDeviceInfo.getDisplayName().equals(
        // On TV devices, the OSD name is queried in NewDeviceAction instead.
        if (!mService.isTvDevice() && cecDeviceInfo != null
                && cecDeviceInfo.getDisplayName().equals(
                HdmiUtils.getDefaultDeviceName(address))) {
            mService.sendCecCommand(
                    HdmiCecMessageBuilder.buildGiveOsdNameCommand(
+22 −0
Original line number Diff line number Diff line
@@ -27,6 +27,8 @@ import static com.android.server.hdmi.HdmiControlService.INITIATED_BY_ENABLE_CEC

import static com.google.common.truth.Truth.assertThat;

import static junit.framework.Assert.assertEquals;

import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import static org.mockito.ArgumentMatchers.any;
@@ -1723,4 +1725,24 @@ public class HdmiCecLocalDeviceTvTest {

        assertThat(mNativeWrapper.getResultMessages()).contains(activeSourceFromTv);
    }

    @Test
    public void newDeviceConnectedIfOnlyOneGiveOsdNameSent() {
        mHdmiControlService.getHdmiCecNetwork().clearDeviceList();
        assertThat(mHdmiControlService.getHdmiCecNetwork().getDeviceInfoList(false))
                .isEmpty();
        HdmiCecMessage reportPhysicalAddress =
                HdmiCecMessageBuilder.buildReportPhysicalAddressCommand(
                ADDR_PLAYBACK_2, 0x1000, HdmiDeviceInfo.DEVICE_PLAYBACK);
        HdmiCecMessage giveOsdName = HdmiCecMessageBuilder.buildGiveOsdNameCommand(
                ADDR_TV, ADDR_PLAYBACK_2);
        mNativeWrapper.onCecMessage(reportPhysicalAddress);
        mTestLooper.dispatchAll();

        // Wait until HdmiCecNetwork or NewDeviceAction is in progress
        mTestLooper.moveTimeForward(HdmiConfig.TIMEOUT_MS);

        // TV should only send <Give Osd Name> once
        assertEquals(1, Collections.frequency(mNativeWrapper.getResultMessages(), giveOsdName));
    }
}