diff --git a/services/core/java/com/android/server/wm/RecentsAnimationController.java b/services/core/java/com/android/server/wm/RecentsAnimationController.java index 710dd552f72d2..58db7c4168751 100644 --- a/services/core/java/com/android/server/wm/RecentsAnimationController.java +++ b/services/core/java/com/android/server/wm/RecentsAnimationController.java @@ -949,7 +949,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(); diff --git a/services/tests/wmtests/src/com/android/server/wm/RecentsAnimationControllerTest.java b/services/tests/wmtests/src/com/android/server/wm/RecentsAnimationControllerTest.java index 03944172db7c9..c9faf34bbacb6 100644 --- a/services/tests/wmtests/src/com/android/server/wm/RecentsAnimationControllerTest.java +++ b/services/tests/wmtests/src/com/android/server/wm/RecentsAnimationControllerTest.java @@ -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() {