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);