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
This commit is contained in:
James Dong
2012-05-07 14:49:00 -07:00
parent a08dc5de8d
commit 0113855087

View File

@@ -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<DrmManagerClient>(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<DrmManagerClient>(this));
}
}