Fix bug where launcher closing animation isn't run.
In some cases, we prematurely clear the force invisible flag before composing
the launcher animation, causing us to skip the animation.
Bug: 77205145
Change-Id: I4224741649a4fef34e255abac7b66bcf919c042f
diff --git a/quickstep/src/com/android/quickstep/views/RecentsView.java b/quickstep/src/com/android/quickstep/views/RecentsView.java
index f04101a..ce460bc 100644
--- a/quickstep/src/com/android/quickstep/views/RecentsView.java
+++ b/quickstep/src/com/android/quickstep/views/RecentsView.java
@@ -16,6 +16,7 @@
package com.android.quickstep.views;
+import static com.android.launcher3.BaseActivity.INVISIBLE_BY_STATE_HANDLER;
import static com.android.launcher3.anim.Interpolators.ACCEL;
import static com.android.launcher3.anim.Interpolators.ACCEL_2;
import static com.android.launcher3.anim.Interpolators.FAST_OUT_SLOW_IN;
@@ -153,6 +154,15 @@
}
};
+ private TaskStackChangeListener mTaskStackClearFlagListener = new TaskStackChangeListener() {
+ @Override
+ public void onPinnedStackAnimationStarted() {
+ // Needed for activities that auto-enter PiP, which will not trigger a remote
+ // animation to be created
+ mActivity.clearForceInvisibleFlag(INVISIBLE_BY_STATE_HANDLER);
+ }
+ };
+
private int mLoadPlanId = -1;
// Only valid until the launcher state changes to NORMAL
@@ -250,6 +260,7 @@
super.onAttachedToWindow();
updateTaskStackListenerState();
mActivity.addMultiWindowModeChangedListener(mMultiWindowModeChangedListener);
+ ActivityManagerWrapper.getInstance().registerTaskStackListener(mTaskStackClearFlagListener);
}
@Override
@@ -257,6 +268,8 @@
super.onDetachedFromWindow();
updateTaskStackListenerState();
mActivity.removeMultiWindowModeChangedListener(mMultiWindowModeChangedListener);
+ ActivityManagerWrapper.getInstance().unregisterTaskStackListener(
+ mTaskStackClearFlagListener);
}
@Override
diff --git a/src/com/android/launcher3/BaseActivity.java b/src/com/android/launcher3/BaseActivity.java
index d133472..a41edc0 100644
--- a/src/com/android/launcher3/BaseActivity.java
+++ b/src/com/android/launcher3/BaseActivity.java
@@ -143,15 +143,6 @@
}
@Override
- public void onEnterAnimationComplete() {
- super.onEnterAnimationComplete();
-
- // Needed for activities that auto-enter PiP, which will not trigger a remote animation to
- // be created
- clearForceInvisibleFlag(INVISIBLE_BY_STATE_HANDLER);
- }
-
- @Override
protected void onStop() {
mActivityFlags &= ~ACTIVITY_STATE_STARTED & ~ACTIVITY_STATE_USER_ACTIVE;
mForceInvisible = 0;