Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 505bcd28 authored by Evan Rosky's avatar Evan Rosky Committed by Android (Google) Code Review
Browse files

Merge "Report enterAnimationComplete when transient launch is committed" into tm-qpr-dev

parents da06944a c1683f86
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -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;
            }
+13 −1
Original line number Diff line number Diff line
@@ -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