diff options
| author | 2022-09-07 17:23:38 +0000 | |
|---|---|---|
| committer | 2022-09-07 17:23:38 +0000 | |
| commit | 48416ce4786b5b8903513aeec044405ede3a2dc5 (patch) | |
| tree | 3e8e1c89e3c5dfe26a8cf55aa9c17270b199957a | |
| parent | a4c62e88604e593008734a217ef1b81bbb3972a7 (diff) | |
| parent | 505bcd28047a3a7c9dab150b52a3c4039dc59ab1 (diff) | |
Merge "Report enterAnimationComplete when transient launch is committed" into tm-qpr-dev am: 505bcd2804
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/19788741
Change-Id: I15d30d27c2f48b24deb93597474f479ef242b043
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
| -rw-r--r-- | services/core/java/com/android/server/wm/Transition.java | 4 | ||||
| -rw-r--r-- | services/tests/wmtests/src/com/android/server/wm/TransitionTests.java | 14 |
2 files changed, 17 insertions, 1 deletions
diff --git a/services/core/java/com/android/server/wm/Transition.java b/services/core/java/com/android/server/wm/Transition.java index d7c6939f2541..135fcd4c68a5 100644 --- a/services/core/java/com/android/server/wm/Transition.java +++ b/services/core/java/com/android/server/wm/Transition.java @@ -735,6 +735,10 @@ class Transition extends Binder implements BLASTSyncEngine.TransactionReadyListe if (mChanges.get(ar).mVisible != visibleAtTransitionEnd) { // Legacy dispatch relies on this (for now). ar.mEnteringAnimation = visibleAtTransitionEnd; + } else if (mTransientLaunches != null && mTransientLaunches.containsKey(ar) + && ar.isVisible()) { + // Transient launch was committed, so report enteringAnimation + ar.mEnteringAnimation = true; } continue; } diff --git a/services/tests/wmtests/src/com/android/server/wm/TransitionTests.java b/services/tests/wmtests/src/com/android/server/wm/TransitionTests.java index c9438bbc55ea..8f186e40e201 100644 --- a/services/tests/wmtests/src/com/android/server/wm/TransitionTests.java +++ b/services/tests/wmtests/src/com/android/server/wm/TransitionTests.java @@ -964,8 +964,17 @@ public class TransitionTests extends WindowTestsBase { @Test public void testTransientLaunch() { final TaskSnapshotController snapshotController = mock(TaskSnapshotController.class); + final ArrayList<ActivityRecord> enteringAnimReports = new ArrayList<>(); final TransitionController controller = new TransitionController(mAtm, snapshotController, - mock(TransitionTracer.class)); + mock(TransitionTracer.class)) { + @Override + protected void dispatchLegacyAppTransitionFinished(ActivityRecord ar) { + if (ar.mEnteringAnimation) { + enteringAnimReports.add(ar); + } + super.dispatchLegacyAppTransitionFinished(ar); + } + }; final ITransitionPlayer player = new ITransitionPlayer.Default(); controller.registerTransitionPlayer(player, null /* playerProc */); final Transition openTransition = controller.createTransition(TRANSIT_OPEN); @@ -1010,6 +1019,7 @@ public class TransitionTests extends WindowTestsBase { activity1.mVisibleRequested = false; activity2.mVisibleRequested = true; + activity2.setVisible(true); // Using abort to force-finish the sync (since we obviously can't wait for drawing). // We didn't call abort on the actual transition, so it will still run onTransactionReady @@ -1020,9 +1030,11 @@ public class TransitionTests extends WindowTestsBase { // called until finish). verify(snapshotController, times(0)).recordTaskSnapshot(eq(task1), eq(false)); + enteringAnimReports.clear(); closeTransition.finishTransition(); verify(snapshotController, times(1)).recordTaskSnapshot(eq(task1), eq(false)); + assertTrue(enteringAnimReports.contains(activity2)); } @Test |