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