Loading quickstep/src/com/android/launcher3/BaseQuickstepLauncher.java +8 −0 Original line number Diff line number Diff line Loading @@ -22,6 +22,8 @@ import static com.android.launcher3.LauncherState.NORMAL; import static com.android.quickstep.SysUINavigationMode.removeShelfFromOverview; import static com.android.systemui.shared.system.ActivityManagerWrapper.CLOSE_SYSTEM_WINDOWS_REASON_HOME_KEY; import com.android.systemui.shared.system.InteractionJankMonitorWrapper; import android.animation.AnimatorSet; import android.animation.ValueAnimator; import android.content.Intent; Loading Loading @@ -307,4 +309,10 @@ public abstract class BaseQuickstepLauncher extends Launcher public void setHintUserWillBeActive() { addActivityFlags(ACTIVITY_STATE_USER_WILL_BE_ACTIVE); } @Override public void onAttachedToWindow() { super.onAttachedToWindow(); InteractionJankMonitorWrapper.init(getWindow().getDecorView()); } } quickstep/src/com/android/launcher3/QuickstepAppTransitionManagerImpl.java +41 −34 Original line number Diff line number Diff line Loading @@ -66,6 +66,7 @@ import androidx.annotation.Nullable; import com.android.launcher3.DeviceProfile.OnDeviceProfileChangeListener; import com.android.launcher3.allapps.AllAppsTransitionController; import com.android.launcher3.anim.AnimationSuccessListener; import com.android.launcher3.config.FeatureFlags; import com.android.launcher3.dragndrop.DragLayer; import com.android.launcher3.shortcuts.DeepShortcutView; Loading @@ -81,6 +82,7 @@ import com.android.quickstep.util.StaggeredWorkspaceAnim; import com.android.quickstep.util.SurfaceTransactionApplier; import com.android.systemui.shared.system.ActivityCompat; import com.android.systemui.shared.system.ActivityOptionsCompat; import com.android.systemui.shared.system.InteractionJankMonitorWrapper; import com.android.systemui.shared.system.QuickStepContract; import com.android.systemui.shared.system.RemoteAnimationAdapterCompat; import com.android.systemui.shared.system.RemoteAnimationDefinitionCompat; Loading Loading @@ -791,6 +793,36 @@ public abstract class QuickstepAppTransitionManagerImpl extends LauncherAppTrans == PackageManager.PERMISSION_GRANTED; } private void addCujInstrumentation(Animator anim, int cuj, String transition) { if (Trace.isEnabled()) { anim.addListener(new AnimationSuccessListener() { @Override public void onAnimationStart(Animator animation) { Trace.beginAsyncSection(transition, 0); InteractionJankMonitorWrapper.begin(cuj); super.onAnimationStart(animation); } @Override public void onAnimationCancel(Animator animation) { super.onAnimationCancel(animation); InteractionJankMonitorWrapper.cancel(cuj); } @Override public void onAnimationSuccess(Animator animator) { InteractionJankMonitorWrapper.end(cuj); } @Override public void onAnimationEnd(Animator animation) { super.onAnimationEnd(animation); Trace.endAsyncSection(TRANSITION_OPEN_LAUNCHER, 0); } }); } } /** * Remote animation runner for animation from the app to Launcher, including recents. */ Loading Loading @@ -855,21 +887,9 @@ public abstract class QuickstepAppTransitionManagerImpl extends LauncherAppTrans // is initialized. if (launcherIsATargetWithMode(appTargets, MODE_OPENING) || mLauncher.isForceInvisible()) { if (Trace.isEnabled()) { anim.addListener(new AnimatorListenerAdapter() { @Override public void onAnimationStart(Animator animation) { Trace.beginAsyncSection(TRANSITION_OPEN_LAUNCHER, 0); super.onAnimationStart(animation); } @Override public void onAnimationEnd(Animator animation) { super.onAnimationEnd(animation); Trace.endAsyncSection(TRANSITION_OPEN_LAUNCHER, 0); } }); } addCujInstrumentation( anim, InteractionJankMonitorWrapper.CUJ_APP_CLOSE_TO_HOME, TRANSITION_OPEN_LAUNCHER); // Only register the content animation for cancellation when state changes mLauncher.getStateManager().setCurrentAnimation(anim); Loading Loading @@ -938,25 +958,12 @@ public abstract class QuickstepAppTransitionManagerImpl extends LauncherAppTrans launcherClosing); } if (Trace.isEnabled()) { final String section = addCujInstrumentation(anim, launchingFromRecents ? TRANSITION_LAUNCH_FROM_RECENTS : TRANSITION_LAUNCH_FROM_ICON; anim.addListener(new AnimatorListenerAdapter() { @Override public void onAnimationStart(Animator animation) { Trace.beginAsyncSection(section, 0); super.onAnimationStart(animation); } @Override public void onAnimationEnd(Animator animation) { super.onAnimationEnd(animation); Trace.endAsyncSection(section, 0); } }); } ? InteractionJankMonitorWrapper.CUJ_APP_LAUNCH_FROM_RECENTS : InteractionJankMonitorWrapper.CUJ_APP_LAUNCH_FROM_ICON, launchingFromRecents ? TRANSITION_LAUNCH_FROM_RECENTS : TRANSITION_LAUNCH_FROM_ICON); if (launcherClosing) { anim.addListener(mForceInvisibleListener); Loading quickstep/src/com/android/quickstep/AbsSwipeUpHandler.java +10 −0 Original line number Diff line number Diff line Loading @@ -97,6 +97,7 @@ import com.android.quickstep.views.TaskView; import com.android.systemui.shared.recents.model.ThumbnailData; import com.android.systemui.shared.system.ActivityManagerWrapper; import com.android.systemui.shared.system.InputConsumerController; import com.android.systemui.shared.system.InteractionJankMonitorWrapper; import com.android.systemui.shared.system.LatencyTrackerCompat; import com.android.systemui.shared.system.RemoteAnimationTargetCompat; import com.android.systemui.shared.system.TaskInfoCompat; Loading Loading @@ -1130,10 +1131,12 @@ public abstract class AbsSwipeUpHandler<T extends StatefulActivity<?>, Q extends anim.addOnUpdateListener((r, p) -> { updateSysUiFlags(Math.max(p, mCurrentShift.value)); }); final int cuj = InteractionJankMonitorWrapper.CUJ_APP_CLOSE_TO_HOME; anim.addAnimatorListener(new AnimationSuccessListener() { @Override public void onAnimationStart(Animator animation) { Trace.beginAsyncSection(TRANSITION_OPEN_LAUNCHER, 0); InteractionJankMonitorWrapper.begin(cuj); if (mActivity != null) { removeLiveTileOverlay(); } Loading @@ -1147,6 +1150,13 @@ public abstract class AbsSwipeUpHandler<T extends StatefulActivity<?>, Q extends // Make sure recents is in its final state maybeUpdateRecentsAttachedState(false); mActivityInterface.onSwipeUpToHomeComplete(mDeviceState); InteractionJankMonitorWrapper.end(cuj); } @Override public void onAnimationCancel(Animator animation) { super.onAnimationCancel(animation); InteractionJankMonitorWrapper.cancel(cuj); } @Override Loading Loading
quickstep/src/com/android/launcher3/BaseQuickstepLauncher.java +8 −0 Original line number Diff line number Diff line Loading @@ -22,6 +22,8 @@ import static com.android.launcher3.LauncherState.NORMAL; import static com.android.quickstep.SysUINavigationMode.removeShelfFromOverview; import static com.android.systemui.shared.system.ActivityManagerWrapper.CLOSE_SYSTEM_WINDOWS_REASON_HOME_KEY; import com.android.systemui.shared.system.InteractionJankMonitorWrapper; import android.animation.AnimatorSet; import android.animation.ValueAnimator; import android.content.Intent; Loading Loading @@ -307,4 +309,10 @@ public abstract class BaseQuickstepLauncher extends Launcher public void setHintUserWillBeActive() { addActivityFlags(ACTIVITY_STATE_USER_WILL_BE_ACTIVE); } @Override public void onAttachedToWindow() { super.onAttachedToWindow(); InteractionJankMonitorWrapper.init(getWindow().getDecorView()); } }
quickstep/src/com/android/launcher3/QuickstepAppTransitionManagerImpl.java +41 −34 Original line number Diff line number Diff line Loading @@ -66,6 +66,7 @@ import androidx.annotation.Nullable; import com.android.launcher3.DeviceProfile.OnDeviceProfileChangeListener; import com.android.launcher3.allapps.AllAppsTransitionController; import com.android.launcher3.anim.AnimationSuccessListener; import com.android.launcher3.config.FeatureFlags; import com.android.launcher3.dragndrop.DragLayer; import com.android.launcher3.shortcuts.DeepShortcutView; Loading @@ -81,6 +82,7 @@ import com.android.quickstep.util.StaggeredWorkspaceAnim; import com.android.quickstep.util.SurfaceTransactionApplier; import com.android.systemui.shared.system.ActivityCompat; import com.android.systemui.shared.system.ActivityOptionsCompat; import com.android.systemui.shared.system.InteractionJankMonitorWrapper; import com.android.systemui.shared.system.QuickStepContract; import com.android.systemui.shared.system.RemoteAnimationAdapterCompat; import com.android.systemui.shared.system.RemoteAnimationDefinitionCompat; Loading Loading @@ -791,6 +793,36 @@ public abstract class QuickstepAppTransitionManagerImpl extends LauncherAppTrans == PackageManager.PERMISSION_GRANTED; } private void addCujInstrumentation(Animator anim, int cuj, String transition) { if (Trace.isEnabled()) { anim.addListener(new AnimationSuccessListener() { @Override public void onAnimationStart(Animator animation) { Trace.beginAsyncSection(transition, 0); InteractionJankMonitorWrapper.begin(cuj); super.onAnimationStart(animation); } @Override public void onAnimationCancel(Animator animation) { super.onAnimationCancel(animation); InteractionJankMonitorWrapper.cancel(cuj); } @Override public void onAnimationSuccess(Animator animator) { InteractionJankMonitorWrapper.end(cuj); } @Override public void onAnimationEnd(Animator animation) { super.onAnimationEnd(animation); Trace.endAsyncSection(TRANSITION_OPEN_LAUNCHER, 0); } }); } } /** * Remote animation runner for animation from the app to Launcher, including recents. */ Loading Loading @@ -855,21 +887,9 @@ public abstract class QuickstepAppTransitionManagerImpl extends LauncherAppTrans // is initialized. if (launcherIsATargetWithMode(appTargets, MODE_OPENING) || mLauncher.isForceInvisible()) { if (Trace.isEnabled()) { anim.addListener(new AnimatorListenerAdapter() { @Override public void onAnimationStart(Animator animation) { Trace.beginAsyncSection(TRANSITION_OPEN_LAUNCHER, 0); super.onAnimationStart(animation); } @Override public void onAnimationEnd(Animator animation) { super.onAnimationEnd(animation); Trace.endAsyncSection(TRANSITION_OPEN_LAUNCHER, 0); } }); } addCujInstrumentation( anim, InteractionJankMonitorWrapper.CUJ_APP_CLOSE_TO_HOME, TRANSITION_OPEN_LAUNCHER); // Only register the content animation for cancellation when state changes mLauncher.getStateManager().setCurrentAnimation(anim); Loading Loading @@ -938,25 +958,12 @@ public abstract class QuickstepAppTransitionManagerImpl extends LauncherAppTrans launcherClosing); } if (Trace.isEnabled()) { final String section = addCujInstrumentation(anim, launchingFromRecents ? TRANSITION_LAUNCH_FROM_RECENTS : TRANSITION_LAUNCH_FROM_ICON; anim.addListener(new AnimatorListenerAdapter() { @Override public void onAnimationStart(Animator animation) { Trace.beginAsyncSection(section, 0); super.onAnimationStart(animation); } @Override public void onAnimationEnd(Animator animation) { super.onAnimationEnd(animation); Trace.endAsyncSection(section, 0); } }); } ? InteractionJankMonitorWrapper.CUJ_APP_LAUNCH_FROM_RECENTS : InteractionJankMonitorWrapper.CUJ_APP_LAUNCH_FROM_ICON, launchingFromRecents ? TRANSITION_LAUNCH_FROM_RECENTS : TRANSITION_LAUNCH_FROM_ICON); if (launcherClosing) { anim.addListener(mForceInvisibleListener); Loading
quickstep/src/com/android/quickstep/AbsSwipeUpHandler.java +10 −0 Original line number Diff line number Diff line Loading @@ -97,6 +97,7 @@ import com.android.quickstep.views.TaskView; import com.android.systemui.shared.recents.model.ThumbnailData; import com.android.systemui.shared.system.ActivityManagerWrapper; import com.android.systemui.shared.system.InputConsumerController; import com.android.systemui.shared.system.InteractionJankMonitorWrapper; import com.android.systemui.shared.system.LatencyTrackerCompat; import com.android.systemui.shared.system.RemoteAnimationTargetCompat; import com.android.systemui.shared.system.TaskInfoCompat; Loading Loading @@ -1130,10 +1131,12 @@ public abstract class AbsSwipeUpHandler<T extends StatefulActivity<?>, Q extends anim.addOnUpdateListener((r, p) -> { updateSysUiFlags(Math.max(p, mCurrentShift.value)); }); final int cuj = InteractionJankMonitorWrapper.CUJ_APP_CLOSE_TO_HOME; anim.addAnimatorListener(new AnimationSuccessListener() { @Override public void onAnimationStart(Animator animation) { Trace.beginAsyncSection(TRANSITION_OPEN_LAUNCHER, 0); InteractionJankMonitorWrapper.begin(cuj); if (mActivity != null) { removeLiveTileOverlay(); } Loading @@ -1147,6 +1150,13 @@ public abstract class AbsSwipeUpHandler<T extends StatefulActivity<?>, Q extends // Make sure recents is in its final state maybeUpdateRecentsAttachedState(false); mActivityInterface.onSwipeUpToHomeComplete(mDeviceState); InteractionJankMonitorWrapper.end(cuj); } @Override public void onAnimationCancel(Animator animation) { super.onAnimationCancel(animation); InteractionJankMonitorWrapper.cancel(cuj); } @Override Loading