diff --git a/src/com/android/customization/model/grid/GridOption.java b/src/com/android/customization/model/grid/GridOption.java
index b350351..1218a19 100644
--- a/src/com/android/customization/model/grid/GridOption.java
+++ b/src/com/android/customization/model/grid/GridOption.java
@@ -48,6 +48,7 @@
     private final GridTileDrawable mTileDrawable;
     public final String title;
     public final String name;
+    public final int gridIconId;
     public final int rows;
     public final int cols;
     public final Uri previewImageUri;
@@ -55,12 +56,13 @@
     private boolean mIsCurrent;
 
     public GridOption(String title, String name, boolean isCurrent, int rows, int cols,
-            Uri previewImageUri, int previewPagesCount, String iconShapePath) {
+            Uri previewImageUri, int previewPagesCount, String iconShapePath, int gridIconId) {
         this.title = title;
         mIsCurrent = isCurrent;
         mIconShapePath = iconShapePath;
         mTileDrawable = new GridTileDrawable(rows, cols, mIconShapePath);
         this.name = name;
+        this.gridIconId = gridIconId;
         this.rows = rows;
         this.cols = cols;
         this.previewImageUri = previewImageUri;
@@ -76,6 +78,7 @@
         mIsCurrent = in.readByte() != 0;
         mIconShapePath = in.readString();
         name = in.readString();
+        gridIconId = in.readInt();
         rows = in.readInt();
         cols = in.readInt();
         previewImageUri = in.readParcelable(Uri.class.getClassLoader());
diff --git a/src/com/android/customization/model/grid/LauncherGridOptionsProvider.java b/src/com/android/customization/model/grid/LauncherGridOptionsProvider.java
index f08acc9..6c90e16 100644
--- a/src/com/android/customization/model/grid/LauncherGridOptionsProvider.java
+++ b/src/com/android/customization/model/grid/LauncherGridOptionsProvider.java
@@ -48,6 +48,7 @@
 
     private static final String COL_NAME = "name";
     private static final String COL_GRID_TITLE = "grid_title";
+    private static final String COL_GRID_ICON_ID = "grid_icon_id";
     private static final String COL_ROWS = "rows";
     private static final String COL_COLS = "cols";
     private static final String COL_PREVIEW_COUNT = "preview_count";
@@ -93,7 +94,7 @@
             while(c.moveToNext()) {
                 String name = c.getString(c.getColumnIndex(COL_NAME));
                 String title = c.getString(c.getColumnIndex(COL_GRID_TITLE));
-
+                int gridIconId = c.getInt(c.getColumnIndex(COL_GRID_ICON_ID));
                 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));
@@ -102,7 +103,7 @@
                     title = mContext.getString(R.string.grid_title_pattern, cols, rows);
                 }
                 mOptions.add(new GridOption(title, name, isSet, rows, cols,
-                        mPreviewUtils.getUri(PREVIEW), previewCount, iconPath));
+                        mPreviewUtils.getUri(PREVIEW), previewCount, iconPath, gridIconId));
             }
         } catch (Exception e) {
             mOptions = null;
diff --git a/tests/robotests/src/com/android/customization/model/grid/GridOptionsManagerTest.java b/tests/robotests/src/com/android/customization/model/grid/GridOptionsManagerTest.java
index 52c6489..34418fc 100644
--- a/tests/robotests/src/com/android/customization/model/grid/GridOptionsManagerTest.java
+++ b/tests/robotests/src/com/android/customization/model/grid/GridOptionsManagerTest.java
@@ -50,7 +50,7 @@
     @Test
     public void testApply() {
         String gridName = "testName";
-        GridOption grid = new GridOption("testTitle", gridName, false, 2, 2, null, 1, "");
+        GridOption grid = new GridOption("testTitle", gridName, false, 2, 2, null, 1, "", 0);
         when(mProvider.applyGrid(gridName)).thenReturn(1);
 
         mManager.apply(grid, new Callback() {
