Merge "Add default implementation for setTvMessageEnabled" into udc-dev
diff --git a/automotive/audiocontrol/aidl/vts/VtsHalAudioControlTargetTest.cpp b/automotive/audiocontrol/aidl/vts/VtsHalAudioControlTargetTest.cpp
index f4e3b5a..4e7e963 100644
--- a/automotive/audiocontrol/aidl/vts/VtsHalAudioControlTargetTest.cpp
+++ b/automotive/audiocontrol/aidl/vts/VtsHalAudioControlTargetTest.cpp
@@ -53,17 +53,25 @@
namespace audiohalcommon = android::hardware::audio::common;
namespace audiomediacommon = android::media::audio::common;
+namespace {
+constexpr int32_t kAidlVersionThree = 3;
+}
+
class AudioControlAidl : public testing::TestWithParam<std::string> {
public:
virtual void SetUp() override {
audioControl = android::waitForDeclaredService<IAudioControl>(String16(GetParam().c_str()));
ASSERT_NE(audioControl, nullptr);
+ aidlVersion = audioControl->getInterfaceVersion();
}
void TearDown() override { audioControl = nullptr; }
+ bool isAidlVersionAtleast(int version) const { return aidlVersion >= version; }
+
sp<IAudioControl> audioControl;
int32_t capabilities;
+ int32_t aidlVersion;
};
TEST_P(AudioControlAidl, OnSetFadeTowardsFront) {
@@ -250,6 +258,11 @@
TEST_P(AudioControlAidl, RegisterModuleChangeCallbackTwiceThrowsException) {
ALOGI("Register Module change callback test");
+ if (!isAidlVersionAtleast(kAidlVersionThree)) {
+ GTEST_SKIP() << "Device does not support the new APIs for module change callback";
+ return;
+ }
+
// make sure no stale callbacks.
audioControl->clearModuleChangeCallback();
@@ -269,6 +282,11 @@
TEST_P(AudioControlAidl, RegisterModuleChangeNullCallbackThrowsException) {
ALOGI("Register Module change callback with nullptr test");
+ if (!isAidlVersionAtleast(kAidlVersionThree)) {
+ GTEST_SKIP() << "Device does not support the new APIs for module change callback";
+ return;
+ }
+
auto status = audioControl->setModuleChangeCallback(nullptr);
EXPECT_THAT(status.exceptionCode(),
AnyOf(Eq(Status::EX_ILLEGAL_ARGUMENT), Eq(Status::EX_UNSUPPORTED_OPERATION)));
diff --git a/identity/aidl/vts/VtsIWritableIdentityCredentialTests.cpp b/identity/aidl/vts/VtsIWritableIdentityCredentialTests.cpp
index 94d4c88..eb74fa2 100644
--- a/identity/aidl/vts/VtsIWritableIdentityCredentialTests.cpp
+++ b/identity/aidl/vts/VtsIWritableIdentityCredentialTests.cpp
@@ -125,7 +125,8 @@
MacedPublicKey macedPublicKey;
std::vector<uint8_t> attestationKey;
- result = rpc->generateEcdsaP256KeyPair(/*testMode=*/true, &macedPublicKey, &attestationKey);
+ // Start by RPC version 3, we don't support testMode=true. So just verify testMode=false here.
+ result = rpc->generateEcdsaP256KeyPair(/*testMode=*/false, &macedPublicKey, &attestationKey);
ASSERT_TRUE(result.isOk()) << result.exceptionCode() << "; " << result.exceptionMessage();
optional<vector<vector<uint8_t>>> remotelyProvisionedCertChain =
@@ -176,7 +177,8 @@
MacedPublicKey macedPublicKey;
std::vector<uint8_t> attestationKey;
- result = rpc->generateEcdsaP256KeyPair(/*testMode=*/true, &macedPublicKey, &attestationKey);
+ // Start by RPC version 3, we don't support testMode=true. So just verify testMode=false here.
+ result = rpc->generateEcdsaP256KeyPair(/*testMode=*/false, &macedPublicKey, &attestationKey);
ASSERT_TRUE(result.isOk()) << result.exceptionCode() << "; " << result.exceptionMessage();
optional<vector<vector<uint8_t>>> remotelyProvisionedCertChain =
diff --git a/tv/input/aidl/android/hardware/tv/input/ITvInputCallback.aidl b/tv/input/aidl/android/hardware/tv/input/ITvInputCallback.aidl
index 5d47317..2c7e32f 100644
--- a/tv/input/aidl/android/hardware/tv/input/ITvInputCallback.aidl
+++ b/tv/input/aidl/android/hardware/tv/input/ITvInputCallback.aidl
@@ -30,7 +30,14 @@
void notify(in TvInputEvent event);
/**
* Notifies the client that an TV message event has occurred. For possible event types,
- * check TvMessageEventType.
+ * check {@link android.hardware.tv.input.TvMessageEventType}.
+ *
+ * The first message in a list of messages contained in a
+ * {@link android.hardware.tv.input.TvMessageEvent} should always have a
+ * {@link android.hardware.tv.input.TvMessage#subType} of "device_id",
+ * otherwise the event is discarded. When the subType of a message is "device_id", the ID of
+ * the device that sent the message should be contained in
+ * {@link android.hardware.tv.input.TvMessage#groupId}
*
* @param event Event passed to the client.
*/
diff --git a/tv/input/aidl/android/hardware/tv/input/TvMessage.aidl b/tv/input/aidl/android/hardware/tv/input/TvMessage.aidl
index 88da538..afa48a9 100644
--- a/tv/input/aidl/android/hardware/tv/input/TvMessage.aidl
+++ b/tv/input/aidl/android/hardware/tv/input/TvMessage.aidl
@@ -23,8 +23,13 @@
*/
const long NO_GROUP_ID = -1;
/**
- * Extended data type, like “ATSC A/336 Watermark”, “ATSC_CC”, etc. This is opaque
- * to the framework.
+ * Extended data type, like “ATSC A/336 Watermark”, “ATSC_CC”, etc. This type is opaque to the
+ * framework except when the subtype is "device_id". If the subtype is "device_id", the ID of
+ * device that sent the message should be contained in {@link #groupId}.
+ *
+ * The first message in a list of messages contained in
+ * {@link android.hardware.tv.input.TvMessageEvent} should always have the subtype "device_id",
+ * otherwise the event is discarded.
*/
String subType;
/**
@@ -32,6 +37,9 @@
* headers and bodies of the same event. For messages that do not have a group, this value
* should be -1.
*
+ * If {@link #subType} is "device_id", this value should contain the ID of the device that sent
+ * this message.
+ *
* As -1 is a reserved value, -1 should not be used as a valid groupId.
*/
long groupId;