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

Commit 157ffd58 authored by daren.liao's avatar daren.liao Committed by Paul Colța
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
Merged-In: Ide00d75807d9456ba46576f91ebf6d0ecaf4f931
parent 5be07280
Loading
Loading
Loading
Loading
+3 −1
Original line number Original line Diff line number Diff line
@@ -559,7 +559,9 @@ abstract class HdmiCecLocalDevice extends HdmiLocalDevice {


        HdmiDeviceInfo cecDeviceInfo = mService.getHdmiCecNetwork().getCecDeviceInfo(address);
        HdmiDeviceInfo cecDeviceInfo = mService.getHdmiCecNetwork().getCecDeviceInfo(address);
        // If no non-default display name is available for the device, request the devices OSD name.
        // 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))) {
                HdmiUtils.getDefaultDeviceName(address))) {
            mService.sendCecCommand(
            mService.sendCecCommand(
                    HdmiCecMessageBuilder.buildGiveOsdNameCommand(
                    HdmiCecMessageBuilder.buildGiveOsdNameCommand(
+22 −0
Original line number Original line 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 com.google.common.truth.Truth.assertThat;


import static junit.framework.Assert.assertEquals;

import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.assertTrue;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.any;
@@ -1648,4 +1650,24 @@ public class HdmiCecLocalDeviceTvTest {
        assertThat(mHdmiControlService.isSystemAudioActivated()).isTrue();
        assertThat(mHdmiControlService.isSystemAudioActivated()).isTrue();


    }
    }

    @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));
    }
}
}