Impl CUJ_NOTIFICATION_SHADE_QS_SCROLL_SWIPE

Implement CUJ_NOTIFICATION_SHADE_QS_SCROLL_SWIPE during QS screen
scrolling, and swiping.

Bug: 199715431
Test: atest QSPanelControllerBaseTest QSPanelControllerTest
      QSSquishinessControllerTest
Change-Id: I61957c986aa1fc3a79e00c0885e75e27664daf3d
This commit is contained in:
Milton Wu
2021-11-15 14:29:37 +08:00
parent 2f3eca13c2
commit a6dcbf8fc0

View File

@@ -1,5 +1,7 @@
package com.android.systemui.qs;
import static com.android.internal.jank.InteractionJankMonitor.CUJ_NOTIFICATION_SHADE_QS_SCROLL_SWIPE;
import android.animation.Animator;
import android.animation.AnimatorListenerAdapter;
import android.animation.AnimatorSet;
@@ -20,6 +22,7 @@ import android.widget.Scroller;
import androidx.viewpager.widget.PagerAdapter;
import androidx.viewpager.widget.ViewPager;
import com.android.internal.jank.InteractionJankMonitor;
import com.android.internal.logging.UiEventLogger;
import com.android.systemui.R;
import com.android.systemui.plugins.qs.QSTile;
@@ -533,6 +536,11 @@ public class PagedTileLayout extends ViewPager implements QSTileLayout {
private final ViewPager.OnPageChangeListener mOnPageChangeListener =
new ViewPager.SimpleOnPageChangeListener() {
private int mCurrentScrollState = SCROLL_STATE_IDLE;
// Flag to avoid redundant call InteractionJankMonitor::begin()
private boolean mIsScrollJankTraceBegin = false;
@Override
public void onPageSelected(int position) {
updateSelected();
@@ -546,6 +554,13 @@ public class PagedTileLayout extends ViewPager implements QSTileLayout {
@Override
public void onPageScrolled(int position, float positionOffset,
int positionOffsetPixels) {
if (!mIsScrollJankTraceBegin && mCurrentScrollState == SCROLL_STATE_DRAGGING) {
InteractionJankMonitor.getInstance().begin(PagedTileLayout.this,
CUJ_NOTIFICATION_SHADE_QS_SCROLL_SWIPE);
mIsScrollJankTraceBegin = true;
}
if (mPageIndicator == null) return;
mPageIndicatorPosition = position + positionOffset;
mPageIndicator.setLocation(mPageIndicatorPosition);
@@ -554,6 +569,16 @@ public class PagedTileLayout extends ViewPager implements QSTileLayout {
(isLayoutRtl() ? position == mPages.size() - 1 : position == 0));
}
}
@Override
public void onPageScrollStateChanged(int state) {
if (state != mCurrentScrollState && state == SCROLL_STATE_IDLE) {
InteractionJankMonitor.getInstance().end(
CUJ_NOTIFICATION_SHADE_QS_SCROLL_SWIPE);
mIsScrollJankTraceBegin = false;
}
mCurrentScrollState = state;
}
};
private final PagerAdapter mAdapter = new PagerAdapter() {