diff --git a/res/values/attrs.xml b/res/values/attrs.xml index 1bb4025dab..76a123978f 100644 --- a/res/values/attrs.xml +++ b/res/values/attrs.xml @@ -208,6 +208,10 @@ Needs FeatureFlags.ENABLE_RESPONSIVE_WORKSPACE enabled --> + + + diff --git a/src/com/android/launcher3/CellLayout.java b/src/com/android/launcher3/CellLayout.java index 32421a46e8..64ac84166f 100644 --- a/src/com/android/launcher3/CellLayout.java +++ b/src/com/android/launcher3/CellLayout.java @@ -382,8 +382,7 @@ public class CellLayout extends ViewGroup { private void resetCellSizeInternal(DeviceProfile deviceProfile) { switch (mContainerType) { case FOLDER: - mBorderSpace = new Point(deviceProfile.folderCellLayoutBorderSpacePx, - deviceProfile.folderCellLayoutBorderSpacePx); + mBorderSpace = new Point(deviceProfile.folderCellLayoutBorderSpacePx); break; case HOTSEAT: mBorderSpace = new Point(deviceProfile.hotseatBorderSpace, diff --git a/src/com/android/launcher3/DeviceProfile.java b/src/com/android/launcher3/DeviceProfile.java index a16627154b..bd47fca393 100644 --- a/src/com/android/launcher3/DeviceProfile.java +++ b/src/com/android/launcher3/DeviceProfile.java @@ -55,6 +55,8 @@ import com.android.launcher3.icons.IconNormalizer; import com.android.launcher3.model.data.ItemInfo; import com.android.launcher3.responsive.AllAppsSpecs; import com.android.launcher3.responsive.CalculatedAllAppsSpec; +import com.android.launcher3.responsive.CalculatedFolderSpec; +import com.android.launcher3.responsive.FolderSpecs; import com.android.launcher3.uioverrides.ApiWrapper; import com.android.launcher3.util.DisplayController; import com.android.launcher3.util.DisplayController.Info; @@ -78,8 +80,7 @@ public class DeviceProfile { public static final PointF DEFAULT_SCALE = new PointF(1.0f, 1.0f); public static final ViewScaleProvider DEFAULT_PROVIDER = itemInfo -> DEFAULT_SCALE; - public static final Consumer DEFAULT_DIMENSION_PROVIDER = dp -> { - }; + public static final Consumer DEFAULT_DIMENSION_PROVIDER = dp -> {}; public final InvariantDeviceProfile inv; private final Info mInfo; @@ -120,6 +121,9 @@ public class DeviceProfile { private AllAppsSpecs mAllAppsSpecs; private CalculatedAllAppsSpec mAllAppsResponsiveWidthSpec; private CalculatedAllAppsSpec mAllAppsResponsiveHeightSpec; + private FolderSpecs mFolderSpecs; + private CalculatedFolderSpec mResponsiveFolderWidthSpec; + private CalculatedFolderSpec mResponsiveFolderHeightSpec; /** * The maximum amount of left/right workspace padding as a percentage of the screen width. @@ -178,7 +182,7 @@ public class DeviceProfile { public int folderIconOffsetYPx; // Folder content - public int folderCellLayoutBorderSpacePx; + public Point folderCellLayoutBorderSpacePx; public int folderContentPaddingLeftRight; public int folderContentPaddingTop; @@ -314,7 +318,8 @@ public class DeviceProfile { // TODO(b/241386436): shouldn't change any launcher behaviour mIsResponsiveGrid = inv.workspaceSpecsId != INVALID_RESOURCE_HANDLE - && inv.allAppsSpecsId != INVALID_RESOURCE_HANDLE; + && inv.allAppsSpecsId != INVALID_RESOURCE_HANDLE + && inv.folderSpecsId != INVALID_RESOURCE_HANDLE; mIsScalableGrid = inv.isScalable && !isVerticalBarLayout() && !isMultiWindowMode; // Determine device posture. @@ -420,13 +425,15 @@ public class DeviceProfile { folderContentPaddingTop = folderStyle.getDimensionPixelSize( R.styleable.FolderStyle_folderTopPadding, 0); - folderCellLayoutBorderSpacePx = folderStyle.getDimensionPixelSize( + + int gutter = folderStyle.getDimensionPixelSize( R.styleable.FolderStyle_folderBorderSpace, 0); + folderCellLayoutBorderSpacePx = new Point(gutter, gutter); folderFooterHeightPx = folderStyle.getDimensionPixelSize( R.styleable.FolderStyle_folderFooterHeight, 0); folderStyle.recycle(); - } else { - folderCellLayoutBorderSpacePx = 0; + } else if (!mIsResponsiveGrid) { + folderCellLayoutBorderSpacePx = new Point(0, 0); folderFooterHeightPx = res.getDimensionPixelSize(R.dimen.folder_footer_height_default); folderContentPaddingTop = res.getDimensionPixelSize(R.dimen.folder_top_padding_default); } @@ -556,6 +563,12 @@ public class DeviceProfile { mAllAppsResponsiveHeightSpec = mAllAppsSpecs.getCalculatedHeightSpec(inv.numRows, mResponsiveHeightSpec.getAvailableSpace(), mResponsiveHeightSpec); + + mFolderSpecs = new FolderSpecs(new ResourceHelper(context, inv.folderSpecsId)); + mResponsiveFolderWidthSpec = mFolderSpecs.getWidthSpec(inv.numFolderColumns, + mResponsiveWidthSpec.getAvailableSpace(), mResponsiveWidthSpec); + mResponsiveFolderHeightSpec = mFolderSpecs.getHeightSpec(inv.numFolderRows, + mResponsiveHeightSpec.getAvailableSpace(), mResponsiveHeightSpec); } desiredWorkspaceHorizontalMarginPx = getHorizontalMarginPx(inv, res); @@ -1179,15 +1192,19 @@ public class DeviceProfile { allAppsStyle.recycle(); } + // TODO(b/288075868): Resize the icon size to make sure it will fit inside the cell size private void updateAvailableFolderCellDimensions(Resources res) { updateFolderCellSize(1f, res); + // Responsive grid doesn't need to scale the folder + if (mIsResponsiveGrid) return; + // For usability we can't have the folder use the whole width of the screen Point totalWorkspacePadding = getTotalWorkspacePadding(); // Check if the folder fit within the available height. float contentUsedHeight = folderCellHeightPx * inv.numFolderRows - + ((inv.numFolderRows - 1) * folderCellLayoutBorderSpacePx) + + ((inv.numFolderRows - 1) * folderCellLayoutBorderSpacePx.y) + folderFooterHeightPx + folderContentPaddingTop; int contentMaxHeight = availableHeightPx - totalWorkspacePadding.y; @@ -1195,7 +1212,7 @@ public class DeviceProfile { // Check if the folder fit within the available width. float contentUsedWidth = folderCellWidthPx * inv.numFolderColumns - + ((inv.numFolderColumns - 1) * folderCellLayoutBorderSpacePx) + + ((inv.numFolderColumns - 1) * folderCellLayoutBorderSpacePx.x) + folderContentPaddingLeftRight * 2; int contentMaxWidth = availableWidthPx - totalWorkspacePadding.x; float scaleX = contentMaxWidth / contentUsedWidth; @@ -1215,7 +1232,19 @@ public class DeviceProfile { int textHeight = Utilities.calculateTextHeight(folderChildTextSizePx); - if (mIsScalableGrid) { + if (mIsResponsiveGrid) { + folderCellWidthPx = mResponsiveFolderWidthSpec.getCellSizePx(); + + // Height + folderCellHeightPx = mResponsiveFolderHeightSpec.getCellSizePx(); + folderContentPaddingTop = mResponsiveFolderHeightSpec.getStartPaddingPx(); + folderFooterHeightPx = mResponsiveFolderHeightSpec.getEndPaddingPx(); + + folderCellLayoutBorderSpacePx = new Point(mResponsiveFolderWidthSpec.getGutterPx(), + mResponsiveHeightSpec.getGutterPx()); + + folderContentPaddingLeftRight = mResponsiveFolderWidthSpec.getStartPaddingPx(); + } else if (mIsScalableGrid) { if (inv.folderStyle == INVALID_RESOURCE_HANDLE) { folderCellWidthPx = roundPxValueFromFloat(getCellSize().x * scale); folderCellHeightPx = roundPxValueFromFloat(getCellSize().y * scale); @@ -1225,11 +1254,13 @@ public class DeviceProfile { } folderContentPaddingTop = roundPxValueFromFloat(folderContentPaddingTop * scale); - folderCellLayoutBorderSpacePx = roundPxValueFromFloat( - folderCellLayoutBorderSpacePx * scale); + folderCellLayoutBorderSpacePx = new Point( + roundPxValueFromFloat(folderCellLayoutBorderSpacePx.x * scale), + roundPxValueFromFloat(folderCellLayoutBorderSpacePx.y * scale) + ); folderFooterHeightPx = roundPxValueFromFloat(folderFooterHeightPx * scale); - folderContentPaddingLeftRight = folderCellLayoutBorderSpacePx; + folderContentPaddingLeftRight = folderCellLayoutBorderSpacePx.x; } else { int cellPaddingX = (int) (res.getDimensionPixelSize(R.dimen.folder_cell_x_padding) * scale); @@ -1750,8 +1781,10 @@ public class DeviceProfile { writer.println(prefix + pxToDpStr("folderChildTextSizePx", folderChildTextSizePx)); writer.println(prefix + pxToDpStr("folderChildDrawablePaddingPx", folderChildDrawablePaddingPx)); - writer.println(prefix + pxToDpStr("folderCellLayoutBorderSpacePx", - folderCellLayoutBorderSpacePx)); + writer.println(prefix + pxToDpStr("folderCellLayoutBorderSpacePx.x", + folderCellLayoutBorderSpacePx.x)); + writer.println(prefix + pxToDpStr("folderCellLayoutBorderSpacePx.y", + folderCellLayoutBorderSpacePx.y)); writer.println(prefix + pxToDpStr("folderContentPaddingLeftRight", folderContentPaddingLeftRight)); writer.println(prefix + pxToDpStr("folderTopPadding", folderContentPaddingTop)); @@ -1871,6 +1904,8 @@ public class DeviceProfile { + mAllAppsResponsiveHeightSpec.toString()); writer.println(prefix + "\tmAllAppsResponsiveWidthSpec:" + mAllAppsResponsiveWidthSpec.toString()); + writer.println(prefix + "\tmResponsiveFolderHeightSpec:" + mResponsiveFolderHeightSpec); + writer.println(prefix + "\tmResponsiveFolderWidthSpec:" + mResponsiveFolderWidthSpec); } } diff --git a/src/com/android/launcher3/InvariantDeviceProfile.java b/src/com/android/launcher3/InvariantDeviceProfile.java index 81aa2b2782..4eaacdc17c 100644 --- a/src/com/android/launcher3/InvariantDeviceProfile.java +++ b/src/com/android/launcher3/InvariantDeviceProfile.java @@ -181,6 +181,8 @@ public class InvariantDeviceProfile { public int workspaceSpecsId = INVALID_RESOURCE_HANDLE; @XmlRes public int allAppsSpecsId = INVALID_RESOURCE_HANDLE; + @XmlRes + public int folderSpecsId = INVALID_RESOURCE_HANDLE; public String dbFile; public int defaultLayoutId; @@ -356,6 +358,7 @@ public class InvariantDeviceProfile { devicePaddingId = closestProfile.devicePaddingId; workspaceSpecsId = closestProfile.mWorkspaceSpecsId; allAppsSpecsId = closestProfile.mAllAppsSpecsId; + folderSpecsId = closestProfile.mFolderSpecsId; this.deviceType = deviceType; inlineNavButtonsEndSpacing = closestProfile.inlineNavButtonsEndSpacing; @@ -803,6 +806,7 @@ public class InvariantDeviceProfile { private final int devicePaddingId; private final int mWorkspaceSpecsId; private final int mAllAppsSpecsId; + private final int mFolderSpecsId; public GridOption(Context context, AttributeSet attrs) { TypedArray a = context.obtainStyledAttributes( @@ -869,9 +873,12 @@ public class InvariantDeviceProfile { R.styleable.GridDisplayOption_workspaceSpecsId, INVALID_RESOURCE_HANDLE); mAllAppsSpecsId = a.getResourceId( R.styleable.GridDisplayOption_allAppsSpecsId, INVALID_RESOURCE_HANDLE); + mFolderSpecsId = a.getResourceId( + R.styleable.GridDisplayOption_folderSpecsId, INVALID_RESOURCE_HANDLE); } else { mWorkspaceSpecsId = INVALID_RESOURCE_HANDLE; mAllAppsSpecsId = INVALID_RESOURCE_HANDLE; + mFolderSpecsId = INVALID_RESOURCE_HANDLE; } int inlineForRotation = a.getInt(R.styleable.GridDisplayOption_inlineQsb, diff --git a/src/com/android/launcher3/ShortcutAndWidgetContainer.java b/src/com/android/launcher3/ShortcutAndWidgetContainer.java index ba6dc26b39..f921d1d8bf 100644 --- a/src/com/android/launcher3/ShortcutAndWidgetContainer.java +++ b/src/com/android/launcher3/ShortcutAndWidgetContainer.java @@ -162,7 +162,7 @@ public class ShortcutAndWidgetContainer extends ViewGroup implements FolderIcon. // No need to add padding when cell layout border spacing is present. boolean noPaddingX = (dp.cellLayoutBorderSpacePx.x > 0 && mContainerType == WORKSPACE) - || (dp.folderCellLayoutBorderSpacePx > 0 && mContainerType == FOLDER) + || (dp.folderCellLayoutBorderSpacePx.x > 0 && mContainerType == FOLDER) || (dp.hotseatBorderSpace > 0 && mContainerType == HOTSEAT); int cellPaddingX = noPaddingX ? 0 diff --git a/src/com/android/launcher3/folder/FolderAnimationManager.java b/src/com/android/launcher3/folder/FolderAnimationManager.java index dd82ecfb95..b09985cd4a 100644 --- a/src/com/android/launcher3/folder/FolderAnimationManager.java +++ b/src/com/android/launcher3/folder/FolderAnimationManager.java @@ -236,9 +236,9 @@ public class FolderAnimationManager { mFolder, startRect, endRect, finalRadius, !mIsOpening)); // Create reveal animator for the folder content (capture the top 4 icons 2x2) - int width = mDeviceProfile.folderCellLayoutBorderSpacePx + int width = mDeviceProfile.folderCellLayoutBorderSpacePx.x + mDeviceProfile.folderCellWidthPx * 2; - int height = mDeviceProfile.folderCellLayoutBorderSpacePx + int height = mDeviceProfile.folderCellLayoutBorderSpacePx.y + mDeviceProfile.folderCellHeightPx * 2; int page = mIsOpening ? mContent.getCurrentPage() : mContent.getDestinationPage(); int left = mContent.getPaddingLeft() + page * lp.width; diff --git a/src/com/android/launcher3/responsive/FolderSpecs.kt b/src/com/android/launcher3/responsive/FolderSpecs.kt index be97cf8475..f4446bc1d8 100644 --- a/src/com/android/launcher3/responsive/FolderSpecs.kt +++ b/src/com/android/launcher3/responsive/FolderSpecs.kt @@ -188,12 +188,12 @@ class FolderSpecs(resourceHelper: ResourceHelper) { } data class CalculatedFolderSpec( + val availableSpace: Int, + val cells: Int, val startPaddingPx: Int, val endPaddingPx: Int, val gutterPx: Int, - val cellSizePx: Int, - val availableSpace: Int, - val cells: Int + val cellSizePx: Int ) /** @@ -270,11 +270,11 @@ private fun convertToCalculatedFolderSpec( cellSizePx = folderSpec.cellSize.getRemainderSpaceValue(remainderSpace, cellSizePx) return CalculatedFolderSpec( + availableSpace = availableSpace, + cells = cells, startPaddingPx = startPaddingPx, endPaddingPx = endPaddingPx, gutterPx = gutterPx, - cellSizePx = cellSizePx, - availableSpace = availableSpace, - cells = cells + cellSizePx = cellSizePx ) } diff --git a/tests/src/com/android/launcher3/nonquickstep/DeviceProfileDumpTest.kt b/tests/src/com/android/launcher3/nonquickstep/DeviceProfileDumpTest.kt index c91a4a9041..0a957712e2 100644 --- a/tests/src/com/android/launcher3/nonquickstep/DeviceProfileDumpTest.kt +++ b/tests/src/com/android/launcher3/nonquickstep/DeviceProfileDumpTest.kt @@ -84,7 +84,8 @@ class DeviceProfileDumpTest : AbstractDeviceProfileTest() { "\tfolderChildIconSizePx: 147.0px (56.0dp)\n" + "\tfolderChildTextSizePx: 38.0px (14.476191dp)\n" + "\tfolderChildDrawablePaddingPx: 10.0px (3.8095238dp)\n" + - "\tfolderCellLayoutBorderSpacePx: 0.0px (0.0dp)\n" + + "\tfolderCellLayoutBorderSpacePx.x: 0.0px (0.0dp)\n" + + "\tfolderCellLayoutBorderSpacePx.y: 0.0px (0.0dp)\n" + "\tfolderContentPaddingLeftRight: 21.0px (8.0dp)\n" + "\tfolderTopPadding: 63.0px (24.0dp)\n" + "\tfolderFooterHeight: 147.0px (56.0dp)\n" + @@ -220,7 +221,8 @@ class DeviceProfileDumpTest : AbstractDeviceProfileTest() { "\tfolderChildIconSizePx: 147.0px (56.0dp)\n" + "\tfolderChildTextSizePx: 38.0px (14.476191dp)\n" + "\tfolderChildDrawablePaddingPx: 10.0px (3.8095238dp)\n" + - "\tfolderCellLayoutBorderSpacePx: 0.0px (0.0dp)\n" + + "\tfolderCellLayoutBorderSpacePx.x: 0.0px (0.0dp)\n" + + "\tfolderCellLayoutBorderSpacePx.y: 0.0px (0.0dp)\n" + "\tfolderContentPaddingLeftRight: 21.0px (8.0dp)\n" + "\tfolderTopPadding: 63.0px (24.0dp)\n" + "\tfolderFooterHeight: 147.0px (56.0dp)\n" + @@ -356,7 +358,8 @@ class DeviceProfileDumpTest : AbstractDeviceProfileTest() { "\tfolderChildIconSizePx: 131.0px (49.904762dp)\n" + "\tfolderChildTextSizePx: 34.0px (12.952381dp)\n" + "\tfolderChildDrawablePaddingPx: 9.0px (3.4285715dp)\n" + - "\tfolderCellLayoutBorderSpacePx: 0.0px (0.0dp)\n" + + "\tfolderCellLayoutBorderSpacePx.x: 0.0px (0.0dp)\n" + + "\tfolderCellLayoutBorderSpacePx.y: 0.0px (0.0dp)\n" + "\tfolderContentPaddingLeftRight: 21.0px (8.0dp)\n" + "\tfolderTopPadding: 56.0px (21.333334dp)\n" + "\tfolderFooterHeight: 131.0px (49.904762dp)\n" + @@ -492,7 +495,8 @@ class DeviceProfileDumpTest : AbstractDeviceProfileTest() { "\tfolderChildIconSizePx: 123.0px (46.857143dp)\n" + "\tfolderChildTextSizePx: 32.0px (12.190476dp)\n" + "\tfolderChildDrawablePaddingPx: 8.0px (3.047619dp)\n" + - "\tfolderCellLayoutBorderSpacePx: 0.0px (0.0dp)\n" + + "\tfolderCellLayoutBorderSpacePx.x: 0.0px (0.0dp)\n" + + "\tfolderCellLayoutBorderSpacePx.y: 0.0px (0.0dp)\n" + "\tfolderContentPaddingLeftRight: 21.0px (8.0dp)\n" + "\tfolderTopPadding: 53.0px (20.190475dp)\n" + "\tfolderFooterHeight: 123.0px (46.857143dp)\n" + @@ -629,7 +633,8 @@ class DeviceProfileDumpTest : AbstractDeviceProfileTest() { "\tfolderChildIconSizePx: 120.0px (60.0dp)\n" + "\tfolderChildTextSizePx: 28.0px (14.0dp)\n" + "\tfolderChildDrawablePaddingPx: 16.0px (8.0dp)\n" + - "\tfolderCellLayoutBorderSpacePx: 0.0px (0.0dp)\n" + + "\tfolderCellLayoutBorderSpacePx.x: 0.0px (0.0dp)\n" + + "\tfolderCellLayoutBorderSpacePx.y: 0.0px (0.0dp)\n" + "\tfolderContentPaddingLeftRight: 0.0px (0.0dp)\n" + "\tfolderTopPadding: 48.0px (24.0dp)\n" + "\tfolderFooterHeight: 112.0px (56.0dp)\n" + @@ -766,7 +771,8 @@ class DeviceProfileDumpTest : AbstractDeviceProfileTest() { "\tfolderChildIconSizePx: 120.0px (60.0dp)\n" + "\tfolderChildTextSizePx: 28.0px (14.0dp)\n" + "\tfolderChildDrawablePaddingPx: 16.0px (8.0dp)\n" + - "\tfolderCellLayoutBorderSpacePx: 0.0px (0.0dp)\n" + + "\tfolderCellLayoutBorderSpacePx.x: 0.0px (0.0dp)\n" + + "\tfolderCellLayoutBorderSpacePx.y: 0.0px (0.0dp)\n" + "\tfolderContentPaddingLeftRight: 0.0px (0.0dp)\n" + "\tfolderTopPadding: 48.0px (24.0dp)\n" + "\tfolderFooterHeight: 112.0px (56.0dp)\n" + @@ -903,7 +909,8 @@ class DeviceProfileDumpTest : AbstractDeviceProfileTest() { "\tfolderChildIconSizePx: 120.0px (60.0dp)\n" + "\tfolderChildTextSizePx: 28.0px (14.0dp)\n" + "\tfolderChildDrawablePaddingPx: 27.0px (13.5dp)\n" + - "\tfolderCellLayoutBorderSpacePx: 0.0px (0.0dp)\n" + + "\tfolderCellLayoutBorderSpacePx.x: 0.0px (0.0dp)\n" + + "\tfolderCellLayoutBorderSpacePx.y: 0.0px (0.0dp)\n" + "\tfolderContentPaddingLeftRight: 0.0px (0.0dp)\n" + "\tfolderTopPadding: 48.0px (24.0dp)\n" + "\tfolderFooterHeight: 112.0px (56.0dp)\n" + @@ -1040,7 +1047,8 @@ class DeviceProfileDumpTest : AbstractDeviceProfileTest() { "\tfolderChildIconSizePx: 120.0px (60.0dp)\n" + "\tfolderChildTextSizePx: 28.0px (14.0dp)\n" + "\tfolderChildDrawablePaddingPx: 27.0px (13.5dp)\n" + - "\tfolderCellLayoutBorderSpacePx: 0.0px (0.0dp)\n" + + "\tfolderCellLayoutBorderSpacePx.x: 0.0px (0.0dp)\n" + + "\tfolderCellLayoutBorderSpacePx.y: 0.0px (0.0dp)\n" + "\tfolderContentPaddingLeftRight: 0.0px (0.0dp)\n" + "\tfolderTopPadding: 48.0px (24.0dp)\n" + "\tfolderFooterHeight: 112.0px (56.0dp)\n" + @@ -1182,7 +1190,8 @@ class DeviceProfileDumpTest : AbstractDeviceProfileTest() { "\tfolderChildIconSizePx: 141.0px (53.714287dp)\n" + "\tfolderChildTextSizePx: 34.0px (12.952381dp)\n" + "\tfolderChildDrawablePaddingPx: 10.0px (3.8095238dp)\n" + - "\tfolderCellLayoutBorderSpacePx: 0.0px (0.0dp)\n" + + "\tfolderCellLayoutBorderSpacePx.x: 0.0px (0.0dp)\n" + + "\tfolderCellLayoutBorderSpacePx.y: 0.0px (0.0dp)\n" + "\tfolderContentPaddingLeftRight: 21.0px (8.0dp)\n" + "\tfolderTopPadding: 63.0px (24.0dp)\n" + "\tfolderFooterHeight: 147.0px (56.0dp)\n" + @@ -1323,7 +1332,8 @@ class DeviceProfileDumpTest : AbstractDeviceProfileTest() { "\tfolderChildIconSizePx: 141.0px (53.714287dp)\n" + "\tfolderChildTextSizePx: 34.0px (12.952381dp)\n" + "\tfolderChildDrawablePaddingPx: 10.0px (3.8095238dp)\n" + - "\tfolderCellLayoutBorderSpacePx: 0.0px (0.0dp)\n" + + "\tfolderCellLayoutBorderSpacePx.x: 0.0px (0.0dp)\n" + + "\tfolderCellLayoutBorderSpacePx.y: 0.0px (0.0dp)\n" + "\tfolderContentPaddingLeftRight: 21.0px (8.0dp)\n" + "\tfolderTopPadding: 63.0px (24.0dp)\n" + "\tfolderFooterHeight: 147.0px (56.0dp)\n" + @@ -1464,7 +1474,8 @@ class DeviceProfileDumpTest : AbstractDeviceProfileTest() { "\tfolderChildIconSizePx: 141.0px (53.714287dp)\n" + "\tfolderChildTextSizePx: 34.0px (12.952381dp)\n" + "\tfolderChildDrawablePaddingPx: 10.0px (3.8095238dp)\n" + - "\tfolderCellLayoutBorderSpacePx: 0.0px (0.0dp)\n" + + "\tfolderCellLayoutBorderSpacePx.x: 0.0px (0.0dp)\n" + + "\tfolderCellLayoutBorderSpacePx.y: 0.0px (0.0dp)\n" + "\tfolderContentPaddingLeftRight: 21.0px (8.0dp)\n" + "\tfolderTopPadding: 63.0px (24.0dp)\n" + "\tfolderFooterHeight: 147.0px (56.0dp)\n" + @@ -1601,7 +1612,8 @@ class DeviceProfileDumpTest : AbstractDeviceProfileTest() { "\tfolderChildIconSizePx: 141.0px (53.714287dp)\n" + "\tfolderChildTextSizePx: 34.0px (12.952381dp)\n" + "\tfolderChildDrawablePaddingPx: 10.0px (3.8095238dp)\n" + - "\tfolderCellLayoutBorderSpacePx: 0.0px (0.0dp)\n" + + "\tfolderCellLayoutBorderSpacePx.x: 0.0px (0.0dp)\n" + + "\tfolderCellLayoutBorderSpacePx.y: 0.0px (0.0dp)\n" + "\tfolderContentPaddingLeftRight: 21.0px (8.0dp)\n" + "\tfolderTopPadding: 63.0px (24.0dp)\n" + "\tfolderFooterHeight: 147.0px (56.0dp)\n" +