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

Commit f5c3a290 authored by Milton Wu's avatar Milton Wu Committed by Android (Google) Code Review
Browse files

Merge "Impl CUJ_NOTIFICATION_SHADE_QS_SCROLL_SWIPE"

parents 68fbeda8 a6dcbf8f
Loading
Loading
Loading
Loading
+25 −0
Original line number Original line Diff line number Diff line
package com.android.systemui.qs;
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.Animator;
import android.animation.AnimatorListenerAdapter;
import android.animation.AnimatorListenerAdapter;
import android.animation.AnimatorSet;
import android.animation.AnimatorSet;
@@ -20,6 +22,7 @@ import android.widget.Scroller;
import androidx.viewpager.widget.PagerAdapter;
import androidx.viewpager.widget.PagerAdapter;
import androidx.viewpager.widget.ViewPager;
import androidx.viewpager.widget.ViewPager;


import com.android.internal.jank.InteractionJankMonitor;
import com.android.internal.logging.UiEventLogger;
import com.android.internal.logging.UiEventLogger;
import com.android.systemui.R;
import com.android.systemui.R;
import com.android.systemui.plugins.qs.QSTile;
import com.android.systemui.plugins.qs.QSTile;
@@ -533,6 +536,11 @@ public class PagedTileLayout extends ViewPager implements QSTileLayout {


    private final ViewPager.OnPageChangeListener mOnPageChangeListener =
    private final ViewPager.OnPageChangeListener mOnPageChangeListener =
            new ViewPager.SimpleOnPageChangeListener() {
            new ViewPager.SimpleOnPageChangeListener() {

                private int mCurrentScrollState = SCROLL_STATE_IDLE;
                // Flag to avoid redundant call InteractionJankMonitor::begin()
                private boolean mIsScrollJankTraceBegin = false;

                @Override
                @Override
                public void onPageSelected(int position) {
                public void onPageSelected(int position) {
                    updateSelected();
                    updateSelected();
@@ -546,6 +554,13 @@ public class PagedTileLayout extends ViewPager implements QSTileLayout {
                @Override
                @Override
                public void onPageScrolled(int position, float positionOffset,
                public void onPageScrolled(int position, float positionOffset,
                        int positionOffsetPixels) {
                        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;
                    if (mPageIndicator == null) return;
                    mPageIndicatorPosition = position + positionOffset;
                    mPageIndicatorPosition = position + positionOffset;
                    mPageIndicator.setLocation(mPageIndicatorPosition);
                    mPageIndicator.setLocation(mPageIndicatorPosition);
@@ -554,6 +569,16 @@ public class PagedTileLayout extends ViewPager implements QSTileLayout {
                                (isLayoutRtl() ? position == mPages.size() - 1 : position == 0));
                                (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() {
    private final PagerAdapter mAdapter = new PagerAdapter() {