Remove QS scrolling.

Use PagedTileLayout instead of QSScrollView for displaying tiles in QS.

Bug: 73362439
Test: visual
Change-Id: I17136c30467aa62e4ba64dcdb646b6da8b5a5f51
diff --git a/packages/SystemUI/res/layout/qs_footer_impl.xml b/packages/SystemUI/res/layout/qs_footer_impl.xml
index cf88ade..f635b18 100644
--- a/packages/SystemUI/res/layout/qs_footer_impl.xml
+++ b/packages/SystemUI/res/layout/qs_footer_impl.xml
@@ -28,12 +28,6 @@
     android:clipToPadding="false">
 
     <View
-        android:id="@+id/qs_footer_background"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:background="@drawable/qs_background_primary" />
-
-    <View
         android:id="@+id/qs_footer_divider"
         android:layout_width="match_parent"
         android:layout_height="1dp"
diff --git a/packages/SystemUI/res/layout/qs_panel.xml b/packages/SystemUI/res/layout/qs_panel.xml
index 15b0f00..1c9ce18 100644
--- a/packages/SystemUI/res/layout/qs_panel.xml
+++ b/packages/SystemUI/res/layout/qs_panel.xml
@@ -54,6 +54,7 @@
         android:layout_marginTop="@*android:dimen/quick_qs_offset_height"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
+        android:layout_marginBottom="@dimen/qs_footer_height"
         android:elevation="4dp"
     />
 
diff --git a/packages/SystemUI/src/com/android/systemui/qs/QSAnimator.java b/packages/SystemUI/src/com/android/systemui/qs/QSAnimator.java
index 222c6e82..c3f7eb1 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/QSAnimator.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/QSAnimator.java
@@ -249,9 +249,11 @@
             // Fade in the tiles/labels as we reach the final position.
             mFirstPageDelayedAnimator = new TouchAnimator.Builder()
                     .setStartDelay(EXPANDED_TILE_DELAY)
+                    .addFloat(mQsPanel.getPageIndicator(), "alpha", 0, 1)
                     .addFloat(tileLayout, "alpha", 0, 1)
                     .addFloat(mQsPanel.getDivider(), "alpha", 0, 1)
                     .addFloat(mQsPanel.getFooter().getView(), "alpha", 0, 1).build();
+            mAllViews.add(mQsPanel.getPageIndicator());
             mAllViews.add(mQsPanel.getDivider());
             mAllViews.add(mQsPanel.getFooter().getView());
             float px = 0;
@@ -269,6 +271,7 @@
         }
         mNonfirstPageAnimator = new TouchAnimator.Builder()
                 .addFloat(mQuickQsPanel, "alpha", 1, 0)
+                .addFloat(mQsPanel.getPageIndicator(), "alpha", 0, 1)
                 .addFloat(mQsPanel.getDivider(), "alpha", 0, 1)
                 .setListener(mNonFirstPageListener)
                 .setEndDelay(.5f)
diff --git a/packages/SystemUI/src/com/android/systemui/qs/QSFooterImpl.java b/packages/SystemUI/src/com/android/systemui/qs/QSFooterImpl.java
index b9919a3..4f79dcd 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/QSFooterImpl.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/QSFooterImpl.java
@@ -87,7 +87,6 @@
     private View mActionsContainer;
     private View mDragHandle;
     private final int mDragHandleExpandOffset;
