Loading tests/tapl/com/android/launcher3/tapl/AllApps.java +6 −1 Original line number Diff line number Diff line Loading @@ -94,6 +94,7 @@ public class AllApps extends LauncherInstrumentation.VisibleContainer { final UiObject2 allAppsContainer = verifyActiveContainer(); final UiObject2 appListRecycler = mLauncher.waitForObjectInContainer(allAppsContainer, "apps_list_view"); final UiObject2 searchBox = getSearchBox(allAppsContainer); int bottomGestureMargin = ResourceUtils.getNavbarSize( ResourceUtils.NAVBAR_BOTTOM_GESTURE_SIZE, mLauncher.getResources()) + 1; Loading @@ -113,7 +114,11 @@ public class AllApps extends LauncherInstrumentation.VisibleContainer { try (LauncherInstrumentation.Closable c1 = mLauncher.addContextLayer("scrolled")) { while (!hasClickableIcon(allAppsContainer, appListRecycler, appIconSelector, displayBottom)) { mLauncher.scroll(allAppsContainer, Direction.DOWN, 0.8f, null, 50); mLauncher.scrollToLastVisibleRow( allAppsContainer, mLauncher.getObjectsInContainer(allAppsContainer, "icon"), searchBox.getVisibleBounds().bottom - allAppsContainer.getVisibleBounds().top); final int newScroll = getAllAppsScroll(); if (newScroll == scroll) break; Loading tests/tapl/com/android/launcher3/tapl/LauncherInstrumentation.java +33 −0 Original line number Diff line number Diff line Loading @@ -59,6 +59,7 @@ import androidx.test.uiautomator.UiDevice; import androidx.test.uiautomator.UiObject2; import androidx.test.uiautomator.Until; import com.android.launcher3.ResourceUtils; import com.android.launcher3.testing.TestProtocol; import com.android.systemui.shared.system.QuickStepContract; Loading @@ -67,6 +68,8 @@ import org.junit.Assert; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.lang.ref.WeakReference; import java.util.Collection; import java.util.Collections; import java.util.Deque; import java.util.LinkedList; import java.util.List; Loading Loading @@ -756,6 +759,36 @@ public final class LauncherInstrumentation { TestProtocol.stateOrdinalToString(parcel.getInt(TestProtocol.STATE_FIELD))); } int getBottomGestureSize() { return ResourceUtils.getNavbarSize( ResourceUtils.NAVBAR_BOTTOM_GESTURE_SIZE, getResources()) + 1; } int getBottomGestureMargin(UiObject2 container) { return container.getVisibleBounds().bottom - getRealDisplaySize().y + getBottomGestureSize(); } void scrollToLastVisibleRow(UiObject2 container, Collection<UiObject2> items, int topPadding) { final UiObject2 lowestItem = Collections.max(items, (i1, i2) -> Integer.compare(i1.getVisibleBounds().top, i2.getVisibleBounds().top)); final int gestureStart = lowestItem.getVisibleBounds().top + getTouchSlop(); final int distance = gestureStart - container.getVisibleBounds().top - topPadding; final int bottomMargin = container.getVisibleBounds().height() - distance; scroll( container, Direction.DOWN, 1f, new Rect( 0, 0, 0, Math.max(bottomMargin, getBottomGestureMargin(container))), 150); } void scroll(UiObject2 container, Direction direction, float percent, Rect margins, int steps) { final Rect rect = container.getVisibleBounds(); if (margins != null) { Loading tests/tapl/com/android/launcher3/tapl/Widgets.java +4 −32 Original line number Diff line number Diff line Loading @@ -24,10 +24,7 @@ import androidx.test.uiautomator.BySelector; import androidx.test.uiautomator.Direction; import androidx.test.uiautomator.UiObject2; import com.android.launcher3.ResourceUtils; import java.util.Collection; import java.util.Collections; /** * All widgets container. Loading @@ -52,7 +49,7 @@ public final class Widgets extends LauncherInstrumentation.VisibleContainer { widgetsContainer, Direction.DOWN, 1f, new Rect(0, 0, 0, getBottomGestureMargin(widgetsContainer)), new Rect(0, 0, 0, mLauncher.getBottomGestureMargin(widgetsContainer)), FLING_STEPS); try (LauncherInstrumentation.Closable c1 = mLauncher.addContextLayer("flung forward")) { verifyActiveContainer(); Loading @@ -61,16 +58,6 @@ public final class Widgets extends LauncherInstrumentation.VisibleContainer { } } private int getBottomGestureMargin(UiObject2 widgetsContainer) { return widgetsContainer.getVisibleBounds().bottom - mLauncher.getRealDisplaySize().y + getBottomGestureSize(); } private int getBottomGestureSize() { return ResourceUtils.getNavbarSize( ResourceUtils.NAVBAR_BOTTOM_GESTURE_SIZE, mLauncher.getResources()) + 1; } /** * Flings backward (up) and waits the fling's end. */ Loading Loading @@ -117,29 +104,14 @@ public final class Widgets extends LauncherInstrumentation.VisibleContainer { "com.android.launcher3.widget.WidgetCell", widget.getClassName()); if (widget.getVisibleBounds().bottom <= displaySize.y - getBottomGestureSize()) { if (widget.getVisibleBounds().bottom <= displaySize.y - mLauncher.getBottomGestureSize()) { return new Widget(mLauncher, widget); } } mLauncher.assertTrue("Too many attempts", ++i <= 40); final UiObject2 lowestCell = Collections.max(cells, (c1, c2) -> Integer.compare(c1.getVisibleBounds().top, c2.getVisibleBounds().top)); final int gestureStart = lowestCell.getVisibleBounds().top + mLauncher.getTouchSlop(); final int distance = gestureStart - widgetsContainer.getVisibleBounds().top; final int bottomMargin = widgetsContainer.getVisibleBounds().height() - distance; mLauncher.scroll( widgetsContainer, Direction.DOWN, 1f, new Rect( 0, 0, 0, Math.max(bottomMargin, getBottomGestureMargin(widgetsContainer))), 150); mLauncher.scrollToLastVisibleRow(widgetsContainer, cells, 0); } } } Loading
tests/tapl/com/android/launcher3/tapl/AllApps.java +6 −1 Original line number Diff line number Diff line Loading @@ -94,6 +94,7 @@ public class AllApps extends LauncherInstrumentation.VisibleContainer { final UiObject2 allAppsContainer = verifyActiveContainer(); final UiObject2 appListRecycler = mLauncher.waitForObjectInContainer(allAppsContainer, "apps_list_view"); final UiObject2 searchBox = getSearchBox(allAppsContainer); int bottomGestureMargin = ResourceUtils.getNavbarSize( ResourceUtils.NAVBAR_BOTTOM_GESTURE_SIZE, mLauncher.getResources()) + 1; Loading @@ -113,7 +114,11 @@ public class AllApps extends LauncherInstrumentation.VisibleContainer { try (LauncherInstrumentation.Closable c1 = mLauncher.addContextLayer("scrolled")) { while (!hasClickableIcon(allAppsContainer, appListRecycler, appIconSelector, displayBottom)) { mLauncher.scroll(allAppsContainer, Direction.DOWN, 0.8f, null, 50); mLauncher.scrollToLastVisibleRow( allAppsContainer, mLauncher.getObjectsInContainer(allAppsContainer, "icon"), searchBox.getVisibleBounds().bottom - allAppsContainer.getVisibleBounds().top); final int newScroll = getAllAppsScroll(); if (newScroll == scroll) break; Loading
tests/tapl/com/android/launcher3/tapl/LauncherInstrumentation.java +33 −0 Original line number Diff line number Diff line Loading @@ -59,6 +59,7 @@ import androidx.test.uiautomator.UiDevice; import androidx.test.uiautomator.UiObject2; import androidx.test.uiautomator.Until; import com.android.launcher3.ResourceUtils; import com.android.launcher3.testing.TestProtocol; import com.android.systemui.shared.system.QuickStepContract; Loading @@ -67,6 +68,8 @@ import org.junit.Assert; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.lang.ref.WeakReference; import java.util.Collection; import java.util.Collections; import java.util.Deque; import java.util.LinkedList; import java.util.List; Loading Loading @@ -756,6 +759,36 @@ public final class LauncherInstrumentation { TestProtocol.stateOrdinalToString(parcel.getInt(TestProtocol.STATE_FIELD))); } int getBottomGestureSize() { return ResourceUtils.getNavbarSize( ResourceUtils.NAVBAR_BOTTOM_GESTURE_SIZE, getResources()) + 1; } int getBottomGestureMargin(UiObject2 container) { return container.getVisibleBounds().bottom - getRealDisplaySize().y + getBottomGestureSize(); } void scrollToLastVisibleRow(UiObject2 container, Collection<UiObject2> items, int topPadding) { final UiObject2 lowestItem = Collections.max(items, (i1, i2) -> Integer.compare(i1.getVisibleBounds().top, i2.getVisibleBounds().top)); final int gestureStart = lowestItem.getVisibleBounds().top + getTouchSlop(); final int distance = gestureStart - container.getVisibleBounds().top - topPadding; final int bottomMargin = container.getVisibleBounds().height() - distance; scroll( container, Direction.DOWN, 1f, new Rect( 0, 0, 0, Math.max(bottomMargin, getBottomGestureMargin(container))), 150); } void scroll(UiObject2 container, Direction direction, float percent, Rect margins, int steps) { final Rect rect = container.getVisibleBounds(); if (margins != null) { Loading
tests/tapl/com/android/launcher3/tapl/Widgets.java +4 −32 Original line number Diff line number Diff line Loading @@ -24,10 +24,7 @@ import androidx.test.uiautomator.BySelector; import androidx.test.uiautomator.Direction; import androidx.test.uiautomator.UiObject2; import com.android.launcher3.ResourceUtils; import java.util.Collection; import java.util.Collections; /** * All widgets container. Loading @@ -52,7 +49,7 @@ public final class Widgets extends LauncherInstrumentation.VisibleContainer { widgetsContainer, Direction.DOWN, 1f, new Rect(0, 0, 0, getBottomGestureMargin(widgetsContainer)), new Rect(0, 0, 0, mLauncher.getBottomGestureMargin(widgetsContainer)), FLING_STEPS); try (LauncherInstrumentation.Closable c1 = mLauncher.addContextLayer("flung forward")) { verifyActiveContainer(); Loading @@ -61,16 +58,6 @@ public final class Widgets extends LauncherInstrumentation.VisibleContainer { } } private int getBottomGestureMargin(UiObject2 widgetsContainer) { return widgetsContainer.getVisibleBounds().bottom - mLauncher.getRealDisplaySize().y + getBottomGestureSize(); } private int getBottomGestureSize() { return ResourceUtils.getNavbarSize( ResourceUtils.NAVBAR_BOTTOM_GESTURE_SIZE, mLauncher.getResources()) + 1; } /** * Flings backward (up) and waits the fling's end. */ Loading Loading @@ -117,29 +104,14 @@ public final class Widgets extends LauncherInstrumentation.VisibleContainer { "com.android.launcher3.widget.WidgetCell", widget.getClassName()); if (widget.getVisibleBounds().bottom <= displaySize.y - getBottomGestureSize()) { if (widget.getVisibleBounds().bottom <= displaySize.y - mLauncher.getBottomGestureSize()) { return new Widget(mLauncher, widget); } } mLauncher.assertTrue("Too many attempts", ++i <= 40); final UiObject2 lowestCell = Collections.max(cells, (c1, c2) -> Integer.compare(c1.getVisibleBounds().top, c2.getVisibleBounds().top)); final int gestureStart = lowestCell.getVisibleBounds().top + mLauncher.getTouchSlop(); final int distance = gestureStart - widgetsContainer.getVisibleBounds().top; final int bottomMargin = widgetsContainer.getVisibleBounds().height() - distance; mLauncher.scroll( widgetsContainer, Direction.DOWN, 1f, new Rect( 0, 0, 0, Math.max(bottomMargin, getBottomGestureMargin(widgetsContainer))), 150); mLauncher.scrollToLastVisibleRow(widgetsContainer, cells, 0); } } }