Draw 4x5 graph for grid options
Simplified the draw method
Screenshot: https://screenshot.googleplex.com/8hsf2bUJXM3osH3.png
Screenshot (high density): https://screenshot.googleplex.com/6A7fpV3ow5FWHdW.png
Screenshot (low density): https://screenshot.googleplex.com/AJDAgo5jWfDBgSe.png
Bug: 186606404
Test: manual, at different screen densities
Change-Id: Ibe4080be00d492028b1cb74ed1700498ad812196
diff --git a/src/com/android/customization/model/grid/LauncherGridOptionsProvider.java b/src/com/android/customization/model/grid/LauncherGridOptionsProvider.java
index cdab1a6..06c4761 100644
--- a/src/com/android/customization/model/grid/LauncherGridOptionsProvider.java
+++ b/src/com/android/customization/model/grid/LauncherGridOptionsProvider.java
@@ -92,7 +92,7 @@
int rows = c.getInt(c.getColumnIndex(COL_ROWS));
int cols = c.getInt(c.getColumnIndex(COL_COLS));
int previewCount = c.getInt(c.getColumnIndex(COL_PREVIEW_COUNT));
- boolean isSet = Boolean.valueOf(c.getString(c.getColumnIndex(COL_IS_DEFAULT)));
+ boolean isSet = Boolean.parseBoolean(c.getString(c.getColumnIndex(COL_IS_DEFAULT)));
String title = GRID_NAME_NORMAL.equals(name)
? mContext.getString(R.string.default_theme_title)
: mContext.getString(R.string.grid_title_pattern, cols, rows);
diff --git a/src/com/android/customization/widget/GridTileDrawable.java b/src/com/android/customization/widget/GridTileDrawable.java
index 5039cf6..83cd0b5 100644
--- a/src/com/android/customization/widget/GridTileDrawable.java
+++ b/src/com/android/customization/widget/GridTileDrawable.java
@@ -40,7 +40,8 @@
@Override
protected void onBoundsChange(Rect bounds) {
super.onBoundsChange(bounds);
- mCellSize = (float) bounds.height() / mRows;
+ int longestSide = Math.max(mRows, mCols);
+ mCellSize = (float) bounds.width() / longestSide;
float scaleFactor = (mCellSize - 2 * SPACE_BETWEEN_ICONS) / PATH_SIZE;
mScaleMatrix.setScale(scaleFactor, scaleFactor);
@@ -49,11 +50,13 @@
@Override
public void draw(Canvas canvas) {
+ double size = getBounds().width();
+
for (int r = 0; r < mRows; r++) {
for (int c = 0; c < mCols; c++) {
int saveCount = canvas.save();
- float x = (c * mCellSize) + SPACE_BETWEEN_ICONS;
- float y = (r * mCellSize) + SPACE_BETWEEN_ICONS;
+ float x = (float) ((r * size / mRows) + SPACE_BETWEEN_ICONS);
+ float y = (float) ((c * size / mCols) + SPACE_BETWEEN_ICONS);
canvas.translate(x, y);
canvas.drawPath(mTransformedPath, mPaint);
canvas.restoreToCount(saveCount);