summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Fabian Kozynski <kozynski@google.com> 2019-11-11 12:16:27 -0500
committer Fabian Kozynski <kozynski@google.com> 2019-11-11 12:16:27 -0500
commit4372f7c44d9a18e78253784b1ff864140f3a85ab (patch)
treeb48430ad31b2e9c263b21540359498e917c385e7
parent5fdaa0c9af03cf5199bc6d6bb630d4c18f5bce05 (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.java13
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);
}
}