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

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

Merge "Revert "Transitions CUJ associate to animation thread"" into main

parents b297de40 2c61bc4e
Loading
Loading
Loading
Loading
+1 −2
Original line number Original line Diff line number Diff line
@@ -793,7 +793,6 @@ public abstract class WMShellBaseModule {
            @ShellMainThread ShellExecutor mainExecutor,
            @ShellMainThread ShellExecutor mainExecutor,
            @ShellMainThread Handler mainHandler,
            @ShellMainThread Handler mainHandler,
            @ShellAnimationThread ShellExecutor animExecutor,
            @ShellAnimationThread ShellExecutor animExecutor,
            @ShellAnimationThread Handler animHandler,
            RootTaskDisplayAreaOrganizer rootTaskDisplayAreaOrganizer,
            RootTaskDisplayAreaOrganizer rootTaskDisplayAreaOrganizer,
            HomeTransitionObserver homeTransitionObserver,
            HomeTransitionObserver homeTransitionObserver,
            FocusTransitionObserver focusTransitionObserver) {
            FocusTransitionObserver focusTransitionObserver) {
@@ -803,7 +802,7 @@ public abstract class WMShellBaseModule {
        }
        }
        return new Transitions(context, shellInit, shellCommandHandler, shellController, organizer,
        return new Transitions(context, shellInit, shellCommandHandler, shellController, organizer,
                pool, displayController, displayInsetsController, mainExecutor, mainHandler,
                pool, displayController, displayInsetsController, mainExecutor, mainHandler,
                animExecutor, animHandler, rootTaskDisplayAreaOrganizer, homeTransitionObserver,
                animExecutor, rootTaskDisplayAreaOrganizer, homeTransitionObserver,
                focusTransitionObserver);
                focusTransitionObserver);
    }
    }


