Merge "Reset activity reference after invalidation" into sc-dev
diff --git a/quickstep/src/com/android/quickstep/AbsSwipeUpHandler.java b/quickstep/src/com/android/quickstep/AbsSwipeUpHandler.java
index 7599234..dbb8272 100644
--- a/quickstep/src/com/android/quickstep/AbsSwipeUpHandler.java
+++ b/quickstep/src/com/android/quickstep/AbsSwipeUpHandler.java
@@ -65,6 +65,7 @@
import android.graphics.PointF;
import android.graphics.Rect;
import android.os.Build;
+import android.os.Handler;
import android.os.SystemClock;
import android.view.MotionEvent;
import android.view.View;
@@ -135,6 +136,7 @@
protected final BaseActivityInterface<S, T> mActivityInterface;
protected final InputConsumerProxy mInputConsumerProxy;
protected final ActivityInitListener mActivityInitListener;
+ private final Handler mHandler = new Handler();
// Callbacks to be made once the recents animation starts
private final ArrayList<Runnable> mRecentsAnimationStartCallbacks = new ArrayList<>();
protected RecentsAnimationController mRecentsAnimationController;
@@ -1357,6 +1359,10 @@
mActivityInitListener.unregister();
ActivityManagerWrapper.getInstance().unregisterTaskStackListener(mActivityRestartListener);
mTaskSnapshot = null;
+ mHandler.post(() -> {
+ // Defer clearing the activity since invalidation can happen over multiple callbacks
+ mActivity = null;
+ });
}
private void invalidateHandlerWithLauncher() {