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);
}
/**