From 8f994ea76ffc59effb9f185b39f99dcf610d7145 Mon Sep 17 00:00:00 2001 From: Tony Huang Date: Tue, 19 Apr 2022 15:47:13 +0800 Subject: [PATCH] Add jank instrument support for split screen Add jank instrument support for split screen of anter animation. Bug: 203439850 Test: build passed Test: verified with systrace dump Change-Id: I128fe829b36198e1a437d27427b54ebdc67e5f52 --- .../quickstep/views/GroupedTaskView.java | 9 ++++++++- .../android/quickstep/views/RecentsView.java | 18 +++++++++++++++--- 2 files changed, 23 insertions(+), 4 deletions(-) diff --git a/quickstep/src/com/android/quickstep/views/GroupedTaskView.java b/quickstep/src/com/android/quickstep/views/GroupedTaskView.java index 955fffcdb4..244a794562 100644 --- a/quickstep/src/com/android/quickstep/views/GroupedTaskView.java +++ b/quickstep/src/com/android/quickstep/views/GroupedTaskView.java @@ -26,6 +26,7 @@ import com.android.quickstep.util.CancellableTask; import com.android.quickstep.util.RecentsOrientedState; import com.android.systemui.shared.recents.model.Task; import com.android.systemui.shared.recents.model.ThumbnailData; +import com.android.systemui.shared.system.InteractionJankMonitorWrapper; import java.util.HashMap; import java.util.function.Consumer; @@ -171,8 +172,14 @@ public class GroupedTaskView extends TaskView { RunnableList endCallback = new RunnableList(); RecentsView recentsView = getRecentsView(); // Callbacks run from remote animation when recents animation not currently running + InteractionJankMonitorWrapper.begin(this, + InteractionJankMonitorWrapper.CUJ_SPLIT_SCREEN_ENTER, "Enter form GroupedTaskView"); recentsView.getSplitPlaceholder().launchTasks(this /*groupedTaskView*/, - success -> endCallback.executeAllAndDestroy(), + success -> { + endCallback.executeAllAndDestroy(); + InteractionJankMonitorWrapper.end( + InteractionJankMonitorWrapper.CUJ_SPLIT_SCREEN_ENTER); + }, false /* freezeTaskList */); // Callbacks get run from recentsView for case when recents animation already running diff --git a/quickstep/src/com/android/quickstep/views/RecentsView.java b/quickstep/src/com/android/quickstep/views/RecentsView.java index aff9df6f35..6f49989396 100644 --- a/quickstep/src/com/android/quickstep/views/RecentsView.java +++ b/quickstep/src/com/android/quickstep/views/RecentsView.java @@ -175,6 +175,7 @@ import com.android.systemui.plugins.ResourceProvider; import com.android.systemui.shared.recents.model.Task; import com.android.systemui.shared.recents.model.ThumbnailData; import com.android.systemui.shared.system.ActivityManagerWrapper; +import com.android.systemui.shared.system.InteractionJankMonitorWrapper; import com.android.systemui.shared.system.PackageManagerWrapper; import com.android.systemui.shared.system.RemoteAnimationTargetCompat; import com.android.systemui.shared.system.SyncRtSurfaceTransactionApplierCompat.SurfaceParams; @@ -2744,9 +2745,16 @@ public abstract class RecentsView { if (success) { mSplitToast.show(); + InteractionJankMonitorWrapper.end( + InteractionJankMonitorWrapper.CUJ_SPLIT_SCREEN_ENTER); + } else { + InteractionJankMonitorWrapper.cancel( + InteractionJankMonitorWrapper.CUJ_SPLIT_SCREEN_ENTER); } }); } @@ -4040,9 +4048,11 @@ public abstract class RecentsView - mSplitSelectStateController.launchSplitTasks( - aBoolean1 -> RecentsView.this.resetFromSplitSelectionState())); + pendingAnimation.addEndListener(aBoolean -> { + mSplitSelectStateController.launchSplitTasks( + aBoolean1 -> RecentsView.this.resetFromSplitSelectionState()); + InteractionJankMonitorWrapper.end(InteractionJankMonitorWrapper.CUJ_SPLIT_SCREEN_ENTER); + }); if (containerTaskView.containsMultipleTasks()) { // If we are launching from a child task, then only hide the thumbnail itself mSecondSplitHiddenView = thumbnailView; @@ -4050,6 +4060,8 @@ public abstract class RecentsView