Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6e24d0c6 authored by James Dong's avatar James Dong Committed by Android (Google) Code Review
Browse files

Merge "Fix an issue where the message queue fails to queue in the looper...

Merge "Fix an issue where the message queue fails to queue in the looper threads because they are not created." into jb-dev
parents 41a4704b 01138550
Loading
Loading
Loading
Loading
+17 −15
Original line number Diff line number Diff line
@@ -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));
    }
}