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

Commit 176c5931 authored by Winson Chung's avatar Winson Chung Committed by Android (Google) Code Review
Browse files

Merge "Ensure that recents transition binder death handler executes on shell main thread" into main

parents 3356c5c5 7f89bdb9
Loading
Loading
Loading
Loading
+11 −4
Original line number Diff line number Diff line
@@ -411,10 +411,12 @@ public class RecentsTransitionHandler implements Transitions.TransitionHandler,
            mInstanceId = System.identityHashCode(this);
            mListener = listener;
            mDeathHandler = () -> {
                mExecutor.execute(() -> {
                    ProtoLog.v(ShellProtoLogGroup.WM_SHELL_RECENTS_TRANSITION,
                            "[%d] RecentsController.DeathRecipient: binder died", mInstanceId);
                    finishInner(mWillFinishToHome, false /* leaveHint */, null /* finishCb */,
                            "deathRecipient");
                });
            };
            try {
                mListener.asBinder().linkToDeath(mDeathHandler, 0 /* flags */);
@@ -1273,6 +1275,11 @@ public class RecentsTransitionHandler implements Transitions.TransitionHandler,
                    "requested"));
        }

        /**
         * @param runnerFinishCb The remote finish callback to run after finish is complete, this is
         *                       not the same as mFinishCb which reports the transition is finished
         *                       to WM.
         */
        private void finishInner(boolean toHome, boolean sendUserLeaveHint,
                IResultReceiver runnerFinishCb, String reason) {
            if (finishSyntheticTransition(runnerFinishCb, reason)) {