Correct propagation of asynchonous events

The legacy plugin listener was not set when used in
passthrough mode in Treble. This caused events (session renewal,
key expired etc) not to be propagated to the app.

b/35375500

Test: In progress

Change-Id: I7d74b3320c82e22f67d3c804ee93f9b9791080b2
diff --git a/drm/1.0/default/DrmPlugin.cpp b/drm/1.0/default/DrmPlugin.cpp
index 1b2f90e..6f51e0e 100644
--- a/drm/1.0/default/DrmPlugin.cpp
+++ b/drm/1.0/default/DrmPlugin.cpp
@@ -321,6 +321,7 @@
 
     Return<void> DrmPlugin::setListener(const sp<IDrmPluginListener>& listener) {
         mListener = listener;
+        mLegacyPlugin->setListener(listener == NULL ? NULL : this);
         return Void();
     }
 
@@ -372,8 +373,10 @@
             break;
         }
         if (sendEvent) {
-            mListener->sendEvent(eventType, toHidlVec(*sessionId),
-                    toHidlVec(*data));
+            Vector<uint8_t> emptyVector;
+            mListener->sendEvent(eventType,
+                    toHidlVec(sessionId == NULL ? emptyVector: *sessionId),
+                    toHidlVec(data == NULL ? emptyVector: *data));
         }
     }