Loading libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMShellModule.java +4 −3 Original line number Diff line number Diff line Loading @@ -585,9 +585,10 @@ public abstract class WMShellModule { @Provides static ExitDesktopTaskTransitionHandler provideExitDesktopTaskTransitionHandler( Transitions transitions, Context context ) { return new ExitDesktopTaskTransitionHandler(transitions, context); Context context, InteractionJankMonitor interactionJankMonitor) { return new ExitDesktopTaskTransitionHandler( transitions, context, interactionJankMonitor); } @WMSingleton Loading libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/ExitDesktopTaskTransitionHandler.java +13 −3 Original line number Diff line number Diff line Loading @@ -42,6 +42,8 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import com.android.internal.annotations.VisibleForTesting; import com.android.internal.jank.Cuj; import com.android.internal.jank.InteractionJankMonitor; import com.android.wm.shell.common.desktopmode.DesktopModeTransitionSource; import com.android.wm.shell.transition.Transitions; Loading @@ -60,6 +62,7 @@ public class ExitDesktopTaskTransitionHandler implements Transitions.TransitionH private final Context mContext; private final Transitions mTransitions; private final InteractionJankMonitor mInteractionJankMonitor; private final List<IBinder> mPendingTransitionTokens = new ArrayList<>(); private Consumer<SurfaceControl.Transaction> mOnAnimationFinishedCallback; private final Supplier<SurfaceControl.Transaction> mTransactionSupplier; Loading @@ -67,17 +70,21 @@ public class ExitDesktopTaskTransitionHandler implements Transitions.TransitionH public ExitDesktopTaskTransitionHandler( Transitions transitions, Context context) { this(transitions, SurfaceControl.Transaction::new, context); Context context, InteractionJankMonitor interactionJankMonitor ) { this(transitions, SurfaceControl.Transaction::new, context, interactionJankMonitor); } private ExitDesktopTaskTransitionHandler( Transitions transitions, Supplier<SurfaceControl.Transaction> supplier, Context context) { Context context, InteractionJankMonitor interactionJankMonitor) { mTransitions = transitions; mTransactionSupplier = supplier; mContext = context; mInteractionJankMonitor = interactionJankMonitor; } /** Loading Loading @@ -146,6 +153,8 @@ public class ExitDesktopTaskTransitionHandler implements Transitions.TransitionH final int screenHeight = metrics.heightPixels; final SurfaceControl sc = change.getLeash(); final Rect endBounds = change.getEndAbsBounds(); mInteractionJankMonitor .begin(sc, mContext, Cuj.CUJ_DESKTOP_MODE_EXIT_MODE); // Hide the first (fullscreen) frame because the animation will start from the freeform // size. startT.hide(sc) Loading Loading @@ -175,6 +184,7 @@ public class ExitDesktopTaskTransitionHandler implements Transitions.TransitionH if (mOnAnimationFinishedCallback != null) { mOnAnimationFinishedCallback.accept(finishT); } mInteractionJankMonitor.end(Cuj.CUJ_DESKTOP_MODE_EXIT_MODE); mTransitions.getMainExecutor().execute( () -> finishCallback.onTransitionFinished(null)); } Loading libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/ExitDesktopTaskTransitionHandlerTest.java +4 −1 Original line number Diff line number Diff line Loading @@ -45,6 +45,7 @@ import android.window.WindowContainerTransaction; import androidx.test.filters.SmallTest; import com.android.internal.jank.InteractionJankMonitor; import com.android.wm.shell.ShellTestCase; import com.android.wm.shell.common.ShellExecutor; import com.android.wm.shell.common.desktopmode.DesktopModeTransitionSource; Loading @@ -65,6 +66,8 @@ public class ExitDesktopTaskTransitionHandlerTest extends ShellTestCase { @Mock private Transitions mTransitions; @Mock private InteractionJankMonitor mInteractionJankMonitor; @Mock IBinder mToken; @Mock Supplier<SurfaceControl.Transaction> mTransactionFactory; Loading Loading @@ -94,7 +97,7 @@ public class ExitDesktopTaskTransitionHandlerTest extends ShellTestCase { .thenReturn(getContext().getResources().getDisplayMetrics()); mExitDesktopTaskTransitionHandler = new ExitDesktopTaskTransitionHandler(mTransitions, mContext); mContext, mInteractionJankMonitor); mPoint = new Point(0, 0); } Loading Loading
libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMShellModule.java +4 −3 Original line number Diff line number Diff line Loading @@ -585,9 +585,10 @@ public abstract class WMShellModule { @Provides static ExitDesktopTaskTransitionHandler provideExitDesktopTaskTransitionHandler( Transitions transitions, Context context ) { return new ExitDesktopTaskTransitionHandler(transitions, context); Context context, InteractionJankMonitor interactionJankMonitor) { return new ExitDesktopTaskTransitionHandler( transitions, context, interactionJankMonitor); } @WMSingleton Loading
libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/ExitDesktopTaskTransitionHandler.java +13 −3 Original line number Diff line number Diff line Loading @@ -42,6 +42,8 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import com.android.internal.annotations.VisibleForTesting; import com.android.internal.jank.Cuj; import com.android.internal.jank.InteractionJankMonitor; import com.android.wm.shell.common.desktopmode.DesktopModeTransitionSource; import com.android.wm.shell.transition.Transitions; Loading @@ -60,6 +62,7 @@ public class ExitDesktopTaskTransitionHandler implements Transitions.TransitionH private final Context mContext; private final Transitions mTransitions; private final InteractionJankMonitor mInteractionJankMonitor; private final List<IBinder> mPendingTransitionTokens = new ArrayList<>(); private Consumer<SurfaceControl.Transaction> mOnAnimationFinishedCallback; private final Supplier<SurfaceControl.Transaction> mTransactionSupplier; Loading @@ -67,17 +70,21 @@ public class ExitDesktopTaskTransitionHandler implements Transitions.TransitionH public ExitDesktopTaskTransitionHandler( Transitions transitions, Context context) { this(transitions, SurfaceControl.Transaction::new, context); Context context, InteractionJankMonitor interactionJankMonitor ) { this(transitions, SurfaceControl.Transaction::new, context, interactionJankMonitor); } private ExitDesktopTaskTransitionHandler( Transitions transitions, Supplier<SurfaceControl.Transaction> supplier, Context context) { Context context, InteractionJankMonitor interactionJankMonitor) { mTransitions = transitions; mTransactionSupplier = supplier; mContext = context; mInteractionJankMonitor = interactionJankMonitor; } /** Loading Loading @@ -146,6 +153,8 @@ public class ExitDesktopTaskTransitionHandler implements Transitions.TransitionH final int screenHeight = metrics.heightPixels; final SurfaceControl sc = change.getLeash(); final Rect endBounds = change.getEndAbsBounds(); mInteractionJankMonitor .begin(sc, mContext, Cuj.CUJ_DESKTOP_MODE_EXIT_MODE); // Hide the first (fullscreen) frame because the animation will start from the freeform // size. startT.hide(sc) Loading Loading @@ -175,6 +184,7 @@ public class ExitDesktopTaskTransitionHandler implements Transitions.TransitionH if (mOnAnimationFinishedCallback != null) { mOnAnimationFinishedCallback.accept(finishT); } mInteractionJankMonitor.end(Cuj.CUJ_DESKTOP_MODE_EXIT_MODE); mTransitions.getMainExecutor().execute( () -> finishCallback.onTransitionFinished(null)); } Loading
libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/ExitDesktopTaskTransitionHandlerTest.java +4 −1 Original line number Diff line number Diff line Loading @@ -45,6 +45,7 @@ import android.window.WindowContainerTransaction; import androidx.test.filters.SmallTest; import com.android.internal.jank.InteractionJankMonitor; import com.android.wm.shell.ShellTestCase; import com.android.wm.shell.common.ShellExecutor; import com.android.wm.shell.common.desktopmode.DesktopModeTransitionSource; Loading @@ -65,6 +66,8 @@ public class ExitDesktopTaskTransitionHandlerTest extends ShellTestCase { @Mock private Transitions mTransitions; @Mock private InteractionJankMonitor mInteractionJankMonitor; @Mock IBinder mToken; @Mock Supplier<SurfaceControl.Transaction> mTransactionFactory; Loading Loading @@ -94,7 +97,7 @@ public class ExitDesktopTaskTransitionHandlerTest extends ShellTestCase { .thenReturn(getContext().getResources().getDisplayMetrics()); mExitDesktopTaskTransitionHandler = new ExitDesktopTaskTransitionHandler(mTransitions, mContext); mContext, mInteractionJankMonitor); mPoint = new Point(0, 0); } Loading