diff --git a/packages/SystemUI/src/com/android/systemui/recents/OverviewProxyService.java b/packages/SystemUI/src/com/android/systemui/recents/OverviewProxyService.java index 850f8a5959a09..cd97f68da68f4 100644 --- a/packages/SystemUI/src/com/android/systemui/recents/OverviewProxyService.java +++ b/packages/SystemUI/src/com/android/systemui/recents/OverviewProxyService.java @@ -213,7 +213,9 @@ public class OverviewProxyService extends CurrentUserTracker implements // TODO move this logic to message queue mStatusBarOptionalLazy.ifPresent(statusBarLazy -> { StatusBar statusBar = statusBarLazy.get(); - statusBar.getPanelController().startExpandLatencyTracking(); + if (event.getActionMasked() == ACTION_DOWN) { + statusBar.getPanelController().startExpandLatencyTracking(); + } mHandler.post(()-> { int action = event.getActionMasked(); if (action == ACTION_DOWN) { diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelViewController.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelViewController.java index e2af940e66a74..83dead4167db1 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelViewController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelViewController.java @@ -22,7 +22,6 @@ import static androidx.constraintlayout.widget.ConstraintSet.END; import static androidx.constraintlayout.widget.ConstraintSet.PARENT_ID; import static androidx.constraintlayout.widget.ConstraintSet.START; -import static com.android.internal.jank.InteractionJankMonitor.CUJ_NOTIFICATION_SHADE_EXPAND_COLLAPSE; import static com.android.internal.jank.InteractionJankMonitor.CUJ_NOTIFICATION_SHADE_QS_EXPAND_COLLAPSE; import static com.android.systemui.classifier.Classifier.QS_COLLAPSE; import static com.android.systemui.classifier.Classifier.QUICK_SETTINGS; @@ -1691,7 +1690,6 @@ public class NotificationPanelViewController extends PanelViewController { return; } mExpectingSynthesizedDown = true; - InteractionJankMonitor.getInstance().begin(mView, CUJ_NOTIFICATION_SHADE_EXPAND_COLLAPSE); onTrackingStarted(); updatePanelExpanded(); } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelViewController.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelViewController.java index 5a2a6f21f94aa..adaf1dbc5be2f 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelViewController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelViewController.java @@ -633,6 +633,12 @@ public abstract class PanelViewController { animator.addListener(new AnimatorListenerAdapter() { private boolean mCancelled; + @Override + public void onAnimationStart(Animator animation) { + InteractionJankMonitor.getInstance() + .begin(mView, CUJ_NOTIFICATION_SHADE_EXPAND_COLLAPSE); + } + @Override public void onAnimationCancel(Animator animation) { mCancelled = true; @@ -1396,11 +1402,14 @@ public abstract class PanelViewController { case MotionEvent.ACTION_CANCEL: addMovement(event); endMotionEvent(event, x, y, false /* forceCancel */); - InteractionJankMonitor monitor = InteractionJankMonitor.getInstance(); - if (event.getActionMasked() == MotionEvent.ACTION_UP) { - monitor.end(CUJ_NOTIFICATION_SHADE_EXPAND_COLLAPSE); - } else { - monitor.cancel(CUJ_NOTIFICATION_SHADE_EXPAND_COLLAPSE); + // mHeightAnimator is null, there is no remaining frame, ends instrumenting. + if (mHeightAnimator == null) { + InteractionJankMonitor monitor = InteractionJankMonitor.getInstance(); + if (event.getActionMasked() == MotionEvent.ACTION_UP) { + monitor.end(CUJ_NOTIFICATION_SHADE_EXPAND_COLLAPSE); + } else { + monitor.cancel(CUJ_NOTIFICATION_SHADE_EXPAND_COLLAPSE); + } } break; }