summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Evan Rosky <erosky@google.com> 2022-09-07 17:23:38 +0000
committer Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> 2022-09-07 17:23:38 +0000
commit48416ce4786b5b8903513aeec044405ede3a2dc5 (patch)
tree3e8e1c89e3c5dfe26a8cf55aa9c17270b199957a
parenta4c62e88604e593008734a217ef1b81bbb3972a7 (diff)
parent505bcd28047a3a7c9dab150b52a3c4039dc59ab1 (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.java4
-rw-r--r--services/tests/wmtests/src/com/android/server/wm/TransitionTests.java14
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