media jni: remove Parcel from IDrmClient interface

Bug: 134787536
Test: MediaDrmClearkeyTest#testClearKeyPlaybackCenc
Change-Id: Ibaa8fbc87e4ca7cb569a2e918b3953c0a5e745fb
diff --git a/media/jni/android_media_MediaDrm.cpp b/media/jni/android_media_MediaDrm.cpp
index f412161..f9090d2 100644
--- a/media/jni/android_media_MediaDrm.cpp
+++ b/media/jni/android_media_MediaDrm.cpp
@@ -537,6 +537,40 @@
     }
 }
 
+void JDrm::sendEvent(
+        DrmPlugin::EventType eventType,
+        const hardware::hidl_vec<uint8_t> &sessionId,
+        const hardware::hidl_vec<uint8_t> &data) {
+    Parcel obj;
+    DrmUtils::WriteByteArray(obj, sessionId);
+    DrmUtils::WriteByteArray(obj, data);
+    notify(eventType, 0, &obj);
+}
+
+void JDrm::sendExpirationUpdate(
+        const hardware::hidl_vec<uint8_t> &sessionId,
+        int64_t expiryTimeInMS) {
+    Parcel obj;
+    DrmUtils::WriteExpirationUpdateToParcel(obj, sessionId, expiryTimeInMS);
+    notify(DrmPlugin::kDrmPluginEventExpirationUpdate, 0, &obj);
+}
+
+void JDrm::sendKeysChange(
+        const hardware::hidl_vec<uint8_t> &sessionId,
+        const std::vector<DrmKeyStatus> &keyStatusList,
+        bool hasNewUsableKey) {
+    Parcel obj;
+    DrmUtils::WriteKeysChange(obj, sessionId, keyStatusList, hasNewUsableKey);
+    notify(DrmPlugin::kDrmPluginEventKeysChange, 0, &obj);
+}
+
+void JDrm::sendSessionLostState(
+        const hardware::hidl_vec<uint8_t> &sessionId) {
+    Parcel obj;
+    DrmUtils::WriteByteArray(obj, sessionId);
+    notify(DrmPlugin::kDrmPluginEventSessionLostState, 0, &obj);
+}
+
 void JDrm::disconnect() {
     if (mDrm != NULL) {
         mDrm->destroyPlugin();
diff --git a/media/jni/android_media_MediaDrm.h b/media/jni/android_media_MediaDrm.h
index 684069b..37d9e07 100644
--- a/media/jni/android_media_MediaDrm.h
+++ b/media/jni/android_media_MediaDrm.h
@@ -21,6 +21,8 @@
 
 #include <media/stagefright/foundation/ABase.h>
 #include <mediadrm/IDrm.h>
+#include <mediadrm/IDrmClient.h>
+#include <hidl/HidlSupport.h>
 #include <utils/Errors.h>
 #include <utils/RefBase.h>
 
@@ -44,7 +46,23 @@
     status_t initCheck() const;
     sp<IDrm> getDrm() { return mDrm; }
 
-    void notify(DrmPlugin::EventType, int extra, const Parcel *obj);
+    void sendEvent(
+            DrmPlugin::EventType eventType,
+            const hardware::hidl_vec<uint8_t> &sessionId,
+            const hardware::hidl_vec<uint8_t> &data) override;
+
+    void sendExpirationUpdate(
+            const hardware::hidl_vec<uint8_t> &sessionId,
+            int64_t expiryTimeInMS) override;
+
+    void sendKeysChange(
+            const hardware::hidl_vec<uint8_t> &sessionId,
+            const std::vector<DrmKeyStatus> &keyStatusList,
+            bool hasNewUsableKey) override;
+
+    void sendSessionLostState(
+            const hardware::hidl_vec<uint8_t> &sessionId) override;
+
     status_t setListener(const sp<DrmListener>& listener);
 
     void disconnect();
@@ -63,6 +81,8 @@
     static sp<IDrm> MakeDrm();
     static sp<IDrm> MakeDrm(const uint8_t uuid[16], const String8 &appPackageName);
 
+    void notify(DrmPlugin::EventType, int extra, const Parcel *obj);
+
     DISALLOW_EVIL_CONSTRUCTORS(JDrm);
 };