Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7028b10c authored by vadimt's avatar vadimt Committed by Vadim Tryshev
Browse files

Removing magic constant 0.8f from AllApps

Bug: 123904290
Change-Id: I52aeb3c0452175ba37b2524d632e8069ba0911c9
Merged-in: I91ff4d4f962eefea787989362c32d987f546e84d
parent 77f045b6
Loading
Loading
Loading
Loading
+6 −1
Original line number Diff line number Diff line
@@ -90,6 +90,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);
            allAppsContainer.setGestureMargins(
                    0,
                    getSearchBox(allAppsContainer).getVisibleBounds().bottom + 1,
@@ -103,7 +104,11 @@ public class AllApps extends LauncherInstrumentation.VisibleContainer {
                int scroll = getScroll(allAppsContainer);
                try (LauncherInstrumentation.Closable c1 = mLauncher.addContextLayer("scrolled")) {
                    while (!hasClickableIcon(allAppsContainer, appListRecycler, appIconSelector)) {
                        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 = getScroll(allAppsContainer);
                        if (newScroll == scroll) break;

+33 −0
Original line number Diff line number Diff line
@@ -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;

@@ -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;
@@ -765,6 +768,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) {
+4 −32
Original line number Diff line number Diff line
@@ -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.
@@ -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();
@@ -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.
     */
@@ -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);
        }
    }
}