From 011385508726fef027641fcbb3e4e446efc9af2c Mon Sep 17 00:00:00 2001 From: James Dong Date: Mon, 7 May 2012 14:49:00 -0700 Subject: Fix an issue where the message queue fails to queue in the looper threads because they are not created. o related-to-bug: 6293875 Change-Id: I03dbb2782bd90f88d1f8df086b8a529730afe5dc --- drm/java/android/drm/DrmManagerClient.java | 32 ++++++++++++++++-------------- 1 file changed, 17 insertions(+), 15 deletions(-) (limited to 'drm') diff --git a/drm/java/android/drm/DrmManagerClient.java b/drm/java/android/drm/DrmManagerClient.java index 482ab0a..4b51994 100755 --- a/drm/java/android/drm/DrmManagerClient.java +++ b/drm/java/android/drm/DrmManagerClient.java @@ -242,6 +242,7 @@ public class DrmManagerClient { public DrmManagerClient(Context context) { mContext = context; mReleased = false; + createEventThreads(); // save the unique id mUniqueId = _initialize(); @@ -283,21 +284,6 @@ public class DrmManagerClient { _release(mUniqueId); } - - private void createListeners() { - if (mEventHandler == null && mInfoHandler == null) { - mInfoThread = new HandlerThread("DrmManagerClient.InfoHandler"); - mInfoThread.start(); - mInfoHandler = new InfoHandler(mInfoThread.getLooper()); - - mEventThread = new HandlerThread("DrmManagerClient.EventHandler"); - mEventThread.start(); - mEventHandler = new EventHandler(mEventThread.getLooper()); - _setListeners(mUniqueId, new WeakReference(this)); - } - } - - /** * Registers an {@link DrmManagerClient.OnInfoListener} callback, which is invoked when the * DRM framework sends status or warning information during registration or rights acquisition. @@ -878,5 +864,21 @@ public class DrmManagerClient { private native DrmConvertedStatus _closeConvertSession(int uniqueId, int convertId); private native DrmSupportInfo[] _getAllSupportInfo(int uniqueId); + + private void createEventThreads() { + if (mEventHandler == null && mInfoHandler == null) { + mInfoThread = new HandlerThread("DrmManagerClient.InfoHandler"); + mInfoThread.start(); + mInfoHandler = new InfoHandler(mInfoThread.getLooper()); + + mEventThread = new HandlerThread("DrmManagerClient.EventHandler"); + mEventThread.start(); + mEventHandler = new EventHandler(mEventThread.getLooper()); + } + } + + private void createListeners() { + _setListeners(mUniqueId, new WeakReference(this)); + } } -- cgit v1.1