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

Commit 30fc7e95 authored by Ahan Wu's avatar Ahan Wu
Browse files

Refine the latency and jank instrumentation of opening panel

We had two problems, the first one is that the latency instruemntation
overlapped with the jank instrumentation; the second one is that
the swipe / fling instrumentation might be ended too early and the
fling part was ignored.

Bug: 169221093
Bug: 176953201
Test: See the doc list in comment
Change-Id: I11937d02a3a05c82dd2526ae59ccd472f39309c7
parent 5b6127df
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -213,7 +213,9 @@ public class OverviewProxyService extends CurrentUserTracker implements
                // TODO move this logic to message queue
                mStatusBarOptionalLazy.ifPresent(statusBarLazy -> {
                    StatusBar statusBar = statusBarLazy.get();
                    if (event.getActionMasked() == ACTION_DOWN) {
                        statusBar.getPanelController().startExpandLatencyTracking();
                    }
                    mHandler.post(()-> {
                        int action = event.getActionMasked();
                        if (action == ACTION_DOWN) {
+0 −2
Original line number Diff line number Diff line
@@ -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();
    }
+14 −5
Original line number Diff line number Diff line
@@ -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,12 +1402,15 @@ public abstract class PanelViewController {
                case MotionEvent.ACTION_CANCEL:
                    addMovement(event);
                    endMotionEvent(event, x, y, false /* forceCancel */);
                    // 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;
            }
            return !mGestureWaitForTouchSlop || mTracking;