From 776f6bacd67d27e033598f8c8c079bab9d0dd183 Mon Sep 17 00:00:00 2001 From: Manu Cornet Date: Fri, 27 Jan 2017 16:21:38 +0900 Subject: [PATCH] 2D recents: fix layout to show 3 tasks on a single line Make the computation easier to read. Bug: 34750498 Tested: Checked layout for n tasks for n between 0 and 8 Change-Id: I6d801f9f7d3839ed4a985233c82d93ab0823d6b0 --- .../views/grid/TaskGridLayoutAlgorithm.java | 28 +++++++++++++++---- 1 file changed, 23 insertions(+), 5 deletions(-) diff --git a/packages/SystemUI/src/com/android/systemui/recents/views/grid/TaskGridLayoutAlgorithm.java b/packages/SystemUI/src/com/android/systemui/recents/views/grid/TaskGridLayoutAlgorithm.java index 02d1cc14fc417..4f175368aceb3 100644 --- a/packages/SystemUI/src/com/android/systemui/recents/views/grid/TaskGridLayoutAlgorithm.java +++ b/packages/SystemUI/src/com/android/systemui/recents/views/grid/TaskGridLayoutAlgorithm.java @@ -74,11 +74,8 @@ public class TaskGridLayoutAlgorithm { yOffsets = new int[taskCount]; int layoutTaskCount = Math.min(MAX_LAYOUT_TASK_COUNT, taskCount); - - tasksPerLine = layoutTaskCount < 2 ? 1 : ( - layoutTaskCount < 5 ? 2 : ( - layoutTaskCount < 7 ? 3 : 4)); - lines = layoutTaskCount < 3 ? 1 : 2; + tasksPerLine = getTasksPerLine(layoutTaskCount); + lines = layoutTaskCount < 4 ? 1 : 2; // A couple of special cases. boolean landscapeWindow = mWindowRect.width() > mWindowRect.height(); @@ -131,6 +128,27 @@ public class TaskGridLayoutAlgorithm { emptySpaceY / 2 + mPaddingTopBottom + (taskHeight + mPaddingTaskView) * yIndex; } } + + private int getTasksPerLine(int taskCount) { + switch(taskCount) { + case 0: + return 0; + case 1: + return 1; + case 2: + case 4: + return 2; + case 3: + case 5: + case 6: + return 3; + case 7: + case 8: + return 4; + default: + throw new IllegalArgumentException("Unsupported task count " + taskCount); + } + } } /**