Revert "Revert "Hold WeakReference to split callback""

This reverts commit 06be7eb88ee96d1eba0bcedc7728d9f64c2bd6d1.

Reason for revert: Potential forward fix with ag/24562796

Change-Id: I1f01dda728491e627ec0cc34fd364cbd794854d5
diff --git a/quickstep/src/com/android/quickstep/util/SplitSelectStateController.java b/quickstep/src/com/android/quickstep/util/SplitSelectStateController.java
index 6d5aa16..9eebf2a 100644
--- a/quickstep/src/com/android/quickstep/util/SplitSelectStateController.java
+++ b/quickstep/src/com/android/quickstep/util/SplitSelectStateController.java
@@ -101,6 +101,7 @@
 import com.android.wm.shell.splitscreen.ISplitSelectListener;
 
 import java.io.PrintWriter;
+import java.lang.ref.WeakReference;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
@@ -567,13 +568,13 @@
 
         private final int mInitialTaskId;
         private final int mSecondTaskId;
-        private final Consumer<Boolean> mSuccessCallback;
+        private final WeakReference<Consumer<Boolean>> mSuccessCallback;
 
         RemoteSplitLaunchTransitionRunner(int initialTaskId, int secondTaskId,
                 @Nullable Consumer<Boolean> callback) {
             mInitialTaskId = initialTaskId;
             mSecondTaskId = secondTaskId;
-            mSuccessCallback = callback;
+            mSuccessCallback = new WeakReference<>(callback);
         }
 
         @Override
@@ -593,8 +594,8 @@
                 TaskViewUtils.composeRecentsSplitLaunchAnimator(mLaunchingTaskView, mStateManager,
                         mDepthController, mInitialTaskId, mSecondTaskId, info, t, () -> {
                             finishAdapter.run();
-                            if (mSuccessCallback != null) {
-                                mSuccessCallback.accept(true);
+                            if (mSuccessCallback.get() != null) {
+                                mSuccessCallback.get().accept(true);
                             }
                             resetState();
                         });