Search in sources :

Example 1 with OVERVIEW_STATE_ORDINAL

use of com.android.launcher3.testing.TestProtocol.OVERVIEW_STATE_ORDINAL in project android_packages_apps_Launcher3 by ProtonAOSP.

the class Background method quickSwitch.

@NonNull
private void quickSwitch(boolean toRight) {
    try (LauncherInstrumentation.Closable e = mLauncher.eventsCheck();
        LauncherInstrumentation.Closable c = mLauncher.addContextLayer("want to quick switch to the previous app")) {
        verifyActiveContainer();
        final boolean launcherWasVisible = mLauncher.isLauncherVisible();
        boolean transposeInLandscape = false;
        switch(mLauncher.getNavigationModel()) {
            case TWO_BUTTON:
                transposeInLandscape = true;
            // Fall through, zero button and two button modes behave the same.
            case ZERO_BUTTON:
                {
                    final int startX;
                    final int startY;
                    final int endX;
                    final int endY;
                    final int cornerRadius = (int) Math.ceil(mLauncher.getWindowCornerRadius());
                    if (toRight) {
                        if (mLauncher.getDevice().isNaturalOrientation() || !transposeInLandscape) {
                            // Swipe from the bottom left to the bottom right of the screen.
                            startX = cornerRadius;
                            startY = getSwipeStartY();
                            endX = mLauncher.getDevice().getDisplayWidth() - cornerRadius;
                            endY = startY;
                        } else {
                            // Swipe from the bottom right to the top right of the screen.
                            startX = getSwipeStartX();
                            startY = mLauncher.getRealDisplaySize().y - 1 - cornerRadius;
                            endX = startX;
                            endY = cornerRadius;
                        }
                    } else {
                        if (mLauncher.getDevice().isNaturalOrientation() || !transposeInLandscape) {
                            // Swipe from the bottom right to the bottom left of the screen.
                            startX = mLauncher.getDevice().getDisplayWidth() - cornerRadius;
                            startY = getSwipeStartY();
                            endX = cornerRadius;
                            endY = startY;
                        } else {
                            // Swipe from the bottom left to the top left of the screen.
                            startX = getSwipeStartX();
                            startY = cornerRadius;
                            endX = startX;
                            endY = mLauncher.getRealDisplaySize().y - 1 - cornerRadius;
                        }
                    }
                    final boolean isZeroButton = mLauncher.getNavigationModel() == LauncherInstrumentation.NavigationModel.ZERO_BUTTON;
                    LauncherInstrumentation.GestureScope gestureScope = launcherWasVisible && isZeroButton ? LauncherInstrumentation.GestureScope.INSIDE_TO_OUTSIDE : LauncherInstrumentation.GestureScope.OUTSIDE_WITH_PILFER;
                    mLauncher.executeAndWaitForEvent(() -> mLauncher.linearGesture(startX, startY, endX, endY, 20, false, gestureScope), event -> event.getEventType() == TYPE_WINDOW_STATE_CHANGED, () -> "Quick switch gesture didn't change window state", "swiping");
                    break;
                }
            case THREE_BUTTON:
                // Double press the recents button.
                UiObject2 recentsButton = mLauncher.waitForNavigationUiObject("recent_apps");
                if (mLauncher.isTablet()) {
                    mLauncher.expectEvent(TestProtocol.SEQUENCE_MAIN, LauncherInstrumentation.EVENT_TOUCH_DOWN);
                    mLauncher.expectEvent(TestProtocol.SEQUENCE_MAIN, LauncherInstrumentation.EVENT_TOUCH_UP);
                }
                mLauncher.expectEvent(TestProtocol.SEQUENCE_MAIN, SQUARE_BUTTON_EVENT);
                mLauncher.runToState(() -> recentsButton.click(), OVERVIEW_STATE_ORDINAL, "clicking Recents button for the first time");
                mLauncher.getOverview();
                if (mLauncher.isTablet()) {
                    mLauncher.expectEvent(TestProtocol.SEQUENCE_MAIN, LauncherInstrumentation.EVENT_TOUCH_DOWN);
                    mLauncher.expectEvent(TestProtocol.SEQUENCE_MAIN, LauncherInstrumentation.EVENT_TOUCH_UP);
                }
                mLauncher.expectEvent(TestProtocol.SEQUENCE_MAIN, SQUARE_BUTTON_EVENT);
                mLauncher.executeAndWaitForEvent(() -> recentsButton.click(), event -> event.getEventType() == TYPE_WINDOW_STATE_CHANGED, () -> "Pressing recents button didn't change window state", "clicking Recents button for the second time");
                break;
        }
        mLauncher.expectEvent(TestProtocol.SEQUENCE_MAIN, TASK_START_EVENT);
        return;
    }
}
Also used : UiObject2(androidx.test.uiautomator.UiObject2) List(java.util.List) MotionEvent(android.view.MotionEvent) NonNull(androidx.annotation.NonNull) TestProtocol(com.android.launcher3.testing.TestProtocol) Point(android.graphics.Point) SystemClock(android.os.SystemClock) Pattern(java.util.regex.Pattern) TASK_START_EVENT(com.android.launcher3.tapl.OverviewTask.TASK_START_EVENT) TYPE_WINDOW_STATE_CHANGED(android.view.accessibility.AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED) OVERVIEW_STATE_ORDINAL(com.android.launcher3.testing.TestProtocol.OVERVIEW_STATE_ORDINAL) UiObject2(androidx.test.uiautomator.UiObject2) NonNull(androidx.annotation.NonNull)

