diff options
| author | 2019-11-11 12:16:27 -0500 | |
|---|---|---|
| committer | 2019-11-11 12:16:27 -0500 | |
| commit | 4372f7c44d9a18e78253784b1ff864140f3a85ab (patch) | |
| tree | b48430ad31b2e9c263b21540359498e917c385e7 | |
| parent | 5fdaa0c9af03cf5199bc6d6bb630d4c18f5bce05 (diff) | |
Prevent division by 0 in HeaderTileLayout
If the resolution is really small, only one column fits in QQS. In that
case, set the margin between tiles to half of the white space available
and use it to center that tile.
Test: adb shell wm size 300x450
Fixes: 144093397
Change-Id: I8fdac5b2358bd4b7669ec6667438ae560231e45e
| -rw-r--r-- | packages/SystemUI/src/com/android/systemui/qs/QuickQSPanel.java | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/qs/QuickQSPanel.java b/packages/SystemUI/src/com/android/systemui/qs/QuickQSPanel.java index 94a1cf0c4e35..d377f1c793a9 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/QuickQSPanel.java +++ b/packages/SystemUI/src/com/android/systemui/qs/QuickQSPanel.java @@ -319,7 +319,14 @@ public class QuickQSPanel extends QSPanel { } else{ mColumns = mCellWidth == 0 ? 1 : Math.min(maxTiles, availableWidth / mCellWidth ); - mCellMarginHorizontal = (availableWidth - mColumns * mCellWidth) / (mColumns - 1); + // If we can only fit one column, use mCellMarginHorizontal to center it. + if (mColumns == 1) { + mCellMarginHorizontal = (availableWidth - mCellWidth) / 2; + } else { + mCellMarginHorizontal = + (availableWidth - mColumns * mCellWidth) / (mColumns - 1); + } + } return mColumns != prevNumColumns; } @@ -357,6 +364,10 @@ public class QuickQSPanel extends QSPanel { @Override protected int getColumnStart(int column) { + if (mColumns == 1) { + // Only one column/tile. Use the margin to center the tile. + return getPaddingStart() + mCellMarginHorizontal; + } return getPaddingStart() + column * (mCellWidth + mCellMarginHorizontal); } } |