Search in sources :

Example 6 with OVERVIEW_STATE_ORDINAL

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

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 7 with OVERVIEW_STATE_ORDINAL

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

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)

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