Example 2 with OVERVIEW_STATE_ORDINAL

use of com.android.launcher3.testing.TestProtocol.OVERVIEW_STATE_ORDINAL in project android_packages_apps_404Launcher by P-404.

the class Background method quickSwitch.

@NonNull
private void quickSwitch(boolean toRight) {
    try (LauncherInstrumentation.Closable e = mLauncher.eventsCheck();
        LauncherInstrumentation.Closable c = mLauncher.addContextLayer("want to quick switch to the previous app")) {
        verifyActiveContainer();
        final boolean launcherWasVisible = mLauncher.isLauncherVisible();
        boolean transposeInLandscape = false;
        switch(mLauncher.getNavigationModel()) {
            case TWO_BUTTON:
                transposeInLandscape = true;
            // Fall through, zero button and two button modes behave the same.
            case ZERO_BUTTON:
                {
                    final int startX;
                    final int startY;
                    final int endX;
                    final int endY;
                    final int cornerRadius = (int) Math.ceil(mLauncher.getWindowCornerRadius());
                    if (toRight) {
                        if (mLauncher.getDevice().isNaturalOrientation() || !transposeInLandscape) {
                            // Swipe from the bottom left to the bottom right of the screen.
                            startX = cornerRadius;
                            startY = getSwipeStartY();
                            endX = mLauncher.getDevice().getDisplayWidth() - cornerRadius;
                            endY = startY;
                        } else {
                            // Swipe from the bottom right to the top right of the screen.
                            startX = getSwipeStartX();
                            startY = mLauncher.getRealDisplaySize().y - 1 - cornerRadius;
                            endX = startX;
                            endY = cornerRadius;
                        }
                    } else {
                        if (mLauncher.getDevice().isNaturalOrientation() || !transposeInLandscape) {
                            // Swipe from the bottom right to the bottom left of the screen.
                            startX = mLauncher.getDevice().getDisplayWidth() - cornerRadius;
                            startY = getSwipeStartY();
                            endX = cornerRadius;
                            endY = startY;
                        } else {
                            // Swipe from the bottom left to the top left of the screen.
                            startX = getSwipeStartX();
                            startY = cornerRadius;
                            endX = startX;
                            endY = mLauncher.getRealDisplaySize().y - 1 - cornerRadius;
                        }
                    }
                    final boolean isZeroButton = mLauncher.getNavigationModel() == LauncherInstrumentation.NavigationModel.ZERO_BUTTON;
                    LauncherInstrumentation.GestureScope gestureScope = launcherWasVisible && isZeroButton ? LauncherInstrumentation.GestureScope.INSIDE_TO_OUTSIDE : LauncherInstrumentation.GestureScope.OUTSIDE_WITH_PILFER;
                    mLauncher.executeAndWaitForEvent(() -> mLauncher.linearGesture(startX, startY, endX, endY, 20, false, gestureScope), event -> event.getEventType() == TYPE_WINDOW_STATE_CHANGED, () -> "Quick switch gesture didn't change window state", "swiping");
                    break;
                }
            case THREE_BUTTON:
                // Double press the recents button.
                UiObject2 recentsButton = mLauncher.waitForNavigationUiObject("recent_apps");
                if (mLauncher.isTablet()) {
                    mLauncher.expectEvent(TestProtocol.SEQUENCE_MAIN, LauncherInstrumentation.EVENT_TOUCH_DOWN);
                    mLauncher.expectEvent(TestProtocol.SEQUENCE_MAIN, LauncherInstrumentation.EVENT_TOUCH_UP);
                }
                mLauncher.expectEvent(TestProtocol.SEQUENCE_MAIN, SQUARE_BUTTON_EVENT);
                mLauncher.runToState(() -> recentsButton.click(), OVERVIEW_STATE_ORDINAL, "clicking Recents button for the first time");
                mLauncher.getOverview();
                if (mLauncher.isTablet()) {
                    mLauncher.expectEvent(TestProtocol.SEQUENCE_MAIN, LauncherInstrumentation.EVENT_TOUCH_DOWN);
                    mLauncher.expectEvent(TestProtocol.SEQUENCE_MAIN, LauncherInstrumentation.EVENT_TOUCH_UP);
                }
                mLauncher.expectEvent(TestProtocol.SEQUENCE_MAIN, SQUARE_BUTTON_EVENT);
                mLauncher.executeAndWaitForEvent(() -> recentsButton.click(), event -> event.getEventType() == TYPE_WINDOW_STATE_CHANGED, () -> "Pressing recents button didn't change window state", "clicking Recents button for the second time");
                break;
        }
        mLauncher.expectEvent(TestProtocol.SEQUENCE_MAIN, TASK_START_EVENT);
        return;
    }
}
Also used : UiObject2(androidx.test.uiautomator.UiObject2) List(java.util.List) MotionEvent(android.view.MotionEvent) NonNull(androidx.annotation.NonNull) TestProtocol(com.android.launcher3.testing.TestProtocol) Point(android.graphics.Point) SystemClock(android.os.SystemClock) Pattern(java.util.regex.Pattern) TASK_START_EVENT(com.android.launcher3.tapl.OverviewTask.TASK_START_EVENT) TYPE_WINDOW_STATE_CHANGED(android.view.accessibility.AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED) OVERVIEW_STATE_ORDINAL(com.android.launcher3.testing.TestProtocol.OVERVIEW_STATE_ORDINAL) UiObject2(androidx.test.uiautomator.UiObject2) NonNull(androidx.annotation.NonNull)

