diff --git a/res/values/attrs.xml b/res/values/attrs.xml index 20e708982a..8d84c90f40 100644 --- a/res/values/attrs.xml +++ b/res/values/attrs.xml @@ -164,7 +164,19 @@ + + + + + + + + + + + + diff --git a/src/com/android/launcher3/DeviceProfile.java b/src/com/android/launcher3/DeviceProfile.java index 7ca8b82270..badd1c456d 100644 --- a/src/com/android/launcher3/DeviceProfile.java +++ b/src/com/android/launcher3/DeviceProfile.java @@ -439,8 +439,8 @@ public class DeviceProfile { } folderLabelTextScale = res.getFloat(R.dimen.folder_label_text_scale); - numFolderRows = inv.numFolderRows; - numFolderColumns = inv.numFolderColumns; + numFolderRows = inv.numFolderRows[mTypeIndex]; + numFolderColumns = inv.numFolderColumns[mTypeIndex]; if (mIsScalableGrid && inv.folderStyle != INVALID_RESOURCE_HANDLE) { TypedArray folderStyle = context.obtainStyledAttributes(inv.folderStyle, diff --git a/src/com/android/launcher3/InvariantDeviceProfile.java b/src/com/android/launcher3/InvariantDeviceProfile.java index 567d0c503f..dfbbcaabb4 100644 --- a/src/com/android/launcher3/InvariantDeviceProfile.java +++ b/src/com/android/launcher3/InvariantDeviceProfile.java @@ -122,8 +122,8 @@ public class InvariantDeviceProfile { /** * Number of icons per row and column in the folder. */ - public int numFolderRows; - public int numFolderColumns; + public int[] numFolderRows; + public int[] numFolderColumns; public float[] iconSize; public float[] iconTextSize; public int iconBitmapSize; @@ -810,8 +810,8 @@ public class InvariantDeviceProfile { public final int numSearchContainerColumns; public final int deviceCategory; - private final int numFolderRows; - private final int numFolderColumns; + private final int[] numFolderRows = new int[COUNT_SIZES]; + private final int[] numFolderColumns = new int[COUNT_SIZES]; private final @StyleRes int folderStyle; private final @StyleRes int cellStyle; @@ -888,11 +888,39 @@ public class InvariantDeviceProfile { a.getResourceId(R.styleable.GridDisplayOption_inlineNavButtonsEndSpacing, R.dimen.taskbar_button_margin_default); - numFolderRows = a.getInt( + numFolderRows[INDEX_DEFAULT] = a.getInt( R.styleable.GridDisplayOption_numFolderRows, numRows); - numFolderColumns = a.getInt( + numFolderColumns[INDEX_DEFAULT] = a.getInt( R.styleable.GridDisplayOption_numFolderColumns, numColumns); + if (FeatureFlags.enableResponsiveWorkspace()) { + numFolderRows[INDEX_LANDSCAPE] = a.getInt( + R.styleable.GridDisplayOption_numFolderRowsLandscape, + numFolderRows[INDEX_DEFAULT]); + numFolderColumns[INDEX_LANDSCAPE] = a.getInt( + R.styleable.GridDisplayOption_numFolderColumnsLandscape, + numFolderColumns[INDEX_DEFAULT]); + numFolderRows[INDEX_TWO_PANEL_PORTRAIT] = a.getInt( + R.styleable.GridDisplayOption_numFolderRowsTwoPanelPortrait, + numFolderRows[INDEX_DEFAULT]); + numFolderColumns[INDEX_TWO_PANEL_PORTRAIT] = a.getInt( + R.styleable.GridDisplayOption_numFolderColumnsTwoPanelPortrait, + numFolderColumns[INDEX_DEFAULT]); + numFolderRows[INDEX_TWO_PANEL_LANDSCAPE] = a.getInt( + R.styleable.GridDisplayOption_numFolderRowsTwoPanelLandscape, + numFolderRows[INDEX_DEFAULT]); + numFolderColumns[INDEX_TWO_PANEL_LANDSCAPE] = a.getInt( + R.styleable.GridDisplayOption_numFolderColumnsTwoPanelLandscape, + numFolderColumns[INDEX_DEFAULT]); + } else { + numFolderRows[INDEX_LANDSCAPE] = numFolderRows[INDEX_DEFAULT]; + numFolderColumns[INDEX_LANDSCAPE] = numFolderColumns[INDEX_DEFAULT]; + numFolderRows[INDEX_TWO_PANEL_PORTRAIT] = numFolderRows[INDEX_DEFAULT]; + numFolderColumns[INDEX_TWO_PANEL_PORTRAIT] = numFolderColumns[INDEX_DEFAULT]; + numFolderRows[INDEX_TWO_PANEL_LANDSCAPE] = numFolderRows[INDEX_DEFAULT]; + numFolderColumns[INDEX_TWO_PANEL_LANDSCAPE] = numFolderColumns[INDEX_DEFAULT]; + } + folderStyle = a.getResourceId(R.styleable.GridDisplayOption_folderStyle, INVALID_RESOURCE_HANDLE); diff --git a/tests/src/com/android/launcher3/FakeInvariantDeviceProfileTest.kt b/tests/src/com/android/launcher3/FakeInvariantDeviceProfileTest.kt index a42100626a..30b5663a1e 100644 --- a/tests/src/com/android/launcher3/FakeInvariantDeviceProfileTest.kt +++ b/tests/src/com/android/launcher3/FakeInvariantDeviceProfileTest.kt @@ -121,8 +121,8 @@ abstract class FakeInvariantDeviceProfileTest { listOf(PointF(16f, 16f), PointF(16f, 16f), PointF(16f, 16f), PointF(16f, 16f)) .toTypedArray() - numFolderRows = 3 - numFolderColumns = 3 + numFolderRows = intArrayOf(3, 3, 3, 3) + numFolderColumns = intArrayOf(3, 3, 3, 3) folderStyle = R.style.FolderStyleDefault inlineNavButtonsEndSpacing = R.dimen.taskbar_button_margin_split @@ -204,8 +204,8 @@ abstract class FakeInvariantDeviceProfileTest { listOf(PointF(16f, 64f), PointF(64f, 16f), PointF(16f, 64f), PointF(16f, 64f)) .toTypedArray() - numFolderRows = 3 - numFolderColumns = 3 + numFolderRows = intArrayOf(3, 3, 3, 3) + numFolderColumns = intArrayOf(3, 3, 3, 3) folderStyle = R.style.FolderStyleDefault inlineNavButtonsEndSpacing = R.dimen.taskbar_button_margin_6_5 @@ -288,8 +288,8 @@ abstract class FakeInvariantDeviceProfileTest { listOf(PointF(16f, 16f), PointF(16f, 16f), PointF(16f, 20f), PointF(20f, 20f)) .toTypedArray() - numFolderRows = 3 - numFolderColumns = 3 + numFolderRows = intArrayOf(3, 3, 3, 3) + numFolderColumns = intArrayOf(3, 3, 3, 3) folderStyle = R.style.FolderStyleDefault inlineNavButtonsEndSpacing = R.dimen.taskbar_button_margin_split