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

Commit f7cefe19 authored by Tyler Gunn's avatar Tyler Gunn Committed by android-build-merger
Browse files

Ensure Telecom ServiceBinder class unlinks death recipient.

am: 2eb5d245

Change-Id: I6881918b8d8827e3eae24e9c1497fb5190d4de36
parents 46fa6ce3 2eb5d245
Loading
Loading
Loading
Loading
+17 −0
Original line number Diff line number Diff line
@@ -303,6 +303,7 @@ abstract class ServiceBinder {
            mIsBindingAborted = true;
        } else {
            logServiceDisconnected("unbind");
            unlinkDeathRecipient();
            mContext.unbindService(mServiceConnection);
            mServiceConnection = null;
            setBinder(null);
@@ -371,9 +372,25 @@ abstract class ServiceBinder {
     * Handles a service disconnection.
     */
    private void handleServiceDisconnected() {
        unlinkDeathRecipient();
        setBinder(null);
    }

    /**
     * Handles un-linking the death recipient from the service's binder.
     */
    private void unlinkDeathRecipient() {
        if (mServiceDeathRecipient != null && mBinder != null) {
            boolean unlinked = mBinder.unlinkToDeath(mServiceDeathRecipient, 0);
            if (!unlinked) {
                Log.i(this, "unlinkDeathRecipient: failed to unlink %s", mComponentName);
            }
            mServiceDeathRecipient = null;
        } else {
            Log.w(this, "unlinkDeathRecipient: death recipient is null.");
        }
    }

    private void clearAbort() {
        mIsBindingAborted = false;
    }