Example 3 with OVERVIEW_STATE_ORDINAL

use of com.android.launcher3.testing.TestProtocol.OVERVIEW_STATE_ORDINAL in project android_packages_apps_Launcher3 by crdroidandroid.

the class Background method goToOverviewUnchecked.

protected void goToOverviewUnchecked() {
    switch(mLauncher.getNavigationModel()) {
        case ZERO_BUTTON:
            {
                final int centerX = mLauncher.getDevice().getDisplayWidth() / 2;
                final int startY = getSwipeStartY();
                final int swipeHeight = mLauncher.getTestInfo(getSwipeHeightRequestName()).getInt(TestProtocol.TEST_INFO_RESPONSE_FIELD);
                final Point start = new Point(centerX, startY);
                final Point end = new Point(centerX, startY - swipeHeight - mLauncher.getTouchSlop());
                final long downTime = SystemClock.uptimeMillis();
                final LauncherInstrumentation.GestureScope gestureScope = zeroButtonToOverviewGestureStartsInLauncher() ? LauncherInstrumentation.GestureScope.INSIDE_TO_OUTSIDE : LauncherInstrumentation.GestureScope.OUTSIDE_WITH_PILFER;
                mLauncher.sendPointer(downTime, downTime, MotionEvent.ACTION_DOWN, start, gestureScope);
                mLauncher.executeAndWaitForLauncherEvent(() -> mLauncher.movePointer(downTime, downTime, ZERO_BUTTON_SWIPE_UP_GESTURE_DURATION, start, end, gestureScope), event -> TestProtocol.PAUSE_DETECTED_MESSAGE.equals(event.getClassName()), () -> "Pause wasn't detected", "swiping and holding");
                mLauncher.runToState(() -> mLauncher.sendPointer(downTime, SystemClock.uptimeMillis(), MotionEvent.ACTION_UP, end, gestureScope), OVERVIEW_STATE_ORDINAL, "sending UP event");
                break;
            }
        case TWO_BUTTON:
            {
                final int startX;
                final int startY;
                final int endX;
                final int endY;
                final int swipeLength = mLauncher.getTestInfo(getSwipeHeightRequestName()).getInt(TestProtocol.TEST_INFO_RESPONSE_FIELD) + mLauncher.getTouchSlop();
                if (mLauncher.getDevice().isNaturalOrientation()) {
                    startX = endX = mLauncher.getDevice().getDisplayWidth() / 2;
                    startY = getSwipeStartY();
                    endY = startY - swipeLength;
                } else {
                    startX = getSwipeStartX();
                    // TODO(b/184059820) make horizontal swipe use swipe width not height, for the
                    // moment just double the swipe length.
                    endX = startX - swipeLength * 2;
                    startY = endY = mLauncher.getDevice().getDisplayHeight() / 2;
                }
                mLauncher.swipeToState(startX, startY, endX, endY, 10, OVERVIEW_STATE_ORDINAL, LauncherInstrumentation.GestureScope.OUTSIDE_WITH_PILFER);
                break;
            }
        case THREE_BUTTON:
            mLauncher.expectEvent(TestProtocol.SEQUENCE_MAIN, SQUARE_BUTTON_EVENT);
            mLauncher.runToState(() -> mLauncher.waitForSystemUiObject("recent_apps").click(), OVERVIEW_STATE_ORDINAL, "clicking Recents button");
            break;
    }
    expectSwitchToOverviewEvents();
}
Also used : UiObject2(androidx.test.uiautomator.UiObject2) MotionEvent(android.view.MotionEvent) NonNull(androidx.annotation.NonNull) TestProtocol(com.android.launcher3.testing.TestProtocol) Point(android.graphics.Point) SystemClock(android.os.SystemClock) Pattern(java.util.regex.Pattern) TASK_START_EVENT(com.android.launcher3.tapl.OverviewTask.TASK_START_EVENT) TYPE_WINDOW_STATE_CHANGED(android.view.accessibility.AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED) OVERVIEW_STATE_ORDINAL(com.android.launcher3.testing.TestProtocol.OVERVIEW_STATE_ORDINAL) Point(android.graphics.Point)

