Fix a bug where the last large task index was not being set correctly.

This was causing the focused task shift to be calculated incorrectly, which was resulting in the focused task being shifted too far to the left.


Bug: 330342294
Fix: 371490320
Flag: com.android.launcher3.enable_large_desktop_windowing_tile
Test: Manual. Open 1 DesktopTask, 1 FocusedTask, 2 other tasks in the grid. Dismiss the focused task. The rebalance should work keeping the new focused task next to desktop task.
Change-Id: If6f95814942c2cbadc30a0082649569f21dea60a
This commit is contained in:
Jordan Silva
2024-10-04 07:28:09 +00:00
parent 5a90a5ab96
commit 06dbdcea4e
@@ -3141,7 +3141,9 @@ public abstract class RecentsView<
// Horizontal grid translation for each task
float[] gridTranslations = new float[taskCount];
int lastLargeTaskIndex = Integer.MAX_VALUE;
TaskView lastLargeTaskView = mUtils.getLastLargeTaskView(getTaskViews());
int lastLargeTaskIndex =
(lastLargeTaskView == null) ? Integer.MAX_VALUE : indexOfChild(lastLargeTaskView);
Set<Integer> largeTasksIndices = new HashSet<>();
int focusedTaskShift = 0;
int largeTaskWidthAndSpacing = 0;
@@ -3177,7 +3179,6 @@ public abstract class RecentsView<
taskView.setGridTranslationY((mLastComputedTaskSize.height() + taskTopMargin
- taskView.getLayoutParams().height) / 2f);
lastLargeTaskIndex = i;
largeTasksIndices.add(i);
largeTaskWidthAndSpacing = taskWidthAndSpacing;