Merge "Some cleanup for handler invalidation" into sc-dev
diff --git a/quickstep/src/com/android/quickstep/AbsSwipeUpHandler.java b/quickstep/src/com/android/quickstep/AbsSwipeUpHandler.java
index 10384a8..fe10908 100644
--- a/quickstep/src/com/android/quickstep/AbsSwipeUpHandler.java
+++ b/quickstep/src/com/android/quickstep/AbsSwipeUpHandler.java
@@ -338,6 +338,10 @@
}
protected boolean onActivityInit(Boolean alreadyOnHome) {
+ if (mStateCallback.hasStates(STATE_HANDLER_INVALIDATED)) {
+ return false;
+ }
+
T createdActivity = mActivityInterface.getCreatedActivity();
if (createdActivity != null) {
initTransitionEndpoints(createdActivity.getDeviceProfile());
@@ -567,6 +571,8 @@
}
});
reapplyWindowTransformAnim.setDuration(RECENTS_ATTACH_DURATION).start();
+ mStateCallback.runOnceAtState(STATE_HANDLER_INVALIDATED,
+ reapplyWindowTransformAnim::cancel);
} else {
applyWindowTransform();
}
@@ -1376,12 +1382,6 @@
mActivityInitListener.unregister();
ActivityManagerWrapper.getInstance().unregisterTaskStackListener(mActivityRestartListener);
mTaskSnapshot = null;
- mHandler.post(() -> {
- // Defer clearing the activity since invalidation can happen over multiple callbacks
- // ie. invalidateHandlerWithLauncher()
- mActivity = null;
- mRecentsView = null;
- });
}
private void invalidateHandlerWithLauncher() {
@@ -1392,6 +1392,12 @@
mRecentsView.removeOnScrollChangedListener(mOnRecentsScrollListener);
resetLauncherListeners();
+
+ mHandler.post(() -> {
+ // Defer clearing the activity since invalidation can happen over multiple callbacks.
+ mActivity = null;
+ mRecentsView = null;
+ });
}
private void endLauncherTransitionController() {