Updating folder grid sizes for various devices

Change-Id: Ifd5930a4d6f54428500c0ef61ef21c0fc6a6f5cd
diff --git a/src/com/android/launcher3/DeviceProfile.java b/src/com/android/launcher3/DeviceProfile.java
index 918517e..94589ad 100644
--- a/src/com/android/launcher3/DeviceProfile.java
+++ b/src/com/android/launcher3/DeviceProfile.java
@@ -69,8 +69,10 @@
     String name;
     float minWidthDps;
     float minHeightDps;
-    public float numRows;
-    public float numColumns;
+    public int numRows;
+    public int numColumns;
+    public int numFolderRows;
+    public int numFolderColumns;
     float numHotseatIcons;
     float iconSize;
     private float iconTextSize;
@@ -138,8 +140,9 @@
 
     private ArrayList<DeviceProfileCallbacks> mCallbacks = new ArrayList<DeviceProfileCallbacks>();
 
-    DeviceProfile(String n, float w, float h, float r, float c,
-                  float is, float its, float hs, float his, int dlId) {
+    DeviceProfile(String n, float w, float h,
+            int r, int c, int fr, int fc,
+            float is, float its, float hs, float his, int dlId) {
         // Ensure that we have an odd number of hotseat items (since we need to place all apps)
         if (hs % 2 == 0) {
             throw new RuntimeException("All Device Profiles must have an odd number of hotseat spaces");
@@ -148,8 +151,12 @@
         name = n;
         minWidthDps = w;
         minHeightDps = h;
+
         numRows = r;
         numColumns = c;
+        numFolderRows = fr;
+        numFolderColumns = fc;
+
         iconSize = is;
         iconTextSize = its;
         numHotseatIcons = hs;
@@ -210,6 +217,9 @@
         // Snap to the closest column count
         numColumns = closestProfile.numColumns;
 
+        numFolderRows = closestProfile.numFolderRows;
+        numFolderColumns = closestProfile.numFolderColumns;
+
         // Snap to the closest hotseat size
         numHotseatIcons = closestProfile.numHotseatIcons;
         hotseatAllAppsRank = (int) (numHotseatIcons / 2);
@@ -266,8 +276,8 @@
             DeviceProfile partnerDp = p.getDeviceProfileOverride(dm);
             if (partnerDp != null) {
                 if (partnerDp.numRows > 0 && partnerDp.numColumns > 0) {
-                    numRows = partnerDp.numRows;
-                    numColumns = partnerDp.numColumns;
+                    numRows = numFolderRows = partnerDp.numRows;
+                    numColumns = numFolderColumns = partnerDp.numColumns;
                 }
                 if (partnerDp.allAppsShortEdgeCount > 0 && partnerDp.allAppsLongEdgeCount > 0) {
                     allAppsShortEdgeCount = partnerDp.allAppsShortEdgeCount;
diff --git a/src/com/android/launcher3/DynamicGrid.java b/src/com/android/launcher3/DynamicGrid.java
index 24da97f..d22427f 100644
--- a/src/com/android/launcher3/DynamicGrid.java
+++ b/src/com/android/launcher3/DynamicGrid.java
@@ -59,30 +59,30 @@
         DEFAULT_ICON_SIZE_PX = pxFromDp(DEFAULT_ICON_SIZE_DP, dm);
         // Our phone profiles include the bar sizes in each orientation
         deviceProfiles.add(new DeviceProfile("Super Short Stubby",
-                255, 300,  2, 3,  48, 13, 3, 48, R.xml.default_workspace_4x4));
+                255, 300,  2, 3, 2, 3, 48, 13, 3, 48, R.xml.default_workspace_4x4));
         deviceProfiles.add(new DeviceProfile("Shorter Stubby",
-                255, 400,  3, 3,  48, 13, 3, 48, R.xml.default_workspace_4x4));
+                255, 400,  3, 3, 3, 3, 48, 13, 3, 48, R.xml.default_workspace_4x4));
         deviceProfiles.add(new DeviceProfile("Short Stubby",
-                275, 420,  3, 4,  48, 13, 5, 48, R.xml.default_workspace_4x4));
+                275, 420,  3, 4, 3, 4, 48, 13, 5, 48, R.xml.default_workspace_4x4));
         deviceProfiles.add(new DeviceProfile("Stubby",
-                255, 450,  3, 4,  48, 13, 5, 48, R.xml.default_workspace_4x4));
+                255, 450,  3, 4, 3, 4, 48, 13, 5, 48, R.xml.default_workspace_4x4));
         deviceProfiles.add(new DeviceProfile("Nexus S",
-                296, 491.33f,  4, 4,  48, 13, 5, 48, R.xml.default_workspace_4x4));
+                296, 491.33f,  4, 4, 4, 4, 48, 13, 5, 48, R.xml.default_workspace_4x4));
         deviceProfiles.add(new DeviceProfile("Nexus 4",
-                335, 567,  4, 4,  DEFAULT_ICON_SIZE_DP, 13, 5, 56, R.xml.default_workspace_4x4));
+                335, 567,  4, 4, 4, 4, DEFAULT_ICON_SIZE_DP, 13, 5, 56, R.xml.default_workspace_4x4));
         deviceProfiles.add(new DeviceProfile("Nexus 5",
-                359, 567,  4, 4,  DEFAULT_ICON_SIZE_DP, 13, 5, 56, R.xml.default_workspace_4x4));
+                359, 567,  4, 4, 4, 4, DEFAULT_ICON_SIZE_DP, 13, 5, 56, R.xml.default_workspace_4x4));
         deviceProfiles.add(new DeviceProfile("Large Phone",
-                406, 694,  5, 5,  64, 14.4f,  5, 56, R.xml.default_workspace_5x5));
+                406, 694,  5, 5, 4, 4,  64, 14.4f,  5, 56, R.xml.default_workspace_5x5));
         // The tablet profile is odd in that the landscape orientation
         // also includes the nav bar on the side
         deviceProfiles.add(new DeviceProfile("Nexus 7",
-                575, 904,  5, 6,  72, 14.4f,  7, 60, R.xml.default_workspace_5x6));
+                575, 904,  5, 6, 4, 5, 72, 14.4f,  7, 60, R.xml.default_workspace_5x6));
         // Larger tablet profiles always have system bars on the top & bottom
         deviceProfiles.add(new DeviceProfile("Nexus 10",
-                727, 1207,  5, 6,  76, 14.4f,  7, 64, R.xml.default_workspace_5x6));
+                727, 1207,  5, 6, 4, 5, 76, 14.4f,  7, 64, R.xml.default_workspace_5x6));
         deviceProfiles.add(new DeviceProfile("20-inch Tablet",
-                1527, 2527,  7, 7,  100, 20,  7, 72, R.xml.default_workspace_4x4));
+                1527, 2527,  7, 7, 6, 6, 100, 20,  7, 72, R.xml.default_workspace_4x4));
         mMinWidth = dpiFromPx(minWidthPx, dm);
         mMinHeight = dpiFromPx(minHeightPx, dm);
         mProfile = new DeviceProfile(context, deviceProfiles,
diff --git a/src/com/android/launcher3/FolderPagedView.java b/src/com/android/launcher3/FolderPagedView.java
index a1c909a..9f2f225 100644
--- a/src/com/android/launcher3/FolderPagedView.java
+++ b/src/com/android/launcher3/FolderPagedView.java
@@ -51,9 +51,6 @@
 
     private static final int[] sTempPosArray = new int[2];
 
-    // TODO: Remove this restriction
-    private static final int MAX_ITEMS_PER_PAGE = 4;
-
     public final boolean rtlLayout;
 
     private final LayoutInflater mInflater;
@@ -80,13 +77,8 @@
         LauncherAppState app = LauncherAppState.getInstance();
 
         DeviceProfile grid = app.getDynamicGrid().getDeviceProfile();
-        if (ALLOW_FOLDER_SCROLL) {
-            mMaxCountX = Math.min((int) grid.numColumns, MAX_ITEMS_PER_PAGE);
-            mMaxCountY = Math.min((int) grid.numRows, MAX_ITEMS_PER_PAGE);
-        } else {
-            mMaxCountX = (int) grid.numColumns;
-            mMaxCountY = (int) grid.numRows;
-        }
+        mMaxCountX = (int) grid.numFolderColumns;
+        mMaxCountY = (int) grid.numFolderRows;
 
         mMaxItemsPerPage = mMaxCountX * mMaxCountY;