Reset the interaction handler if it hasn't been recreated.

Bug: 73356768
Change-Id: Ie3236c95cdb8d9ce809bf8651e02d1d803f0b802
diff --git a/quickstep/src/com/android/quickstep/BaseSwipeInteractionHandler.java b/quickstep/src/com/android/quickstep/BaseSwipeInteractionHandler.java
index b3ebd77..5bf7e4e 100644
--- a/quickstep/src/com/android/quickstep/BaseSwipeInteractionHandler.java
+++ b/quickstep/src/com/android/quickstep/BaseSwipeInteractionHandler.java
@@ -20,11 +20,13 @@
 import com.android.launcher3.states.InternalStateHandler;
 import com.android.quickstep.TouchConsumer.InteractionType;
 
+import java.util.function.Consumer;
+
 public abstract class BaseSwipeInteractionHandler extends InternalStateHandler {
 
-    protected Runnable mGestureEndCallback;
+    protected Consumer<BaseSwipeInteractionHandler> mGestureEndCallback;
 
-    public void setGestureEndCallback(Runnable gestureEndCallback) {
+    public void setGestureEndCallback(Consumer<BaseSwipeInteractionHandler> gestureEndCallback) {
         mGestureEndCallback = gestureEndCallback;
     }
 
diff --git a/quickstep/src/com/android/quickstep/NavBarSwipeInteractionHandler.java b/quickstep/src/com/android/quickstep/NavBarSwipeInteractionHandler.java
index f333b93..0be13ea 100644
--- a/quickstep/src/com/android/quickstep/NavBarSwipeInteractionHandler.java
+++ b/quickstep/src/com/android/quickstep/NavBarSwipeInteractionHandler.java
@@ -347,7 +347,7 @@
     public void reset() {
         mCurrentShift.cancelAnimation();
         if (mGestureEndCallback != null) {
-            mGestureEndCallback.run();
+            mGestureEndCallback.accept(this);
         }
     }
 
diff --git a/quickstep/src/com/android/quickstep/OtherActivityTouchConsumer.java b/quickstep/src/com/android/quickstep/OtherActivityTouchConsumer.java
index 53eb910..b979967 100644
--- a/quickstep/src/com/android/quickstep/OtherActivityTouchConsumer.java
+++ b/quickstep/src/com/android/quickstep/OtherActivityTouchConsumer.java
@@ -397,8 +397,10 @@
         }
     }
 
-    private void onFinish() {
-        mInteractionHandler = null;
+    private void onFinish(BaseSwipeInteractionHandler handler) {
+        if (mInteractionHandler == handler) {
+            mInteractionHandler = null;
+        }
     }
 
     public void onTouchTrackingComplete() { }
diff --git a/quickstep/src/com/android/quickstep/WindowTransformSwipeHandler.java b/quickstep/src/com/android/quickstep/WindowTransformSwipeHandler.java
index 91f4453..d09daed 100644
--- a/quickstep/src/com/android/quickstep/WindowTransformSwipeHandler.java
+++ b/quickstep/src/com/android/quickstep/WindowTransformSwipeHandler.java
@@ -605,7 +605,7 @@
         mCurrentShift.cancelAnimation();
 
         if (mGestureEndCallback != null) {
-            mGestureEndCallback.run();
+            mGestureEndCallback.accept(this);
         }
 
         clearReference();