Select task is broken on display large size
The update of the focus task overlay should be at last, cause otherwise the first time the "Select" button doesn't work - the text is not highlighted.
Also, we need to update pivot of the selected task only if there is a grid overview enabled. Otherwise the bug is still reproducible on Felix.
Bug: 305125147
Flag: NONE
Test: Manual (both on Tangor and Felix in Portrait/Landscape mode with small/medium/large Display size)
Change-Id: Id928cee0949b9124aeb27cc8210a53993e72ba19
diff --git a/quickstep/src/com/android/quickstep/views/RecentsView.java b/quickstep/src/com/android/quickstep/views/RecentsView.java
index ebb6ba8..997624f 100644
--- a/quickstep/src/com/android/quickstep/views/RecentsView.java
+++ b/quickstep/src/com/android/quickstep/views/RecentsView.java
@@ -4382,11 +4382,14 @@
private void updatePivots() {
if (mOverviewSelectEnabled) {
- getModalTaskSize(mTempRect);
- Rect selectedTaskPosition = getSelectedTaskBounds();
-
- Utilities.getPivotsForScalingRectToRect(mTempRect, selectedTaskPosition,
- mTempPointF);
+ if (enableGridOnlyOverview()) {
+ getModalTaskSize(mTempRect);
+ Rect selectedTaskPosition = getSelectedTaskBounds();
+ Utilities.getPivotsForScalingRectToRect(mTempRect, selectedTaskPosition,
+ mTempPointF);
+ } else {
+ mTempPointF.set(mLastComputedTaskSize.centerX(), mLastComputedTaskSize.bottom);
+ }
} else {
mTempRect.set(mLastComputedTaskSize);
// Only update pivot when it is tablet and not in grid yet, so the pivot is correct
@@ -5709,11 +5712,20 @@
}
private void updateEnabledOverlays() {
+ TaskView focusedTaskView = getFocusedTaskView();
int taskCount = getTaskViewCount();
for (int i = 0; i < taskCount; i++) {
TaskView taskView = requireTaskViewAt(i);
+ if (taskView == focusedTaskView) {
+ continue;
+ }
taskView.setOverlayEnabled(mOverlayEnabled && isTaskViewFullyVisible(taskView));
}
+ // Focus task overlay should be enabled and refreshed at last
+ if (focusedTaskView != null) {
+ focusedTaskView.setOverlayEnabled(
+ mOverlayEnabled && isTaskViewFullyVisible(focusedTaskView));
+ }
}
public void setOverlayEnabled(boolean overlayEnabled) {