From 4e3d48e9989c21d2973b9428934069a992263db7 Mon Sep 17 00:00:00 2001 From: minch Date: Sat, 26 Apr 2025 06:35:29 +0000 Subject: [PATCH] Fix integration tests with multi-desks on Bug: 362720309 Test: Presubmit Flag: EXEMPT tests failure fix Change-Id: I381b8751083a7fb235cf597fd35314ca6f2c0a9b --- .../quickstep/QuickstepTestInformationHandler.java | 7 +++++++ .../android/quickstep/views/RecentsDismissUtils.kt | 2 +- .../com/android/quickstep/views/RecentsView.java | 8 ++++++-- .../com/android/quickstep/TaplTestsQuickstep.java | 14 +++++--------- .../launcher3/testing/shared/TestProtocol.java | 2 ++ .../launcher3/tapl/LauncherInstrumentation.java | 5 +++++ 6 files changed, 26 insertions(+), 12 deletions(-) diff --git a/quickstep/src/com/android/quickstep/QuickstepTestInformationHandler.java b/quickstep/src/com/android/quickstep/QuickstepTestInformationHandler.java index ab2cfbe549..0a035ef054 100644 --- a/quickstep/src/com/android/quickstep/QuickstepTestInformationHandler.java +++ b/quickstep/src/com/android/quickstep/QuickstepTestInformationHandler.java @@ -104,6 +104,13 @@ public class QuickstepTestInformationHandler extends TestInformationHandler { launcher -> launcher.getOverviewPanel().getCurrentPage()); } + case TestProtocol.REQUEST_GET_OVERVIEW_FIRST_TASKVIEW_INDEX: { + return getLauncherUIProperty(Bundle::putInt, + launcher -> + launcher.>getOverviewPanel() + .getFirstTaskViewIndex()); + } + case TestProtocol.REQUEST_HAS_TIS: { response.putBoolean(TestProtocol.TEST_INFO_RESPONSE_FIELD, true); return response; diff --git a/quickstep/src/com/android/quickstep/views/RecentsDismissUtils.kt b/quickstep/src/com/android/quickstep/views/RecentsDismissUtils.kt index 4266c6f2df..061911f5ff 100644 --- a/quickstep/src/com/android/quickstep/views/RecentsDismissUtils.kt +++ b/quickstep/src/com/android/quickstep/views/RecentsDismissUtils.kt @@ -1029,7 +1029,7 @@ class RecentsDismissUtils(private val recentsView: RecentsView<*, *>) { pageToSnapTo = indexOfChild(clearAllButton) } else if (isClearAllHidden) { // Snap to focused task if clear all is hidden. - pageToSnapTo = indexOfChild(firstTaskView) + pageToSnapTo = firstTaskViewIndex } } else { val snappedTaskView = currentPageTaskView diff --git a/quickstep/src/com/android/quickstep/views/RecentsView.java b/quickstep/src/com/android/quickstep/views/RecentsView.java index 6d1e8efc23..6dcb03d52f 100644 --- a/quickstep/src/com/android/quickstep/views/RecentsView.java +++ b/quickstep/src/com/android/quickstep/views/RecentsView.java @@ -877,6 +877,10 @@ public abstract class RecentsView< return mUtils.getFirstTaskView(); } + public int getFirstTaskViewIndex() { + return indexOfChild(getFirstTaskView()); + } + public RecentsView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); setEnableFreeScroll(true); @@ -4086,7 +4090,7 @@ public abstract class RecentsView< pageToSnapTo = indexOfChild(mClearAllButton); } else if (isClearAllHidden) { // Snap to focused task if clear all is hidden. - pageToSnapTo = indexOfChild(getFirstTaskView()); + pageToSnapTo = getFirstTaskViewIndex(); } } else { // Get the id of the task view we will snap to based on the current @@ -4104,7 +4108,7 @@ public abstract class RecentsView< } else { // Won't focus next task in split select, so snap to the // first task. - pageToSnapTo = indexOfChild(getFirstTaskView()); + pageToSnapTo = getFirstTaskViewIndex(); calculateScrollDiff = false; } } else { diff --git a/quickstep/tests/src/com/android/quickstep/TaplTestsQuickstep.java b/quickstep/tests/src/com/android/quickstep/TaplTestsQuickstep.java index 6224c5c3a4..58f23c8c40 100644 --- a/quickstep/tests/src/com/android/quickstep/TaplTestsQuickstep.java +++ b/quickstep/tests/src/com/android/quickstep/TaplTestsQuickstep.java @@ -119,16 +119,14 @@ public class TaplTestsQuickstep extends AbstractQuickStepTest { // Test flinging forward and backward. runOnRecentsView(recentsView -> assertEquals("Current task in Overview is not first", - recentsView.indexOfChild(recentsView.getFirstTaskView()), - recentsView.getCurrentPage())); + recentsView.getFirstTaskViewIndex(), recentsView.getCurrentPage())); overview.flingForward(); assertIsInState("Launcher internal state is not Overview", LauncherState.OVERVIEW); final Integer currentTaskAfterFlingForward = getFromRecentsView(RecentsView::getCurrentPage); - runOnRecentsView(recentsView -> assertTrue("Current task in Overview is still 0", - currentTaskAfterFlingForward > recentsView.indexOfChild( - recentsView.getFirstTaskView()))); + runOnRecentsView(recentsView -> assertTrue("Current task in Overview is still first", + currentTaskAfterFlingForward > recentsView.getFirstTaskViewIndex())); overview.flingBackward(); assertIsInState("Launcher internal state is not Overview", LauncherState.OVERVIEW); @@ -390,8 +388,7 @@ public class TaplTestsQuickstep extends AbstractQuickStepTest { overview.scrollCurrentTaskOffScreen(); assertIsInState("Launcher internal state is not Overview", LauncherState.OVERVIEW); runOnRecentsView(recentsView -> assertTrue("Current task in Overview is still first", - recentsView.getCurrentPage() > recentsView.indexOfChild( - recentsView.getFirstTaskView()))); + recentsView.getCurrentPage() > recentsView.getFirstTaskViewIndex())); // Test opening the task. overview.getCurrentTask().open(); @@ -407,8 +404,7 @@ public class TaplTestsQuickstep extends AbstractQuickStepTest { assertIsInState( "Launcher internal state is not Overview", LauncherState.OVERVIEW); runOnRecentsView(recentsView -> assertTrue("Current task in Overview is still first", - recentsView.getCurrentPage() > recentsView.indexOfChild( - recentsView.getFirstTaskView()))); + recentsView.getCurrentPage() > recentsView.getFirstTaskViewIndex())); // Test dismissing the later task. final Integer numTasks = getFromRecentsView(RecentsView::getTaskViewCount); diff --git a/shared/src/com/android/launcher3/testing/shared/TestProtocol.java b/shared/src/com/android/launcher3/testing/shared/TestProtocol.java index ce18f721c6..fab04c39d3 100644 --- a/shared/src/com/android/launcher3/testing/shared/TestProtocol.java +++ b/shared/src/com/android/launcher3/testing/shared/TestProtocol.java @@ -156,6 +156,8 @@ public final class TestProtocol { public static final String REQUEST_GET_OVERVIEW_PAGE_SPACING = "get-overview-page-spacing"; public static final String REQUEST_GET_OVERVIEW_CURRENT_PAGE_INDEX = "get-overview-current-page-index"; + public static final String REQUEST_GET_OVERVIEW_FIRST_TASKVIEW_INDEX = + "get-overview-first-taskview-index"; public static final String REQUEST_GET_SPLIT_SELECTION_ACTIVE = "get-split-selection-active"; public static final String REQUEST_ENABLE_ROTATION = "enable_rotation"; public static final String REQUEST_MODEL_QUEUE_CLEARED = "model-queue-cleared"; diff --git a/tests/tapl/com/android/launcher3/tapl/LauncherInstrumentation.java b/tests/tapl/com/android/launcher3/tapl/LauncherInstrumentation.java index 6ff957bf4c..61a7d7fbda 100644 --- a/tests/tapl/com/android/launcher3/tapl/LauncherInstrumentation.java +++ b/tests/tapl/com/android/launcher3/tapl/LauncherInstrumentation.java @@ -448,6 +448,11 @@ public final class LauncherInstrumentation { .getInt(TestProtocol.TEST_INFO_RESPONSE_FIELD); } + public int getOverviewFirstTaskViewIndex() { + return getTestInfo(TestProtocol.REQUEST_GET_OVERVIEW_FIRST_TASKVIEW_INDEX).getInt( + TEST_INFO_RESPONSE_FIELD); + } + float getExactScreenCenterX() { return getRealDisplaySize().x / 2f; }