CEC: Handle <Active Source> from AVR properly

To avoid timing issues, handling of <Active Source> was delayed until
corresponding tv input becomes ready. However, AVR is not considered as
a tv input, so delayed <Active Source> will not be processed. This
change makes <Active Source> from AVR handled immediately rather than
buffered.

Bug: 25630805
Change-Id: Iae8e86a84b5a9e5a2e62e457aaf93da67f145fac
diff --git a/services/core/java/com/android/server/hdmi/HdmiCecLocalDeviceTv.java b/services/core/java/com/android/server/hdmi/HdmiCecLocalDeviceTv.java
index e63a143..c89055c 100644
--- a/services/core/java/com/android/server/hdmi/HdmiCecLocalDeviceTv.java
+++ b/services/core/java/com/android/server/hdmi/HdmiCecLocalDeviceTv.java
@@ -499,13 +499,14 @@
                 HdmiLogger.debug("Device info %X not found; buffering the command", logicalAddress);
                 mDelayedMessageBuffer.add(message);
             }
-        } else if (!isInputReady(info.getId())) {
-            HdmiLogger.debug("Input not ready for device: %X; buffering the command", info.getId());
-            mDelayedMessageBuffer.add(message);
-        } else {
+        } else if (isInputReady(info.getId())
+                || info.getDeviceType() == HdmiDeviceInfo.DEVICE_AUDIO_SYSTEM) {
             updateDevicePowerStatus(logicalAddress, HdmiControlManager.POWER_STATUS_ON);
             ActiveSource activeSource = ActiveSource.of(logicalAddress, physicalAddress);
             ActiveSourceHandler.create(this, null).process(activeSource, info.getDeviceType());
+        } else {
+            HdmiLogger.debug("Input not ready for device: %X; buffering the command", info.getId());
+            mDelayedMessageBuffer.add(message);
         }
         return true;
     }