From 2de6a277b7afb98a8d3e2769b5194c1864da2ad7 Mon Sep 17 00:00:00 2001 From: Jordan Silva Date: Thu, 4 Jan 2024 14:44:20 -0300 Subject: [PATCH] Update responsive grid spec cell size remainderSpace logic Refactoring the cellSize spec of responsive grid to divide the remainder space in code instead of dividing by cols/rows in the spec definition. For example, instead of using 0.2 in the spec for 5x5 grid (1 / number of rows), it is going to use 1 (100% of the remainder space) and divide the percentage by the number of cols or rows in code. Fix: 313621277 Flag: ACONFIG com.android.launcher3.enable_responsive_workspace TEAMFOOD Test: NexusLauncherImageTests Test: CalculatedWorkspaceSpecTest Test: DeviceProfileDumpTest Test: DeviceProfileAlternativeDisplaysDumpTest Change-Id: Ifaec838ac9751562ecedc1fe39b966ee3d092de3 --- res/values/attrs.xml | 4 ++++ src/com/android/launcher3/DeviceProfile.java | 6 +++--- .../launcher3/InvariantDeviceProfile.java | 9 +++++++++ .../launcher3/responsive/ResponsiveSpec.kt | 19 ++++++++++--------- .../android/launcher3/responsive/SizeSpec.kt | 9 +++++++-- tests/res/xml/invalid_responsive_spec_1.xml | 2 +- tests/res/xml/invalid_responsive_spec_2.xml | 4 ++-- .../xml/valid_responsive_spec_unsorted.xml | 16 ++++++++-------- tests/res/xml/valid_workspace_file.xml | 12 ++++++------ .../res/xml/valid_workspace_unsorted_file.xml | 2 +- .../responsive/ResponsiveSpecsProviderTest.kt | 16 ++++++++-------- .../responsive/WorkspaceSpecsTest.kt | 2 +- 12 files changed, 60 insertions(+), 41 deletions(-) diff --git a/res/values/attrs.xml b/res/values/attrs.xml index 8d84c90f40..77af67176b 100644 --- a/res/values/attrs.xml +++ b/res/values/attrs.xml @@ -189,6 +189,10 @@ defaults to 2 * numAllAppsColumns --> + + + @@ -32,7 +32,7 @@ - + @@ -42,7 +42,7 @@ - + - + - + @@ -71,7 +71,7 @@ - + @@ -81,7 +81,7 @@ - + @@ -122,7 +122,7 @@ - + diff --git a/tests/res/xml/valid_workspace_file.xml b/tests/res/xml/valid_workspace_file.xml index 9c44502641..dc9963ad99 100644 --- a/tests/res/xml/valid_workspace_file.xml +++ b/tests/res/xml/valid_workspace_file.xml @@ -54,7 +54,7 @@ - + @@ -67,7 +67,7 @@ - + - + @@ -85,7 +85,7 @@ - + - + - + diff --git a/tests/res/xml/valid_workspace_unsorted_file.xml b/tests/res/xml/valid_workspace_unsorted_file.xml index 6bf7c78811..f783e9f6a9 100644 --- a/tests/res/xml/valid_workspace_unsorted_file.xml +++ b/tests/res/xml/valid_workspace_unsorted_file.xml @@ -52,7 +52,7 @@ - + diff --git a/tests/src/com/android/launcher3/responsive/ResponsiveSpecsProviderTest.kt b/tests/src/com/android/launcher3/responsive/ResponsiveSpecsProviderTest.kt index 9681ca8bc9..54a1dc567f 100644 --- a/tests/src/com/android/launcher3/responsive/ResponsiveSpecsProviderTest.kt +++ b/tests/src/com/android/launcher3/responsive/ResponsiveSpecsProviderTest.kt @@ -84,7 +84,7 @@ class ResponsiveSpecsProviderTest : AbstractDeviceProfileTest() { startPadding = SizeSpec(1f.dpToPx()), endPadding = SizeSpec(1f.dpToPx()), gutter = SizeSpec(8f.dpToPx()), - cellSize = SizeSpec(ofRemainderSpace = .25f) + cellSize = SizeSpec(ofRemainderSpace = 1f) ) ) @@ -97,7 +97,7 @@ class ResponsiveSpecsProviderTest : AbstractDeviceProfileTest() { startPadding = SizeSpec(2f.dpToPx()), endPadding = SizeSpec(2f.dpToPx()), gutter = SizeSpec(8f.dpToPx()), - cellSize = SizeSpec(ofRemainderSpace = .25f) + cellSize = SizeSpec(ofRemainderSpace = 1f) ), ) @@ -182,7 +182,7 @@ class ResponsiveSpecsProviderTest : AbstractDeviceProfileTest() { startPadding = SizeSpec(22f.dpToPx()), endPadding = SizeSpec(22f.dpToPx()), gutter = sizeSpec16, - cellSize = SizeSpec(ofRemainderSpace = .25f) + cellSize = SizeSpec(ofRemainderSpace = 1f) ) ) @@ -231,7 +231,7 @@ class ResponsiveSpecsProviderTest : AbstractDeviceProfileTest() { startPadding = SizeSpec(0f.dpToPx()), endPadding = SizeSpec(36f.dpToPx()), gutter = sizeSpec12, - cellSize = SizeSpec(ofRemainderSpace = .25f) + cellSize = SizeSpec(ofRemainderSpace = 1f) ), ResponsiveSpec( maxAvailableSize = 716.dpToPx(), @@ -240,7 +240,7 @@ class ResponsiveSpecsProviderTest : AbstractDeviceProfileTest() { startPadding = SizeSpec(16f.dpToPx()), endPadding = SizeSpec(64f.dpToPx()), gutter = sizeSpec12, - cellSize = SizeSpec(ofRemainderSpace = .25f) + cellSize = SizeSpec(ofRemainderSpace = 1f) ), ResponsiveSpec( maxAvailableSize = 9999.dpToPx(), @@ -249,7 +249,7 @@ class ResponsiveSpecsProviderTest : AbstractDeviceProfileTest() { startPadding = SizeSpec(36f.dpToPx()), endPadding = SizeSpec(80f.dpToPx()), gutter = sizeSpec12, - cellSize = SizeSpec(ofRemainderSpace = .25f) + cellSize = SizeSpec(ofRemainderSpace = 1f) ) ) @@ -262,7 +262,7 @@ class ResponsiveSpecsProviderTest : AbstractDeviceProfileTest() { startPadding = SizeSpec(0f), endPadding = SizeSpec(24f.dpToPx()), gutter = sizeSpec12, - cellSize = SizeSpec(ofRemainderSpace = .25f) + cellSize = SizeSpec(ofRemainderSpace = 1f) ), ResponsiveSpec( maxAvailableSize = 9999.dpToPx(), @@ -271,7 +271,7 @@ class ResponsiveSpecsProviderTest : AbstractDeviceProfileTest() { startPadding = SizeSpec(0f), endPadding = SizeSpec(34f.dpToPx()), gutter = sizeSpec12, - cellSize = SizeSpec(ofRemainderSpace = .25f) + cellSize = SizeSpec(ofRemainderSpace = 1f) ), ) diff --git a/tests/src/com/android/launcher3/responsive/WorkspaceSpecsTest.kt b/tests/src/com/android/launcher3/responsive/WorkspaceSpecsTest.kt index 9781645602..17b0ee4020 100644 --- a/tests/src/com/android/launcher3/responsive/WorkspaceSpecsTest.kt +++ b/tests/src/com/android/launcher3/responsive/WorkspaceSpecsTest.kt @@ -159,7 +159,7 @@ class WorkspaceSpecsTest : AbstractDeviceProfileTest() { "maxSize=2147483647), " + "cellSize=SizeSpec(fixedSize=0.0, " + "ofAvailableSpace=0.0, " + - "ofRemainderSpace=0.25, " + + "ofRemainderSpace=1.0, " + "matchWorkspace=false, " + "maxSize=2147483647)" + ")"