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

Commit f34ea146 authored by Marzia Favaro's avatar Marzia Favaro Committed by Android (Google) Code Review
Browse files

Merge "Inject mock InteractionJankMonitor" into main

parents 60a8f831 5e2e8588
Loading
Loading
Loading
Loading
+7 −6
Original line number Diff line number Diff line
@@ -149,8 +149,7 @@ public class DefaultTransitionHandler implements Transitions.TransitionHandler {

    private Drawable mEnterpriseThumbnailDrawable;

    static final InteractionJankMonitor sInteractionJankMonitor =
            InteractionJankMonitor.getInstance();
    final InteractionJankMonitor mInteractionJankMonitor;

    private BroadcastReceiver mEnterpriseResourceUpdatedReceiver = new BroadcastReceiver() {
        @Override
@@ -169,7 +168,8 @@ public class DefaultTransitionHandler implements Transitions.TransitionHandler {
            @NonNull TransactionPool transactionPool,
            @NonNull ShellExecutor mainExecutor, @NonNull Handler mainHandler,
            @NonNull ShellExecutor animExecutor,
            @NonNull RootTaskDisplayAreaOrganizer rootTDAOrganizer) {
            @NonNull RootTaskDisplayAreaOrganizer rootTDAOrganizer,
            @NonNull InteractionJankMonitor interactionJankMonitor) {
        mDisplayController = displayController;
        mTransactionPool = transactionPool;
        mContext = context;
@@ -181,6 +181,7 @@ public class DefaultTransitionHandler implements Transitions.TransitionHandler {
        mDevicePolicyManager = mContext.getSystemService(DevicePolicyManager.class);
        shellInit.addInitCallback(this::onInit, this);
        mRootTDAOrganizer = rootTDAOrganizer;
        mInteractionJankMonitor = interactionJankMonitor;
    }

    private void onInit() {
@@ -331,14 +332,14 @@ public class DefaultTransitionHandler implements Transitions.TransitionHandler {

        final boolean isTaskTransition = isTaskTransition(info);
        if (isTaskTransition) {
            sInteractionJankMonitor.begin(info.getRoot(0).getLeash(), mContext,
            mInteractionJankMonitor.begin(info.getRoot(0).getLeash(), mContext,
                    mMainHandler, CUJ_DEFAULT_TASK_TO_TASK_ANIMATION);
        }

        final Runnable onAnimFinish = () -> {
            if (!animations.isEmpty()) return;
            if (isTaskTransition) {
                sInteractionJankMonitor.end(CUJ_DEFAULT_TASK_TO_TASK_ANIMATION);
                mInteractionJankMonitor.end(CUJ_DEFAULT_TASK_TO_TASK_ANIMATION);
            }
            mAnimations.remove(transition);
            finishCallback.onTransitionFinished(null /* wct */);
@@ -1031,6 +1032,6 @@ public class DefaultTransitionHandler implements Transitions.TransitionHandler {
    @Override
    public void onTransitionConsumed(@NonNull IBinder transition, boolean aborted,
                              @Nullable SurfaceControl.Transaction finishTransaction) {
        sInteractionJankMonitor.cancel(CUJ_DEFAULT_TASK_TO_TASK_ANIMATION);
        mInteractionJankMonitor.cancel(CUJ_DEFAULT_TASK_TO_TASK_ANIMATION);
    }
}
+3 −1
Original line number Diff line number Diff line
@@ -77,6 +77,7 @@ import androidx.annotation.BinderThread;

import com.android.internal.R;
import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.jank.InteractionJankMonitor;
import com.android.internal.protolog.ProtoLog;
import com.android.wm.shell.RootTaskDisplayAreaOrganizer;
import com.android.wm.shell.ShellTaskOrganizer;
@@ -335,7 +336,8 @@ public class Transitions implements RemoteCallable<Transitions>,
        mDisplayController = displayController;
        mPlayerImpl = new TransitionPlayerImpl();
        mDefaultTransitionHandler = new DefaultTransitionHandler(context, shellInit,
                displayController, pool, mainExecutor, mainHandler, animExecutor, rootTDAOrganizer);
                displayController, pool, mainExecutor, mainHandler, animExecutor, rootTDAOrganizer,
                InteractionJankMonitor.getInstance());
        mRemoteTransitionHandler = new RemoteTransitionHandler(mMainExecutor);
        mShellCommandHandler = shellCommandHandler;
        mShellController = shellController;
+2 −1
Original line number Diff line number Diff line
@@ -48,6 +48,7 @@ import androidx.test.ext.junit.runners.AndroidJUnit4;
import androidx.test.filters.SmallTest;
import androidx.test.platform.app.InstrumentationRegistry;

import com.android.internal.jank.InteractionJankMonitor;
import com.android.wm.shell.RootTaskDisplayAreaOrganizer;
import com.android.wm.shell.ShellTestCase;
import com.android.wm.shell.TestShellExecutor;
@@ -96,7 +97,7 @@ public class DefaultTransitionHandlerTest extends ShellTestCase {
        mTransitionHandler = new DefaultTransitionHandler(
                mContext, mShellInit, mDisplayController,
                mTransactionPool, mMainExecutor, mMainHandler, mAnimExecutor,
                mRootTaskDisplayAreaOrganizer);
                mRootTaskDisplayAreaOrganizer, mock(InteractionJankMonitor.class));
        mShellInit.init();
    }