From 9fa4dc0ff8360b6f92d2bca8994aeb3bece594c6 Mon Sep 17 00:00:00 2001 From: "eric_kuang.rs" Date: Mon, 6 Mar 2023 14:51:56 +0800 Subject: Update local device info Local device info should add at allocated, don't need wait cec device discovery action done. If we wait it, local device info may not add to cec device info list. It will cause deviceSelect(0) not execute, active source TV will be ignore, and cect_IgnoreBroadcastedFromSameSource test fail. Change-Id: Ia2c0141da00a823fbffe898babfdd3ed27249754 Test: run cts -m CtsHdmiCecHostTestCases -t android.hdmicec.cts.common.HdmiCecInvalidMessagesTest#cect_IgnoreBroadcastedFromSameSource Bug: 258988939 --- .../core/java/com/android/server/hdmi/HdmiCecLocalDeviceTv.java | 8 -------- .../core/java/com/android/server/hdmi/HdmiControlService.java | 2 ++ 2 files changed, 2 insertions(+), 8 deletions(-) diff --git a/services/core/java/com/android/server/hdmi/HdmiCecLocalDeviceTv.java b/services/core/java/com/android/server/hdmi/HdmiCecLocalDeviceTv.java index 9eedc4e0f9ee..f47c4b2c24d9 100644 --- a/services/core/java/com/android/server/hdmi/HdmiCecLocalDeviceTv.java +++ b/services/core/java/com/android/server/hdmi/HdmiCecLocalDeviceTv.java @@ -682,7 +682,6 @@ final class HdmiCecLocalDeviceTv extends HdmiCecLocalDevice { @ServiceThreadOnly private void launchDeviceDiscovery() { assertRunOnServiceThread(); - clearDeviceInfoList(); DeviceDiscoveryAction action = new DeviceDiscoveryAction(this, new DeviceDiscoveryCallback() { @Override @@ -691,13 +690,6 @@ final class HdmiCecLocalDeviceTv extends HdmiCecLocalDevice { mService.getHdmiCecNetwork().addCecDevice(info); } - // Since we removed all devices when it starts and - // device discovery action does not poll local devices, - // we should put device info of local device manually here - for (HdmiCecLocalDevice device : mService.getAllCecLocalDevices()) { - mService.getHdmiCecNetwork().addCecDevice(device.getDeviceInfo()); - } - mSelectRequestBuffer.process(); resetSelectRequestBuffer(); diff --git a/services/core/java/com/android/server/hdmi/HdmiControlService.java b/services/core/java/com/android/server/hdmi/HdmiControlService.java index 805ff6611c29..75fe63a66206 100644 --- a/services/core/java/com/android/server/hdmi/HdmiControlService.java +++ b/services/core/java/com/android/server/hdmi/HdmiControlService.java @@ -1267,6 +1267,7 @@ public class HdmiControlService extends SystemService { // It's now safe to flush existing local devices from mCecController since they were // already moved to 'localDevices'. clearCecLocalDevices(); + mHdmiCecNetwork.clearDeviceList(); allocateLogicalAddress(localDevices, initiatedBy); } @@ -1303,6 +1304,7 @@ public class HdmiControlService extends SystemService { HdmiControlManager.POWER_STATUS_ON, getCecVersion()); localDevice.setDeviceInfo(deviceInfo); mHdmiCecNetwork.addLocalDevice(deviceType, localDevice); + mHdmiCecNetwork.addCecDevice(localDevice.getDeviceInfo()); mCecController.addLogicalAddress(logicalAddress); allocatedDevices.add(localDevice); } -- cgit v1.2.3-59-g8ed1b