Example 4 with OVERVIEW_STATE_ORDINAL

use of com.android.launcher3.testing.TestProtocol.OVERVIEW_STATE_ORDINAL in project android_packages_apps_Launcher3 by crdroidandroid.

the class Background method quickSwitch.

@NonNull
private void quickSwitch(boolean toRight) {
    try (LauncherInstrumentation.Closable e = mLauncher.eventsCheck();
        LauncherInstrumentation.Closable c = mLauncher.addContextLayer("want to quick switch to the previous app")) {
        verifyActiveContainer();
        final boolean launcherWasVisible = mLauncher.isLauncherVisible();
        boolean transposeInLandscape = false;
        switch(mLauncher.getNavigationModel()) {
            case TWO_BUTTON:
                transposeInLandscape = true;
            // Fall through, zero button and two button modes behave the same.
            case ZERO_BUTTON:
                {
                    final int startX;
                    final int startY;
                    final int endX;
                    final int endY;
                    final int cornerRadius = (int) Math.ceil(mLauncher.getWindowCornerRadius());
                    if (toRight) {
                        if (mLauncher.getDevice().isNaturalOrientation() || !transposeInLandscape) {
                            // Swipe from the bottom left to the bottom right of the screen.
                            startX = cornerRadius;
                            startY = getSwipeStartY();
                            endX = mLauncher.getDevice().getDisplayWidth() - cornerRadius;
                            endY = startY;
                        } else {
                            // Swipe from the bottom right to the top right of the screen.
                            startX = getSwipeStartX();
                            startY = mLauncher.getRealDisplaySize().y - 1 - cornerRadius;
                            endX = startX;
                            endY = cornerRadius;
                        }
                    } else {
                        if (mLauncher.getDevice().isNaturalOrientation() || !transposeInLandscape) {
                            // Swipe from the bottom right to the bottom left of the screen.
                            startX = mLauncher.getDevice().getDisplayWidth() - cornerRadius;
                            startY = getSwipeStartY();
                            endX = cornerRadius;
                            endY = startY;
                        } else {
                            // Swipe from the bottom left to the top left of the screen.
                            startX = getSwipeStartX();
                            startY = cornerRadius;
                            endX = startX;
                            endY = mLauncher.getRealDisplaySize().y - 1 - cornerRadius;
                        }
                    }
                    final boolean isZeroButton = mLauncher.getNavigationModel() == LauncherInstrumentation.NavigationModel.ZERO_BUTTON;
                    LauncherInstrumentation.GestureScope gestureScope = launcherWasVisible && isZeroButton ? LauncherInstrumentation.GestureScope.INSIDE_TO_OUTSIDE : LauncherInstrumentation.GestureScope.OUTSIDE_WITH_PILFER;
                    mLauncher.executeAndWaitForEvent(() -> mLauncher.linearGesture(startX, startY, endX, endY, 20, false, gestureScope), event -> event.getEventType() == TYPE_WINDOW_STATE_CHANGED, () -> "Quick switch gesture didn't change window state", "swiping");
                    break;
                }
            case THREE_BUTTON:
                // Double press the recents button.
                UiObject2 recentsButton = mLauncher.waitForSystemUiObject("recent_apps");
                mLauncher.expectEvent(TestProtocol.SEQUENCE_MAIN, SQUARE_BUTTON_EVENT);
                mLauncher.runToState(() -> recentsButton.click(), OVERVIEW_STATE_ORDINAL, "clicking Recents button for the first time");
                mLauncher.getOverview();
                mLauncher.expectEvent(TestProtocol.SEQUENCE_MAIN, SQUARE_BUTTON_EVENT);
                mLauncher.executeAndWaitForEvent(() -> recentsButton.click(), event -> event.getEventType() == TYPE_WINDOW_STATE_CHANGED, () -> "Pressing recents button didn't change window state", "clicking Recents button for the second time");
                break;
        }
        mLauncher.expectEvent(TestProtocol.SEQUENCE_MAIN, TASK_START_EVENT);
        return;
    }
}
Also used : UiObject2(androidx.test.uiautomator.UiObject2) MotionEvent(android.view.MotionEvent) NonNull(androidx.annotation.NonNull) TestProtocol(com.android.launcher3.testing.TestProtocol) Point(android.graphics.Point) SystemClock(android.os.SystemClock) Pattern(java.util.regex.Pattern) TASK_START_EVENT(com.android.launcher3.tapl.OverviewTask.TASK_START_EVENT) TYPE_WINDOW_STATE_CHANGED(android.view.accessibility.AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED) OVERVIEW_STATE_ORDINAL(com.android.launcher3.testing.TestProtocol.OVERVIEW_STATE_ORDINAL) UiObject2(androidx.test.uiautomator.UiObject2) NonNull(androidx.annotation.NonNull)

