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

Commit 13c28f4b authored by Wei Sheng Shih's avatar Wei Sheng Shih Committed by Android (Google) Code Review
Browse files

Merge "Fix test fail after force trigger predictive back transition." into main

parents 94992393 a4c76094
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -29,6 +29,7 @@ import static android.window.TransitionInfo.FLAG_SHOW_WALLPAPER;
import static com.android.internal.jank.InteractionJankMonitor.CUJ_PREDICTIVE_BACK_HOME;
import static com.android.window.flags.Flags.migratePredictiveBackTransition;
import static com.android.window.flags.Flags.predictiveBackSystemAnims;
import static com.android.window.flags.Flags.unifyBackNavigationTransition;
import static com.android.wm.shell.protolog.ShellProtoLogGroup.WM_SHELL_BACK_PREVIEW;
import static com.android.wm.shell.shared.ShellSharedConstants.KEY_EXTRA_SHELL_BACK_ANIMATION;

@@ -1279,6 +1280,13 @@ public class BackAnimationController implements RemoteCallable<BackAnimationCont
            if (transition == mClosePrepareTransition && aborted) {
                mClosePrepareTransition = null;
                applyFinishOpenTransition();
            } else if (!aborted && unifyBackNavigationTransition()) {
                // Since the closing target participates in the predictive back transition, the
                // merged transition must be applied with the first transition to ensure a seamless
                // animation.
                if (mFinishOpenTransaction != null && finishTransaction != null) {
                    mFinishOpenTransaction.merge(finishTransaction);
                }
            }
        }

+1 −1
Original line number Diff line number Diff line
@@ -1851,7 +1851,7 @@ class BackNavigationController {
                    tc.requestStartTransition(prepareOpen,
                            null /*startTask */, null /* remoteTransition */,
                            null /* displayChange */);
                    prepareOpen.setReady(makeVisibles.get(0), true);
                    prepareOpen.setReady(mCloseTarget, true);
                    return prepareOpen;
                } else if (mSnapshot == null) {
                    return setLaunchBehind(visibleOpenActivities);
+9 −0
Original line number Diff line number Diff line
@@ -24,6 +24,7 @@ import static android.view.WindowManager.LayoutParams.FIRST_APPLICATION_WINDOW;
import static android.view.WindowManager.LayoutParams.TYPE_APPLICATION;
import static android.view.WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY;
import static android.view.WindowManager.LayoutParams.TYPE_BASE_APPLICATION;
import static android.view.WindowManager.TRANSIT_PREPARE_BACK_NAVIGATION;
import static android.window.BackNavigationInfo.typeToString;

import static com.android.dx.mockito.inline.extended.ExtendedMockito.doReturn;
@@ -103,6 +104,13 @@ public class BackNavigationControllerTests extends WindowTestsBase {

    @Before
    public void setUp() throws Exception {
        final TransitionController transitionController = mAtm.getTransitionController();
        final Transition fakeTransition = new Transition(TRANSIT_PREPARE_BACK_NAVIGATION,
                0 /* flag */, transitionController, transitionController.mSyncEngine);
        spyOn(transitionController);
        doReturn(fakeTransition).when(transitionController)
                .createTransition(anyInt(), anyInt());

        final BackNavigationController original = new BackNavigationController();
        original.setWindowManager(mWm);
        mBackNavigationController = Mockito.spy(original);
@@ -111,6 +119,7 @@ public class BackNavigationControllerTests extends WindowTestsBase {
        LocalServices.addService(WindowManagerInternal.class, mWindowManagerInternal);
        mBackAnimationAdapter = mock(BackAnimationAdapter.class);
        doReturn(true).when(mBackAnimationAdapter).isAnimatable(anyInt());
        Mockito.doNothing().when(mBackNavigationController).startAnimation();
        mNavigationMonitor = mock(BackNavigationController.NavigationMonitor.class);
        mRootHomeTask = initHomeActivity();
    }