Merge "Use message validator for sending message." into lmp-dev
diff --git a/services/core/java/com/android/server/hdmi/HdmiCecMessage.java b/services/core/java/com/android/server/hdmi/HdmiCecMessage.java
index 26071e6..433e93f 100644
--- a/services/core/java/com/android/server/hdmi/HdmiCecMessage.java
+++ b/services/core/java/com/android/server/hdmi/HdmiCecMessage.java
@@ -28,8 +28,6 @@
 public final class HdmiCecMessage {
     public static final byte[] EMPTY_PARAM = EmptyArray.BYTE;
 
-    private static final int MAX_MESSAGE_PARAM_LENGTH = 14;
-
     private final int mSource;
     private final int mDestination;
 
@@ -43,12 +41,6 @@
         mSource = source;
         mDestination = destination;
         mOpcode = opcode & 0xFF;
-
-        if (params.length > MAX_MESSAGE_PARAM_LENGTH) {
-            throw new IllegalArgumentException(
-                    "Param length should be at most 13 but current param length is "
-                    + params.length);
-        }
         mParams = Arrays.copyOf(params, params.length);
     }
 
diff --git a/services/core/java/com/android/server/hdmi/HdmiControlService.java b/services/core/java/com/android/server/hdmi/HdmiControlService.java
index 3017d2d..e8d8192 100644
--- a/services/core/java/com/android/server/hdmi/HdmiControlService.java
+++ b/services/core/java/com/android/server/hdmi/HdmiControlService.java
@@ -517,13 +517,20 @@
     @ServiceThreadOnly
     void sendCecCommand(HdmiCecMessage command, @Nullable SendMessageCallback callback) {
         assertRunOnServiceThread();
-        mCecController.sendCommand(command, callback);
+        if (mMessageValidator.isValid(command)) {
+            mCecController.sendCommand(command, callback);
+        } else {
+            Slog.e(TAG, "Invalid message type:" + command);
+            if (callback != null) {
+                callback.onSendCompleted(Constants.SEND_RESULT_FAILURE);
+            }
+        }
     }
 
     @ServiceThreadOnly
     void sendCecCommand(HdmiCecMessage command) {
         assertRunOnServiceThread();
-        mCecController.sendCommand(command, null);
+        sendCecCommand(command, null);
     }
 
     /**