Example 5 with OVERVIEW_STATE_ORDINAL

use of com.android.launcher3.testing.TestProtocol.OVERVIEW_STATE_ORDINAL in project android_packages_apps_Trebuchet by LineageOS.

the class Background method goToOverviewUnchecked.

protected void goToOverviewUnchecked() {
    switch(mLauncher.getNavigationModel()) {
        case ZERO_BUTTON:
            {
                final int centerX = mLauncher.getDevice().getDisplayWidth() / 2;
                final int startY = getSwipeStartY();
                final int swipeHeight = mLauncher.getTestInfo(getSwipeHeightRequestName()).getInt(TestProtocol.TEST_INFO_RESPONSE_FIELD);
                final Point start = new Point(centerX, startY);
                final Point end = new Point(centerX, startY - swipeHeight - mLauncher.getTouchSlop());
                final long downTime = SystemClock.uptimeMillis();
                final LauncherInstrumentation.GestureScope gestureScope = zeroButtonToOverviewGestureStartsInLauncher() ? LauncherInstrumentation.GestureScope.INSIDE_TO_OUTSIDE : LauncherInstrumentation.GestureScope.OUTSIDE_WITH_PILFER;
                // b/156044202
                mLauncher.log("Hierarchy before swiping up to overview:");
                mLauncher.dumpViewHierarchy();
                mLauncher.sendPointer(downTime, downTime, MotionEvent.ACTION_DOWN, start, gestureScope);
                mLauncher.executeAndWaitForEvent(() -> mLauncher.movePointer(downTime, downTime, ZERO_BUTTON_SWIPE_UP_GESTURE_DURATION, start, end, gestureScope), event -> TestProtocol.PAUSE_DETECTED_MESSAGE.equals(event.getClassName()), () -> "Pause wasn't detected");
                mLauncher.runToState(() -> mLauncher.sendPointer(downTime, SystemClock.uptimeMillis(), MotionEvent.ACTION_UP, end, gestureScope), OVERVIEW_STATE_ORDINAL);
                break;
            }
        case TWO_BUTTON:
            {
                final int startX;
                final int startY;
                final int endX;
                final int endY;
                final int swipeLength = mLauncher.getTestInfo(getSwipeHeightRequestName()).getInt(TestProtocol.TEST_INFO_RESPONSE_FIELD) + mLauncher.getTouchSlop();
                if (mLauncher.getDevice().isNaturalOrientation()) {
                    startX = endX = mLauncher.getDevice().getDisplayWidth() / 2;
                    startY = getSwipeStartY();
                    endY = startY - swipeLength;
                } else {
                    startX = getSwipeStartX();
                    endX = startX - swipeLength;
                    startY = endY = mLauncher.getDevice().getDisplayHeight() / 2;
                }
                mLauncher.swipeToState(startX, startY, endX, endY, 10, OVERVIEW_STATE_ORDINAL, LauncherInstrumentation.GestureScope.OUTSIDE_WITH_PILFER);
                break;
            }
        case THREE_BUTTON:
            mLauncher.expectEvent(TestProtocol.SEQUENCE_MAIN, SQUARE_BUTTON_EVENT);
            mLauncher.runToState(() -> mLauncher.waitForSystemUiObject("recent_apps").click(), OVERVIEW_STATE_ORDINAL);
            break;
    }
    expectSwitchToOverviewEvents();
}
Also used : UiObject2(androidx.test.uiautomator.UiObject2) MotionEvent(android.view.MotionEvent) NonNull(androidx.annotation.NonNull) TestProtocol(com.android.launcher3.testing.TestProtocol) Point(android.graphics.Point) SystemClock(android.os.SystemClock) Pattern(java.util.regex.Pattern) TASK_START_EVENT(com.android.launcher3.tapl.OverviewTask.TASK_START_EVENT) BACKGROUND_APP_STATE_ORDINAL(com.android.launcher3.testing.TestProtocol.BACKGROUND_APP_STATE_ORDINAL) OVERVIEW_STATE_ORDINAL(com.android.launcher3.testing.TestProtocol.OVERVIEW_STATE_ORDINAL) Point(android.graphics.Point)

Aggregations

Point (android.graphics.Point)7 SystemClock (android.os.SystemClock)7 MotionEvent (android.view.MotionEvent)7 NonNull (androidx.annotation.NonNull)7 UiObject2 (androidx.test.uiautomator.UiObject2)7 TASK_START_EVENT (com.android.launcher3.tapl.OverviewTask.TASK_START_EVENT)7 TestProtocol (com.android.launcher3.testing.TestProtocol)7 OVERVIEW_STATE_ORDINAL (com.android.launcher3.testing.TestProtocol.OVERVIEW_STATE_ORDINAL)7 Pattern (java.util.regex.Pattern)7 TYPE_WINDOW_STATE_CHANGED (android.view.accessibility.AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED)6 List (java.util.List)4 BACKGROUND_APP_STATE_ORDINAL (com.android.launcher3.testing.TestProtocol.BACKGROUND_APP_STATE_ORDINAL)1