summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJungshik Jang <jayjang@google.com>2014-08-07 12:02:29 +0900
committerJungshik Jang <jayjang@google.com>2014-08-07 12:02:29 +0900
commit5f75cbd8593e83eaf17cfac07186a3b6a7b7b1f1 (patch)
tree6a6eaeb14ba11eda4bc4797c8eabc94d3bf6c150
parent9b5bd967e4c90e424eba36feccdbde71fdee1743 (diff)
downloadframeworks_base-5f75cbd8593e83eaf17cfac07186a3b6a7b7b1f1.zip
frameworks_base-5f75cbd8593e83eaf17cfac07186a3b6a7b7b1f1.tar.gz
frameworks_base-5f75cbd8593e83eaf17cfac07186a3b6a7b7b1f1.tar.bz2
Use message validator for sending message.
Change-Id: I2ff82c5596e8c78c24189199ede66ee9905b95f5
-rw-r--r--services/core/java/com/android/server/hdmi/HdmiCecMessage.java8
-rw-r--r--services/core/java/com/android/server/hdmi/HdmiControlService.java11
2 files changed, 9 insertions, 10 deletions
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 @@ import java.util.Arrays;
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 @@ public final class HdmiCecMessage {
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 @@ public final class HdmiControlService extends SystemService {
@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);
}
/**