Loading quickstep/tests/src/com/android/quickstep/TaplOverviewIconTest.java +1 −1 Original line number Original line Diff line number Diff line Loading @@ -92,7 +92,7 @@ public class TaplOverviewIconTest extends AbstractLauncherUiTest { startTestActivity(2); startTestActivity(2); startTestActivity(3); startTestActivity(3); if (mLauncher.isTablet()) { if (mLauncher.isTablet() && !mLauncher.isGridOnlyOverviewEnabled()) { mLauncher.goHome().switchToOverview().getOverviewActions() mLauncher.goHome().switchToOverview().getOverviewActions() .clickSplit() .clickSplit() .getTestActivityTask(2) .getTestActivityTask(2) Loading quickstep/tests/src/com/android/quickstep/TaplTestsQuickstep.java +16 −11 Original line number Original line Diff line number Diff line Loading @@ -179,6 +179,8 @@ public class TaplTestsQuickstep extends AbstractQuickStepTest { @PortraitLandscape @PortraitLandscape @PlatinumTest(focusArea = "launcher") @PlatinumTest(focusArea = "launcher") public void testOverviewActions() throws Exception { public void testOverviewActions() throws Exception { assumeFalse("Skipping Overview Actions tests for grid only overview", mLauncher.isTablet() && mLauncher.isGridOnlyOverviewEnabled()); // Experimenting for b/165029151: // Experimenting for b/165029151: final Overview overview = mLauncher.goHome().switchToOverview(); final Overview overview = mLauncher.goHome().switchToOverview(); if (overview.hasTasks()) overview.dismissAllTasks(); if (overview.hasTasks()) overview.dismissAllTasks(); Loading Loading @@ -377,7 +379,9 @@ public class TaplTestsQuickstep extends AbstractQuickStepTest { // Test opening the task. // Test opening the task. overview.getCurrentTask().open(); overview.getCurrentTask().open(); assertTrue("Test activity didn't open from Overview", assertTrue("Test activity didn't open from Overview", mDevice.wait(Until.hasObject(By.pkg(getAppPackageName()).text("TestActivity10")), mDevice.wait(Until.hasObject(By.pkg(getAppPackageName()).text( mLauncher.isGridOnlyOverviewEnabled() ? "TestActivity12" : "TestActivity13")), DEFAULT_UI_TIMEOUT)); DEFAULT_UI_TIMEOUT)); // Scroll the task offscreen as it is now first // Scroll the task offscreen as it is now first Loading @@ -398,16 +402,17 @@ public class TaplTestsQuickstep extends AbstractQuickStepTest { (Math.abs(getTopRowTaskCountForTablet(launcher) - getBottomRowTaskCountForTablet( (Math.abs(getTopRowTaskCountForTablet(launcher) - getBottomRowTaskCountForTablet( launcher)) <= 1))); launcher)) <= 1))); // Test dismissing more tasks. // TODO(b/308841019): Re-enable after fixing Overview jank when dismiss assertTrue("Launcher internal state didn't remain in Overview", // // Test dismissing more tasks. isInState(() -> LauncherState.OVERVIEW)); // assertTrue("Launcher internal state didn't remain in Overview", overview.getCurrentTask().dismiss(); // isInState(() -> LauncherState.OVERVIEW)); assertTrue("Launcher internal state didn't remain in Overview", // overview.getCurrentTask().dismiss(); isInState(() -> LauncherState.OVERVIEW)); // assertTrue("Launcher internal state didn't remain in Overview", overview.getCurrentTask().dismiss(); // isInState(() -> LauncherState.OVERVIEW)); executeOnLauncher(launcher -> assertTrue("Grid did not rebalance after multiple dismissals", // overview.getCurrentTask().dismiss(); (Math.abs(getTopRowTaskCountForTablet(launcher) - getBottomRowTaskCountForTablet( // executeOnLauncher(launcher -> assertTrue("Grid did not rebalance after multiple dismissals", launcher)) <= 1))); // (Math.abs(getTopRowTaskCountForTablet(launcher) - getBottomRowTaskCountForTablet( // launcher)) <= 1))); // Test dismissing all tasks. // Test dismissing all tasks. mLauncher.goHome().switchToOverview().dismissAllTasks(); mLauncher.goHome().switchToOverview().dismissAllTasks(); Loading quickstep/tests/src/com/android/quickstep/TaplTestsSplitscreen.java +1 −1 Original line number Original line Diff line number Diff line Loading @@ -143,7 +143,7 @@ public class TaplTestsSplitscreen extends AbstractQuickStepTest { startTestActivity(2); startTestActivity(2); startTestActivity(3); startTestActivity(3); if (mLauncher.isTablet()) { if (mLauncher.isTablet() && !mLauncher.isGridOnlyOverviewEnabled()) { mLauncher.goHome().switchToOverview().getOverviewActions() mLauncher.goHome().switchToOverview().getOverviewActions() .clickSplit() .clickSplit() .getTestActivityTask(2) .getTestActivityTask(2) Loading tests/tapl/com/android/launcher3/tapl/BaseOverview.java +11 −9 Original line number Original line Diff line number Diff line Loading @@ -25,6 +25,7 @@ import androidx.test.uiautomator.Direction; import androidx.test.uiautomator.UiObject2; import androidx.test.uiautomator.UiObject2; import java.util.Collections; import java.util.Collections; import java.util.Comparator; import java.util.List; import java.util.List; import java.util.stream.Collectors; import java.util.stream.Collectors; Loading Loading @@ -201,7 +202,8 @@ public class BaseOverview extends LauncherInstrumentation.VisibleContainer { OverviewTask task = getCurrentTask(); OverviewTask task = getCurrentTask(); mLauncher.assertNotNull("current task is null", task); mLauncher.assertNotNull("current task is null", task); mLauncher.scrollLeftByDistance(verifyActiveContainer(), mLauncher.scrollLeftByDistance(verifyActiveContainer(), task.getVisibleWidth() + mLauncher.getOverviewPageSpacing()); mLauncher.getRealDisplaySize().x - task.getUiObject().getVisibleBounds().left + mLauncher.getOverviewPageSpacing()); try (LauncherInstrumentation.Closable c2 = try (LauncherInstrumentation.Closable c2 = mLauncher.addContextLayer("scrolled task off screen")) { mLauncher.addContextLayer("scrolled task off screen")) { Loading Loading @@ -231,14 +233,14 @@ public class BaseOverview extends LauncherInstrumentation.VisibleContainer { final List<UiObject2> taskViews = getTasks(); final List<UiObject2> taskViews = getTasks(); mLauncher.assertNotEquals("Unable to find a task", 0, taskViews.size()); mLauncher.assertNotEquals("Unable to find a task", 0, taskViews.size()); // taskViews contains up to 3 task views: the 'main' (having the widest visible part) one final List<OverviewTask> overviewTasks = taskViews.stream().map( // in the center, and parts of its right and left siblings. Find the main task view by task -> new OverviewTask(mLauncher, task, this)).toList(); // its width. // The widest, and most top-right task should be the current task final UiObject2 widestTask = Collections.max(taskViews, return Collections.max(overviewTasks, (t1, t2) -> Integer.compare(mLauncher.getVisibleBounds(t1).width(), Comparator.comparingInt(OverviewTask::getVisibleWidth) mLauncher.getVisibleBounds(t2).width())); .thenComparingInt(OverviewTask::getTaskCenterX) .thenComparing( return new OverviewTask(mLauncher, widestTask, this); Comparator.comparing(OverviewTask::getTaskCenterY).reversed())); } } /** Returns an overview task matching TestActivity {@param activityNumber}. */ /** Returns an overview task matching TestActivity {@param activityNumber}. */ Loading tests/tapl/com/android/launcher3/tapl/LauncherInstrumentation.java +7 −4 Original line number Original line Diff line number Diff line Loading @@ -1608,8 +1608,11 @@ public final class LauncherInstrumentation { scroll( scroll( container, container, Direction.LEFT, Direction.LEFT, new Rect(leftGestureMargin, 0, new Rect(leftGestureMargin, containerRect.width() - distance - rightGestureMarginInContainer, 0), 0, Math.max(containerRect.width() - distance - leftGestureMargin, rightGestureMarginInContainer), 0), 10, 10, true); true); } } Loading Loading @@ -1782,7 +1785,7 @@ public final class LauncherInstrumentation { TestProtocol.TEST_INFO_RESPONSE_FIELD); TestProtocol.TEST_INFO_RESPONSE_FIELD); } } boolean isGridOnlyOverviewEnabled() { public boolean isGridOnlyOverviewEnabled() { return getTestInfo(TestProtocol.REQUEST_FLAG_ENABLE_GRID_ONLY_OVERVIEW).getBoolean( return getTestInfo(TestProtocol.REQUEST_FLAG_ENABLE_GRID_ONLY_OVERVIEW).getBoolean( TestProtocol.TEST_INFO_RESPONSE_FIELD); TestProtocol.TEST_INFO_RESPONSE_FIELD); } } Loading Loading @@ -2225,7 +2228,7 @@ public final class LauncherInstrumentation { int bottomBound = Math.min( int bottomBound = Math.min( containerBounds.bottom, containerBounds.bottom, getRealDisplaySize().y - getImeInsets().bottom); getRealDisplaySize().y - getImeInsets().bottom); int y = (bottomBound - containerBounds.top) / 2; int y = (bottomBound + containerBounds.top) / 2; // Do not tap in the status bar. // Do not tap in the status bar. y = Math.max(y, getWindowInsets().top); y = Math.max(y, getWindowInsets().top); Loading Loading
quickstep/tests/src/com/android/quickstep/TaplOverviewIconTest.java +1 −1 Original line number Original line Diff line number Diff line Loading @@ -92,7 +92,7 @@ public class TaplOverviewIconTest extends AbstractLauncherUiTest { startTestActivity(2); startTestActivity(2); startTestActivity(3); startTestActivity(3); if (mLauncher.isTablet()) { if (mLauncher.isTablet() && !mLauncher.isGridOnlyOverviewEnabled()) { mLauncher.goHome().switchToOverview().getOverviewActions() mLauncher.goHome().switchToOverview().getOverviewActions() .clickSplit() .clickSplit() .getTestActivityTask(2) .getTestActivityTask(2) Loading
quickstep/tests/src/com/android/quickstep/TaplTestsQuickstep.java +16 −11 Original line number Original line Diff line number Diff line Loading @@ -179,6 +179,8 @@ public class TaplTestsQuickstep extends AbstractQuickStepTest { @PortraitLandscape @PortraitLandscape @PlatinumTest(focusArea = "launcher") @PlatinumTest(focusArea = "launcher") public void testOverviewActions() throws Exception { public void testOverviewActions() throws Exception { assumeFalse("Skipping Overview Actions tests for grid only overview", mLauncher.isTablet() && mLauncher.isGridOnlyOverviewEnabled()); // Experimenting for b/165029151: // Experimenting for b/165029151: final Overview overview = mLauncher.goHome().switchToOverview(); final Overview overview = mLauncher.goHome().switchToOverview(); if (overview.hasTasks()) overview.dismissAllTasks(); if (overview.hasTasks()) overview.dismissAllTasks(); Loading Loading @@ -377,7 +379,9 @@ public class TaplTestsQuickstep extends AbstractQuickStepTest { // Test opening the task. // Test opening the task. overview.getCurrentTask().open(); overview.getCurrentTask().open(); assertTrue("Test activity didn't open from Overview", assertTrue("Test activity didn't open from Overview", mDevice.wait(Until.hasObject(By.pkg(getAppPackageName()).text("TestActivity10")), mDevice.wait(Until.hasObject(By.pkg(getAppPackageName()).text( mLauncher.isGridOnlyOverviewEnabled() ? "TestActivity12" : "TestActivity13")), DEFAULT_UI_TIMEOUT)); DEFAULT_UI_TIMEOUT)); // Scroll the task offscreen as it is now first // Scroll the task offscreen as it is now first Loading @@ -398,16 +402,17 @@ public class TaplTestsQuickstep extends AbstractQuickStepTest { (Math.abs(getTopRowTaskCountForTablet(launcher) - getBottomRowTaskCountForTablet( (Math.abs(getTopRowTaskCountForTablet(launcher) - getBottomRowTaskCountForTablet( launcher)) <= 1))); launcher)) <= 1))); // Test dismissing more tasks. // TODO(b/308841019): Re-enable after fixing Overview jank when dismiss assertTrue("Launcher internal state didn't remain in Overview", // // Test dismissing more tasks. isInState(() -> LauncherState.OVERVIEW)); // assertTrue("Launcher internal state didn't remain in Overview", overview.getCurrentTask().dismiss(); // isInState(() -> LauncherState.OVERVIEW)); assertTrue("Launcher internal state didn't remain in Overview", // overview.getCurrentTask().dismiss(); isInState(() -> LauncherState.OVERVIEW)); // assertTrue("Launcher internal state didn't remain in Overview", overview.getCurrentTask().dismiss(); // isInState(() -> LauncherState.OVERVIEW)); executeOnLauncher(launcher -> assertTrue("Grid did not rebalance after multiple dismissals", // overview.getCurrentTask().dismiss(); (Math.abs(getTopRowTaskCountForTablet(launcher) - getBottomRowTaskCountForTablet( // executeOnLauncher(launcher -> assertTrue("Grid did not rebalance after multiple dismissals", launcher)) <= 1))); // (Math.abs(getTopRowTaskCountForTablet(launcher) - getBottomRowTaskCountForTablet( // launcher)) <= 1))); // Test dismissing all tasks. // Test dismissing all tasks. mLauncher.goHome().switchToOverview().dismissAllTasks(); mLauncher.goHome().switchToOverview().dismissAllTasks(); Loading
quickstep/tests/src/com/android/quickstep/TaplTestsSplitscreen.java +1 −1 Original line number Original line Diff line number Diff line Loading @@ -143,7 +143,7 @@ public class TaplTestsSplitscreen extends AbstractQuickStepTest { startTestActivity(2); startTestActivity(2); startTestActivity(3); startTestActivity(3); if (mLauncher.isTablet()) { if (mLauncher.isTablet() && !mLauncher.isGridOnlyOverviewEnabled()) { mLauncher.goHome().switchToOverview().getOverviewActions() mLauncher.goHome().switchToOverview().getOverviewActions() .clickSplit() .clickSplit() .getTestActivityTask(2) .getTestActivityTask(2) Loading
tests/tapl/com/android/launcher3/tapl/BaseOverview.java +11 −9 Original line number Original line Diff line number Diff line Loading @@ -25,6 +25,7 @@ import androidx.test.uiautomator.Direction; import androidx.test.uiautomator.UiObject2; import androidx.test.uiautomator.UiObject2; import java.util.Collections; import java.util.Collections; import java.util.Comparator; import java.util.List; import java.util.List; import java.util.stream.Collectors; import java.util.stream.Collectors; Loading Loading @@ -201,7 +202,8 @@ public class BaseOverview extends LauncherInstrumentation.VisibleContainer { OverviewTask task = getCurrentTask(); OverviewTask task = getCurrentTask(); mLauncher.assertNotNull("current task is null", task); mLauncher.assertNotNull("current task is null", task); mLauncher.scrollLeftByDistance(verifyActiveContainer(), mLauncher.scrollLeftByDistance(verifyActiveContainer(), task.getVisibleWidth() + mLauncher.getOverviewPageSpacing()); mLauncher.getRealDisplaySize().x - task.getUiObject().getVisibleBounds().left + mLauncher.getOverviewPageSpacing()); try (LauncherInstrumentation.Closable c2 = try (LauncherInstrumentation.Closable c2 = mLauncher.addContextLayer("scrolled task off screen")) { mLauncher.addContextLayer("scrolled task off screen")) { Loading Loading @@ -231,14 +233,14 @@ public class BaseOverview extends LauncherInstrumentation.VisibleContainer { final List<UiObject2> taskViews = getTasks(); final List<UiObject2> taskViews = getTasks(); mLauncher.assertNotEquals("Unable to find a task", 0, taskViews.size()); mLauncher.assertNotEquals("Unable to find a task", 0, taskViews.size()); // taskViews contains up to 3 task views: the 'main' (having the widest visible part) one final List<OverviewTask> overviewTasks = taskViews.stream().map( // in the center, and parts of its right and left siblings. Find the main task view by task -> new OverviewTask(mLauncher, task, this)).toList(); // its width. // The widest, and most top-right task should be the current task final UiObject2 widestTask = Collections.max(taskViews, return Collections.max(overviewTasks, (t1, t2) -> Integer.compare(mLauncher.getVisibleBounds(t1).width(), Comparator.comparingInt(OverviewTask::getVisibleWidth) mLauncher.getVisibleBounds(t2).width())); .thenComparingInt(OverviewTask::getTaskCenterX) .thenComparing( return new OverviewTask(mLauncher, widestTask, this); Comparator.comparing(OverviewTask::getTaskCenterY).reversed())); } } /** Returns an overview task matching TestActivity {@param activityNumber}. */ /** Returns an overview task matching TestActivity {@param activityNumber}. */ Loading
tests/tapl/com/android/launcher3/tapl/LauncherInstrumentation.java +7 −4 Original line number Original line Diff line number Diff line Loading @@ -1608,8 +1608,11 @@ public final class LauncherInstrumentation { scroll( scroll( container, container, Direction.LEFT, Direction.LEFT, new Rect(leftGestureMargin, 0, new Rect(leftGestureMargin, containerRect.width() - distance - rightGestureMarginInContainer, 0), 0, Math.max(containerRect.width() - distance - leftGestureMargin, rightGestureMarginInContainer), 0), 10, 10, true); true); } } Loading Loading @@ -1782,7 +1785,7 @@ public final class LauncherInstrumentation { TestProtocol.TEST_INFO_RESPONSE_FIELD); TestProtocol.TEST_INFO_RESPONSE_FIELD); } } boolean isGridOnlyOverviewEnabled() { public boolean isGridOnlyOverviewEnabled() { return getTestInfo(TestProtocol.REQUEST_FLAG_ENABLE_GRID_ONLY_OVERVIEW).getBoolean( return getTestInfo(TestProtocol.REQUEST_FLAG_ENABLE_GRID_ONLY_OVERVIEW).getBoolean( TestProtocol.TEST_INFO_RESPONSE_FIELD); TestProtocol.TEST_INFO_RESPONSE_FIELD); } } Loading Loading @@ -2225,7 +2228,7 @@ public final class LauncherInstrumentation { int bottomBound = Math.min( int bottomBound = Math.min( containerBounds.bottom, containerBounds.bottom, getRealDisplaySize().y - getImeInsets().bottom); getRealDisplaySize().y - getImeInsets().bottom); int y = (bottomBound - containerBounds.top) / 2; int y = (bottomBound + containerBounds.top) / 2; // Do not tap in the status bar. // Do not tap in the status bar. y = Math.max(y, getWindowInsets().top); y = Math.max(y, getWindowInsets().top); Loading