From 89437fbdd954dff939a576332dc36e4e640b96cb Mon Sep 17 00:00:00 2001 From: Rahul Frias Date: Mon, 27 Feb 2017 14:07:44 -0800 Subject: [PATCH] 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 --- drm/1.0/default/DrmPlugin.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/drm/1.0/default/DrmPlugin.cpp b/drm/1.0/default/DrmPlugin.cpp index 1b2f90e6d3..6f51e0e9cd 100644 --- a/drm/1.0/default/DrmPlugin.cpp +++ b/drm/1.0/default/DrmPlugin.cpp @@ -321,6 +321,7 @@ namespace implementation { Return DrmPlugin::setListener(const sp& listener) { mListener = listener; + mLegacyPlugin->setListener(listener == NULL ? NULL : this); return Void(); } @@ -372,8 +373,10 @@ namespace implementation { break; } if (sendEvent) { - mListener->sendEvent(eventType, toHidlVec(*sessionId), - toHidlVec(*data)); + Vector emptyVector; + mListener->sendEvent(eventType, + toHidlVec(sessionId == NULL ? emptyVector: *sessionId), + toHidlVec(data == NULL ? emptyVector: *data)); } }