-    private View mBackground;
 
     public QSFooterImpl(Context context, AttributeSet attrs) {
         super(context, attrs);
@@ -100,7 +99,6 @@
     @Override
     protected void onFinishInflate() {
         super.onFinishInflate();
-        mBackground = findViewById(R.id.qs_footer_background);
         mDivider = findViewById(R.id.qs_footer_divider);
         mEdit = findViewById(android.R.id.edit);
         mEdit.setOnClickListener(view ->
@@ -170,7 +168,6 @@
     @Nullable
     private TouchAnimator createFooterAnimator() {
         return new TouchAnimator.Builder()
-                .addFloat(mBackground, "alpha", 0, 0.90f)
                 .addFloat(mDivider, "alpha", 0, 1)
                 .addFloat(mCarrierText, "alpha", 0, 1)
                 .addFloat(mActionsContainer, "alpha", 0, 1)
diff --git a/packages/SystemUI/src/com/android/systemui/qs/QSFragment.java b/packages/SystemUI/src/com/android/systemui/qs/QSFragment.java
index d8e1051..d437f49 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/QSFragment.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/QSFragment.java
@@ -209,7 +209,7 @@
 
     @Override
     public boolean onInterceptTouchEvent(MotionEvent event) {
-        return isCustomizing() || mQSPanel.onInterceptTouchEvent(event);
+        return isCustomizing();
     }
 
     @Override
diff --git a/packages/SystemUI/src/com/android/systemui/qs/QSPanel.java b/packages/SystemUI/src/com/android/systemui/qs/QSPanel.java
index f7c388d..cdcc5e6 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/QSPanel.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/QSPanel.java
@@ -26,7 +26,6 @@
 import android.os.Handler;
 import android.os.Message;
 import android.service.quicksettings.Tile;
-import android.support.v4.widget.Space;
 import android.util.AttributeSet;
 import android.view.LayoutInflater;
 import android.view.MotionEvent;
@@ -63,6 +62,7 @@
     protected final ArrayList<TileRecord> mRecords = new ArrayList<TileRecord>();
     protected final View mBrightnessView;
     private final H mHandler = new H();
+    private final View mPageIndicator;
     private final MetricsLogger mMetricsLogger = Dependency.get(MetricsLogger.class);
 
     protected boolean mExpanded;
@@ -75,7 +75,6 @@
     protected QSSecurityFooter mFooter;
     private boolean mGridContentVisible = true;
 
-    private QSScrollLayout mScrollLayout;
     protected QSTileLayout mTileLayout;
 
     private QSCustomizer mCustomizePanel;
@@ -96,13 +95,18 @@
 
         mBrightnessView = LayoutInflater.from(mContext).inflate(
             R.layout.quick_settings_brightness_dialog, this, false);
-        mTileLayout = new TileLayout(mContext);
+        addView(mBrightnessView);
+
+        mTileLayout = (QSTileLayout) LayoutInflater.from(mContext).inflate(
+                R.layout.qs_paged_tile_layout, this, false);
         mTileLayout.setListening(mListening);
-        Space space = new Space(mContext);
-        space.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT,
-                mContext.getResources().getDimensionPixelSize(R.dimen.qs_footer_height)));
-        mScrollLayout = new QSScrollLayout(mContext, mBrightnessView, (View) mTileLayout, space);
-        addView(mScrollLayout);
+        addView((View) mTileLayout);
+
+        mPageIndicator = LayoutInflater.from(context).inflate(
+                R.layout.qs_page_indicator, this, false);
+        addView(mPageIndicator);
+
+        ((PagedTileLayout) mTileLayout).setPageIndicator((PageIndicator) mPageIndicator);
 
         addDivider();
 
@@ -127,6 +131,10 @@
         return mDivider;
     }
 
+    public View getPageIndicator() {
+        return mPageIndicator;
+    }
+
     public boolean isShowingCustomize() {
         return mCustomizePanel != null && mCustomizePanel.isCustomizing();
     }
@@ -226,13 +234,8 @@
 
     public void updateResources() {
         final Resources res = mContext.getResources();
-        mBrightnessView.setPadding(
-            mBrightnessView.getPaddingLeft(),
-            res.getDimensionPixelSize(R.dimen.qs_brightness_padding_top),
-            mBrightnessView.getPaddingRight(),
-            mBrightnessView.getPaddingBottom());
-        setPadding(
-            0, 0, 0, res.getDimensionPixelSize(R.dimen.qs_panel_padding_bottom));
+        setPadding(0, res.getDimensionPixelSize(R.dimen.qs_brightness_padding_top),
+                0, res.getDimensionPixelSize(R.dimen.qs_panel_padding_bottom));
         for (TileRecord r : mRecords) {
             r.tile.clearState();
         }
@@ -271,11 +274,8 @@
     public void setExpanded(boolean expanded) {
         if (mExpanded == expanded) return;
         mExpanded = expanded;
-        if (!mExpanded) {
-            if (mTileLayout instanceof PagedTileLayout) {
-                ((PagedTileLayout) mTileLayout).setCurrentItem(0, false);
-            }
-            mScrollLayout.setScrollY(0);
+        if (!mExpanded && mTileLayout instanceof PagedTileLayout) {
+            ((PagedTileLayout) mTileLayout).setCurrentItem(0, false);
         }
         mMetricsLogger.visibility(MetricsEvent.QS_PANEL, mExpanded);
         if (!mExpanded) {
@@ -288,14 +288,6 @@
     public void setPageListener(final PagedTileLayout.PageListener pageListener) {
         if (mTileLayout instanceof PagedTileLayout) {
             ((PagedTileLayout) mTileLayout).setPageListener(pageListener);
-        } else {
-            mScrollLayout.setOnScrollChangeListener(new OnScrollChangeListener() {
-                @Override
-                public void onScrollChange(View v, int scrollX, int scrollY, int oldScrollX,
-                        int oldScrollY) {
-                    pageListener.onPageChanged(scrollY == 0);
-                }
-            });
         }
     }
 
@@ -571,11 +563,6 @@
         mFooter.showDeviceMonitoringDialog();
     }
 
-    @Override
-    public boolean onInterceptTouchEvent(MotionEvent event) {
-        return mExpanded && mScrollLayout.shouldIntercept(event);
-    }
-
     private class H extends Handler {
         private static final int SHOW_DETAIL = 1;
         private static final int SET_TILE_VISIBILITY = 2;
diff --git a/packages/SystemUI/src/com/android/systemui/qs/QuickQSPanel.java b/packages/SystemUI/src/com/android/systemui/qs/QuickQSPanel.java
index 8314855..bdda3b9 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/QuickQSPanel.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/QuickQSPanel.java
@@ -57,8 +57,7 @@
             for (int i = 0; i < mRecords.size(); i++) {
                 mTileLayout.removeTile(mRecords.get(i));
             }
-            View tileLayoutView = (View) mTileLayout;
-            ((ViewGroup) tileLayoutView.getParent()).removeView(tileLayoutView);
+            removeView((View) mTileLayout);
         }
         mTileLayout = new HeaderTileLayout(context);
         mTileLayout.setListening(mListening);