Make numFolderRows/Columns accept more values
InvariantDeviceProfile hold values that are not related to current DP in use. Now other classes get the value correctly from DeviceProfile, and each posture can hold different values, making it akin to iconSize. Fix: 309800141 Test: DeviceProfileResponsiveDumpTest Test: DeviceProfileResponsiveAlternativeDisplaysDumpTest Test: DeviceProfileDumpTest Test: DeviceProfileAlternativeDisplaysDumpTest Flag: ACONFIG com.android.launcher3.enable_responsive_workspace TEAMFOOD Change-Id: I32295738585de67205dcd6c8942d08a3d07d169a
This commit is contained in:
@@ -182,6 +182,8 @@ public class DeviceProfile {
|
||||
public int cellYPaddingPx = -1;
|
||||
|
||||
// Folder
|
||||
public final int numFolderRows;
|
||||
public final int numFolderColumns;
|
||||
public final float folderLabelTextScale;
|
||||
public int folderLabelTextSizePx;
|
||||
public int folderFooterHeightPx;
|
||||
@@ -439,6 +441,8 @@ public class DeviceProfile {
|
||||
}
|
||||
|
||||
folderLabelTextScale = res.getFloat(R.dimen.folder_label_text_scale);
|
||||
numFolderRows = inv.numFolderRows[mTypeIndex];
|
||||
numFolderColumns = inv.numFolderColumns[mTypeIndex];
|
||||
|
||||
if (mIsScalableGrid && inv.folderStyle != INVALID_RESOURCE_HANDLE) {
|
||||
TypedArray folderStyle = context.obtainStyledAttributes(inv.folderStyle,
|
||||
@@ -645,11 +649,11 @@ public class DeviceProfile {
|
||||
isTwoPanels ? inv.folderSpecsTwoPanelId : inv.folderSpecsId),
|
||||
ResponsiveSpecType.Folder);
|
||||
mResponsiveFolderWidthSpec = folderSpecs.getCalculatedSpec(responsiveAspectRatio,
|
||||
DimensionType.WIDTH, inv.numFolderColumns,
|
||||
DimensionType.WIDTH, numFolderColumns,
|
||||
mResponsiveWorkspaceWidthSpec.getAvailableSpace(),
|
||||
mResponsiveWorkspaceWidthSpec);
|
||||
mResponsiveFolderHeightSpec = folderSpecs.getCalculatedSpec(responsiveAspectRatio,
|
||||
DimensionType.HEIGHT, inv.numFolderRows,
|
||||
DimensionType.HEIGHT, numFolderRows,
|
||||
mResponsiveWorkspaceHeightSpec.getAvailableSpace(),
|
||||
mResponsiveWorkspaceHeightSpec);
|
||||
|
||||
@@ -1406,16 +1410,16 @@ public class DeviceProfile {
|
||||
Point totalWorkspacePadding = getTotalWorkspacePadding();
|
||||
|
||||
// Check if the folder fit within the available height.
|
||||
float contentUsedHeight = folderCellHeightPx * inv.numFolderRows
|
||||
+ ((inv.numFolderRows - 1) * folderCellLayoutBorderSpacePx.y)
|
||||
float contentUsedHeight = folderCellHeightPx * numFolderRows
|
||||
+ ((numFolderRows - 1) * folderCellLayoutBorderSpacePx.y)
|
||||
+ folderFooterHeightPx
|
||||
+ folderContentPaddingTop;
|
||||
int contentMaxHeight = availableHeightPx - totalWorkspacePadding.y;
|
||||
float scaleY = contentMaxHeight / contentUsedHeight;
|
||||
|
||||
// Check if the folder fit within the available width.
|
||||
float contentUsedWidth = folderCellWidthPx * inv.numFolderColumns
|
||||
+ ((inv.numFolderColumns - 1) * folderCellLayoutBorderSpacePx.x)
|
||||
float contentUsedWidth = folderCellWidthPx * numFolderColumns
|
||||
+ ((numFolderColumns - 1) * folderCellLayoutBorderSpacePx.x)
|
||||
+ folderContentPaddingLeftRight * 2;
|
||||
int contentMaxWidth = availableWidthPx - totalWorkspacePadding.x;
|
||||
float scaleX = contentMaxWidth / contentUsedWidth;
|
||||
@@ -2045,8 +2049,8 @@ public class DeviceProfile {
|
||||
writer.println(prefix + pxToDpStr("iconTextSizePx", iconTextSizePx));
|
||||
writer.println(prefix + pxToDpStr("iconDrawablePaddingPx", iconDrawablePaddingPx));
|
||||
|
||||
writer.println(prefix + "\tinv.numFolderRows: " + inv.numFolderRows);
|
||||
writer.println(prefix + "\tinv.numFolderColumns: " + inv.numFolderColumns);
|
||||
writer.println(prefix + "\tnumFolderRows: " + numFolderRows);
|
||||
writer.println(prefix + "\tnumFolderColumns: " + numFolderColumns);
|
||||
writer.println(prefix + pxToDpStr("folderCellWidthPx", folderCellWidthPx));
|
||||
writer.println(prefix + pxToDpStr("folderCellHeightPx", folderCellHeightPx));
|
||||
writer.println(prefix + pxToDpStr("folderChildIconSizePx", folderChildIconSizePx));
|
||||
|
||||
Reference in New Issue
Block a user