cec: TV could fail to handle one touch play [1/1]

PD#SWPL-185469
BUG:367525039

Problem:
If the <Active Source> message is received before TV receives
the SCREEN_ON broadcast, this message will be processed directly
in ActiveSourceHandler and results in a failure to switch source.
The root cause is that the mTvInputs variable is not cleared
in HdmiCecLocalDevice#disableDevice, since the tv input callback
is cleared before the clearing of hdmi device info list.
Besides, if the TV device adds the source device's HdmiDeviceInfo
with only <Active Source> message, it could fail to add the related
TvInputInfo to TvInput Framework.

Solution:
1.Clear the tv inputs saved in local tv device during standby.
2.Set valid port id to the HdmiDeviceInfo created by <Active Source>
message.

Verify:
Loki

Change-Id: I08747fd2412eaacc6fedee9b0940d2c7c412a7d1
Signed-off-by: an.xi <an.xi@amlogic.com>
diff --git a/services/core/java/com/android/server/hdmi/HdmiCecLocalDeviceTv.java b/services/core/java/com/android/server/hdmi/HdmiCecLocalDeviceTv.java
index 978a8c0..2000eb7 100644
--- a/services/core/java/com/android/server/hdmi/HdmiCecLocalDeviceTv.java
+++ b/services/core/java/com/android/server/hdmi/HdmiCecLocalDeviceTv.java
@@ -249,6 +249,7 @@
                 .setDisplayName(HdmiUtils.getDefaultDeviceName(source))
                 .setDeviceType(deviceTypes.get(0))
                 .setVendorId(Constants.VENDOR_ID_UNKNOWN)
+                .setPortId(mService.getHdmiCecNetwork().physicalAddressToPortId(physicalAddress))
                 .build();
         mService.getHdmiCecNetwork().addCecDevice(newDevice);
     }
@@ -1398,6 +1399,7 @@
     protected void disableDevice(boolean initiatedByCec, PendingActionClearedCallback callback) {
         assertRunOnServiceThread();
         mService.unregisterTvInputCallback(mTvInputCallback);
+        mTvInputs.clear();
         // Remove any repeated working actions.
         // HotplugDetectionAction will be reinstated during the wake up process.
         // HdmiControlService.onWakeUp() -> initializeLocalDevices() ->