Merge "Skip marking recents as pending top if it is already on top" into sc-dev

This commit is contained in:
Riddle Hsu
2021-07-12 21:40:36 +00:00
committed by Android (Google) Code Review
2 changed files with 8 additions and 1 deletions

View File

@@ -952,7 +952,8 @@ public class RecentsAnimationController implements DeathRecipient {
"cleanupAnimation(): Notify animation finished mPendingAnimations=%d "
+ "reorderMode=%d",
mPendingAnimations.size(), reorderMode);
if (reorderMode != REORDER_MOVE_TO_ORIGINAL_POSITION) {
if (reorderMode != REORDER_MOVE_TO_ORIGINAL_POSITION
&& mTargetActivityRecord != mDisplayContent.topRunningActivity()) {
// Notify the state at the beginning because the removeAnimation may notify the
// transition is finished. This is a signal that there will be a next transition.
mDisplayContent.mFixedRotationTransitionListener.notifyRecentsWillBeTop();

View File

@@ -701,6 +701,12 @@ public class RecentsAnimationControllerTest extends WindowTestsBase {
// Continue the animation (simulating a call to cleanupScreenshot())
mController.continueDeferredCancelAnimation();
verify(mAnimationCallbacks).onAnimationFinished(REORDER_MOVE_TO_TOP, false);
// Assume home was moved to front so will-be-top callback should not be called.
homeActivity.moveFocusableActivityToTop("test");
spyOn(mDefaultDisplay.mFixedRotationTransitionListener);
mController.cleanupAnimation(REORDER_MOVE_TO_TOP);
verify(mDefaultDisplay.mFixedRotationTransitionListener, never()).notifyRecentsWillBeTop();
}
private ActivityRecord createHomeActivity() {