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
This commit is contained in:
@@ -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) {
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user