Merge "Reset activity reference after invalidation" into sc-dev am: f5278b0b23

Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Launcher3/+/14253506

Change-Id: I2dc5015df2e6d5dfa16b380f2657c222438d21d1
This commit is contained in:
Winson Chung
2021-04-21 00:15:32 +00:00
committed by Automerger Merge Worker
@@ -65,6 +65,7 @@ import android.graphics.Matrix;
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 @@ public abstract class AbsSwipeUpHandler<T extends StatefulActivity<S>,
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 @@ public abstract class AbsSwipeUpHandler<T extends StatefulActivity<S>,
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() {