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