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

Commit 5e2e8588 authored by Marzia Favaro's avatar Marzia Favaro
Browse files

Inject mock InteractionJankMonitor

Bug: 395170948
Test: DefaultTransitionHandlerTest
Flag: EXEMPT test only
Change-Id: I435c67d22be26799127103362b2c86a86870feb4
parent b1843033
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();
    }