+7 −9
Original line number Original line Diff line number Diff line
@@ -131,7 +131,6 @@ public class DefaultTransitionHandler implements Transitions.TransitionHandler {
    private final DisplayController mDisplayController;
    private final DisplayController mDisplayController;
    private final Context mContext;
    private final Context mContext;
    private final Handler mMainHandler;
    private final Handler mMainHandler;
    private final Handler mAnimHandler;
    private final ShellExecutor mMainExecutor;
    private final ShellExecutor mMainExecutor;
    private final ShellExecutor mAnimExecutor;
    private final ShellExecutor mAnimExecutor;
    private final TransitionAnimation mTransitionAnimation;
    private final TransitionAnimation mTransitionAnimation;
@@ -170,7 +169,6 @@ public class DefaultTransitionHandler implements Transitions.TransitionHandler {
            @NonNull TransactionPool transactionPool,
            @NonNull TransactionPool transactionPool,
            @NonNull ShellExecutor mainExecutor, @NonNull Handler mainHandler,
            @NonNull ShellExecutor mainExecutor, @NonNull Handler mainHandler,
            @NonNull ShellExecutor animExecutor,
            @NonNull ShellExecutor animExecutor,
            @NonNull Handler animHandler,
            @NonNull RootTaskDisplayAreaOrganizer rootTDAOrganizer,
            @NonNull RootTaskDisplayAreaOrganizer rootTDAOrganizer,
            @NonNull InteractionJankMonitor interactionJankMonitor) {
            @NonNull InteractionJankMonitor interactionJankMonitor) {
        mDisplayController = displayController;
        mDisplayController = displayController;
@@ -179,7 +177,6 @@ public class DefaultTransitionHandler implements Transitions.TransitionHandler {
        mMainHandler = mainHandler;
        mMainHandler = mainHandler;
        mMainExecutor = mainExecutor;
        mMainExecutor = mainExecutor;
        mAnimExecutor = animExecutor;
        mAnimExecutor = animExecutor;
        mAnimHandler = animHandler;
        mTransitionAnimation = new TransitionAnimation(context, false /* debug */, Transitions.TAG);
        mTransitionAnimation = new TransitionAnimation(context, false /* debug */, Transitions.TAG);
        mCurrentUserId = UserHandle.myUserId();
        mCurrentUserId = UserHandle.myUserId();
        mDevicePolicyManager = mContext.getSystemService(DevicePolicyManager.class);
        mDevicePolicyManager = mContext.getSystemService(DevicePolicyManager.class);
@@ -644,14 +641,15 @@ public class DefaultTransitionHandler implements Transitions.TransitionHandler {
        startTransaction.apply();
        startTransaction.apply();


        final boolean hasAnimations = !animations.isEmpty();
        final boolean hasAnimations = !animations.isEmpty();
        // now start animations. they are started on another thread, so we have to post them
        // *after* applying the startTransaction
        if (hasAnimations) {
        if (hasAnimations) {
            mAnimExecutor.execute(() -> {
            if (isTaskTransition) {
            if (isTaskTransition) {
                mInteractionJankMonitor.begin(info.getRoot(0).getLeash(), mContext,
                mInteractionJankMonitor.begin(info.getRoot(0).getLeash(), mContext,
                            mAnimHandler, CUJ_DEFAULT_TASK_TO_TASK_ANIMATION);
                        mMainHandler, CUJ_DEFAULT_TASK_TO_TASK_ANIMATION);
            }
            }

            // now start animations. they are started on another thread, so we have to post them
            // *after* applying the startTransaction
            mAnimExecutor.execute(() -> {
                for (int i = 0; i < animations.size(); ++i) {
                for (int i = 0; i < animations.size(); ++i) {
                    animations.get(i).start();
                    animations.get(i).start();
                }
                }
+2 −6
Original line number Original line Diff line number Diff line
@@ -217,7 +217,6 @@ public class Transitions implements RemoteCallable<Transitions>,
    private final Context mContext;
    private final Context mContext;
    private final ShellExecutor mMainExecutor;
    private final ShellExecutor mMainExecutor;
    private final ShellExecutor mAnimExecutor;
    private final ShellExecutor mAnimExecutor;
    private final Handler mAnimHandler;
    private final TransitionPlayerImpl mPlayerImpl;
    private final TransitionPlayerImpl mPlayerImpl;
    private final DefaultTransitionHandler mDefaultTransitionHandler;
    private final DefaultTransitionHandler mDefaultTransitionHandler;
    private final RemoteTransitionHandler mRemoteTransitionHandler;
    private final RemoteTransitionHandler mRemoteTransitionHandler;
@@ -322,12 +321,11 @@ public class Transitions implements RemoteCallable<Transitions>,
            @NonNull ShellExecutor mainExecutor,
            @NonNull ShellExecutor mainExecutor,
            @NonNull Handler mainHandler,
            @NonNull Handler mainHandler,
            @NonNull ShellExecutor animExecutor,
            @NonNull ShellExecutor animExecutor,
            @NonNull Handler animHandler,
            @NonNull HomeTransitionObserver homeTransitionObserver,
            @NonNull HomeTransitionObserver homeTransitionObserver,
            @NonNull FocusTransitionObserver focusTransitionObserver) {
            @NonNull FocusTransitionObserver focusTransitionObserver) {
        this(context, shellInit, new ShellCommandHandler(), shellController, organizer, pool,
        this(context, shellInit, new ShellCommandHandler(), shellController, organizer, pool,
                displayController, displayInsetsController, mainExecutor, mainHandler, animExecutor,
                displayController, displayInsetsController, mainExecutor, mainHandler, animExecutor,
                animHandler, new RootTaskDisplayAreaOrganizer(mainExecutor, context, shellInit),
                new RootTaskDisplayAreaOrganizer(mainExecutor, context, shellInit),
                homeTransitionObserver, focusTransitionObserver);
                homeTransitionObserver, focusTransitionObserver);
    }
    }


@@ -342,7 +340,6 @@ public class Transitions implements RemoteCallable<Transitions>,
            @NonNull ShellExecutor mainExecutor,
            @NonNull ShellExecutor mainExecutor,
            @NonNull Handler mainHandler,
            @NonNull Handler mainHandler,
            @NonNull ShellExecutor animExecutor,
            @NonNull ShellExecutor animExecutor,
            @NonNull Handler animHandler,
            @NonNull RootTaskDisplayAreaOrganizer rootTDAOrganizer,
            @NonNull RootTaskDisplayAreaOrganizer rootTDAOrganizer,
            @NonNull HomeTransitionObserver homeTransitionObserver,
            @NonNull HomeTransitionObserver homeTransitionObserver,
            @NonNull FocusTransitionObserver focusTransitionObserver) {
            @NonNull FocusTransitionObserver focusTransitionObserver) {
@@ -350,12 +347,11 @@ public class Transitions implements RemoteCallable<Transitions>,
        mContext = context;
        mContext = context;
        mMainExecutor = mainExecutor;
        mMainExecutor = mainExecutor;
        mAnimExecutor = animExecutor;
        mAnimExecutor = animExecutor;
        mAnimHandler = animHandler;
        mDisplayController = displayController;
        mDisplayController = displayController;
        mPlayerImpl = new TransitionPlayerImpl();
        mPlayerImpl = new TransitionPlayerImpl();
        mDefaultTransitionHandler = new DefaultTransitionHandler(context, shellInit,
        mDefaultTransitionHandler = new DefaultTransitionHandler(context, shellInit,
                displayController, displayInsetsController, pool, mainExecutor, mainHandler,
                displayController, displayInsetsController, pool, mainExecutor, mainHandler,
                animExecutor, mAnimHandler, rootTDAOrganizer, InteractionJankMonitor.getInstance());
                animExecutor, rootTDAOrganizer, InteractionJankMonitor.getInstance());
        mRemoteTransitionHandler = new RemoteTransitionHandler(mMainExecutor);
        mRemoteTransitionHandler = new RemoteTransitionHandler(mMainExecutor);
        mShellCommandHandler = shellCommandHandler;
        mShellCommandHandler = shellCommandHandler;
        mShellController = shellController;
        mShellController = shellController;
+1 −2
Original line number Original line Diff line number Diff line
@@ -177,7 +177,6 @@ public class StageCoordinatorTests extends ShellTestCase {
    private final TestShellExecutor mMainExecutor = new TestShellExecutor();
    private final TestShellExecutor mMainExecutor = new TestShellExecutor();
    private final ShellExecutor mAnimExecutor = new TestShellExecutor();
    private final ShellExecutor mAnimExecutor = new TestShellExecutor();
    private final Handler mMainHandler = new Handler(Looper.getMainLooper());
    private final Handler mMainHandler = new Handler(Looper.getMainLooper());
    private final Handler mAnimHandler = mock(Handler.class);
    private final DisplayAreaInfo mDisplayAreaInfo = new DisplayAreaInfo(new MockToken().token(),
    private final DisplayAreaInfo mDisplayAreaInfo = new DisplayAreaInfo(new MockToken().token(),
            DEFAULT_DISPLAY, 0);
            DEFAULT_DISPLAY, 0);
    private final ActivityManager.RunningTaskInfo mMainChildTaskInfo =
    private final ActivityManager.RunningTaskInfo mMainChildTaskInfo =
@@ -601,7 +600,7 @@ public class StageCoordinatorTests extends ShellTestCase {
        ShellInit shellInit = new ShellInit(mMainExecutor);
        ShellInit shellInit = new ShellInit(mMainExecutor);
        final Transitions t = new Transitions(mContext, shellInit, mock(ShellController.class),
        final Transitions t = new Transitions(mContext, shellInit, mock(ShellController.class),
                mTaskOrganizer, mTransactionPool, mock(DisplayController.class),
                mTaskOrganizer, mTransactionPool, mock(DisplayController.class),
                mDisplayInsetsController, mMainExecutor, mMainHandler, mAnimExecutor, mAnimHandler,
                mDisplayInsetsController, mMainExecutor, mMainHandler, mAnimExecutor,
                mock(HomeTransitionObserver.class), mock(FocusTransitionObserver.class));
                mock(HomeTransitionObserver.class), mock(FocusTransitionObserver.class));
        shellInit.init();
        shellInit.init();
        return t;
        return t;
+1 −2
Original line number Original line Diff line number Diff line
@@ -105,8 +105,7 @@ public class DefaultTransitionHandlerTest extends ShellTestCase {
        mTransitionHandler = new DefaultTransitionHandler(
        mTransitionHandler = new DefaultTransitionHandler(
                mContext, mShellInit, mDisplayController, mDisplayInsetsController,
                mContext, mShellInit, mDisplayController, mDisplayInsetsController,
                mTransactionPool, mMainExecutor, mMainHandler, mAnimExecutor,
                mTransactionPool, mMainExecutor, mMainHandler, mAnimExecutor,
                mock(Handler.class), mRootTaskDisplayAreaOrganizer,
                mRootTaskDisplayAreaOrganizer, mock(InteractionJankMonitor.class));
                mock(InteractionJankMonitor.class));
        mShellInit.init();
        mShellInit.init();
    }
    }


Loading