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

Commit 6a4a229c authored by Tracy Zhou's avatar Tracy Zhou
Browse files

Revert "Revert "Add testSplitFromOverview test (for phones)""

This reverts commit 24df4bff.

Reason for revert: resubmit

Change-Id: Iebc66cbce6885e06fe7691c548c1ffe950e936df
parent f2d61702
Loading
Loading
Loading
Loading
+15 −0
Original line number Diff line number Diff line
@@ -179,6 +179,21 @@ public class TaplTestsQuickstep extends AbstractQuickStepTest {
        actionsView.clickAndDismissScreenshot();
    }

    @Test
    @PortraitLandscape
    public void testSplitFromOverview() {
        assumeTrue(!mLauncher.isTablet());

        startTestActivity(2);
        startTestActivity(3);

        mLauncher.goHome().switchToOverview().getCurrentTask()
                .tapMenu()
                .tapSplitMenuItem()
                .getTestActivityTask(2)
                .open();
    }

    @Test
    @PortraitLandscape
    public void testSplitFromOverviewForTablet() {
+14 −8
Original line number Diff line number Diff line
@@ -247,8 +247,16 @@ public class BaseOverview extends LauncherInstrumentation.VisibleContainer {
        return mLauncher.hasLauncherObject(mLauncher.getOverviewObjectSelector("clear_all"));
    }

    protected boolean isActionsViewVisible() {
        OverviewTask task = mLauncher.isTablet() ? getFocusedTaskForTablet() : getCurrentTask();
        if (task == null) {
            return false;
        }
        return !task.isTaskSplit();
    }

    private void verifyActionsViewVisibility() {
        if (!hasTasks()) {
        if (!hasTasks() || !isActionsViewVisible()) {
            return;
        }
        try (LauncherInstrumentation.Closable c = mLauncher.addContextLayer(
@@ -265,13 +273,11 @@ public class BaseOverview extends LauncherInstrumentation.VisibleContainer {
     * Returns if focused task is currently snapped task in tablet grid overview.
     */
    private boolean isOverviewSnappedToFocusedTaskForTablet() {
        UiObject2 focusedTask = getFocusedTaskForTablet();
        OverviewTask focusedTask = getFocusedTaskForTablet();
        if (focusedTask == null) {
            return false;
        }
        return Math.abs(
                focusedTask.getVisibleBounds().exactCenterX() - mLauncher.getExactScreenCenterX())
                < 1;
        return Math.abs(focusedTask.getExactCenterX() - mLauncher.getExactScreenCenterX()) < 1;
    }

    /**
@@ -279,7 +285,7 @@ public class BaseOverview extends LauncherInstrumentation.VisibleContainer {
     *
     * @throws IllegalStateException if not run on a tablet device.
     */
    UiObject2 getFocusedTaskForTablet() {
    OverviewTask getFocusedTaskForTablet() {
        if (!mLauncher.isTablet()) {
            throw new IllegalStateException("Must be run on tablet device.");
        }
@@ -290,7 +296,7 @@ public class BaseOverview extends LauncherInstrumentation.VisibleContainer {
        int focusedTaskHeight = mLauncher.getFocusedTaskHeightForTablet();
        for (UiObject2 task : taskViews) {
            if (task.getVisibleBounds().height() == focusedTaskHeight) {
                return task;
                return new OverviewTask(mLauncher, task, this);
            }
        }
        return null;
+16 −1
Original line number Diff line number Diff line
@@ -169,6 +169,7 @@ public final class LauncherInstrumentation {
    private static final String WIDGETS_RES_ID = "primary_widgets_list_view";
    private static final String CONTEXT_MENU_RES_ID = "popup_container";
    private static final String TASKBAR_RES_ID = "taskbar_view";
    private static final String SPLIT_PLACEHOLDER_RES_ID = "split_placeholder";
    public static final int WAIT_TIME_MS = 30000;
    private static final String SYSTEMUI_PACKAGE = "com.android.systemui";
    private static final String ANDROID_PACKAGE = "android";
@@ -724,6 +725,7 @@ public final class LauncherInstrumentation {
                    waitUntilLauncherObjectGone(OVERVIEW_RES_ID);
                    waitUntilLauncherObjectGone(WIDGETS_RES_ID);
                    waitUntilLauncherObjectGone(TASKBAR_RES_ID);
                    waitUntilLauncherObjectGone(SPLIT_PLACEHOLDER_RES_ID);

                    return waitForLauncherObject(WORKSPACE_RES_ID);
                }
@@ -732,6 +734,7 @@ public final class LauncherInstrumentation {
                    waitUntilLauncherObjectGone(APPS_RES_ID);
                    waitUntilLauncherObjectGone(OVERVIEW_RES_ID);
                    waitUntilLauncherObjectGone(TASKBAR_RES_ID);
                    waitUntilLauncherObjectGone(SPLIT_PLACEHOLDER_RES_ID);

                    return waitForLauncherObject(WIDGETS_RES_ID);
                }
@@ -741,16 +744,26 @@ public final class LauncherInstrumentation {
                    waitUntilLauncherObjectGone(OVERVIEW_RES_ID);
                    waitUntilLauncherObjectGone(WIDGETS_RES_ID);
                    waitUntilLauncherObjectGone(TASKBAR_RES_ID);
                    waitUntilLauncherObjectGone(SPLIT_PLACEHOLDER_RES_ID);

                    return waitForLauncherObject(APPS_RES_ID);
                }
                case OVERVIEW:
                case OVERVIEW: {
                    waitUntilLauncherObjectGone(APPS_RES_ID);
                    waitUntilLauncherObjectGone(WORKSPACE_RES_ID);
                    waitUntilLauncherObjectGone(WIDGETS_RES_ID);
                    waitUntilLauncherObjectGone(TASKBAR_RES_ID);
                    waitUntilLauncherObjectGone(SPLIT_PLACEHOLDER_RES_ID);

                    return waitForLauncherObject(OVERVIEW_RES_ID);
                }
                case SPLIT_SCREEN_SELECT: {
                    waitUntilLauncherObjectGone(APPS_RES_ID);
                    waitUntilLauncherObjectGone(WORKSPACE_RES_ID);
                    waitUntilLauncherObjectGone(WIDGETS_RES_ID);
                    waitUntilLauncherObjectGone(TASKBAR_RES_ID);

                    waitForLauncherObject(SPLIT_PLACEHOLDER_RES_ID);
                    return waitForLauncherObject(OVERVIEW_RES_ID);
                }
                case FALLBACK_OVERVIEW: {
@@ -758,6 +771,7 @@ public final class LauncherInstrumentation {
                    waitUntilLauncherObjectGone(WORKSPACE_RES_ID);
                    waitUntilLauncherObjectGone(WIDGETS_RES_ID);
                    waitUntilLauncherObjectGone(TASKBAR_RES_ID);
                    waitUntilLauncherObjectGone(SPLIT_PLACEHOLDER_RES_ID);

                    return waitForFallbackLauncherObject(OVERVIEW_RES_ID);
                }
@@ -766,6 +780,7 @@ public final class LauncherInstrumentation {
                    waitUntilLauncherObjectGone(APPS_RES_ID);
                    waitUntilLauncherObjectGone(OVERVIEW_RES_ID);
                    waitUntilLauncherObjectGone(WIDGETS_RES_ID);
                    waitUntilLauncherObjectGone(SPLIT_PLACEHOLDER_RES_ID);

                    if (isTablet() && !isFallbackOverview()) {
                        waitForLauncherObject(TASKBAR_RES_ID);
+25 −0
Original line number Diff line number Diff line
@@ -20,6 +20,7 @@ import static android.view.accessibility.AccessibilityEvent.TYPE_WINDOW_STATE_CH

import android.graphics.Rect;

import androidx.annotation.NonNull;
import androidx.test.uiautomator.By;
import androidx.test.uiautomator.BySelector;
import androidx.test.uiautomator.UiObject2;
@@ -67,6 +68,10 @@ public final class OverviewTask {
        return mTask.getVisibleCenter().x;
    }

    float getExactCenterX() {
        return mTask.getVisibleBounds().exactCenterX();
    }

    /**
     * Dismisses the task by swiping up.
     */
@@ -159,4 +164,24 @@ public final class OverviewTask {
            }
        }
    }

    /** Taps the task menu. */
    @NonNull
    public OverviewTaskMenu tapMenu() {
        try (LauncherInstrumentation.Closable e = mLauncher.eventsCheck();
             LauncherInstrumentation.Closable c = mLauncher.addContextLayer(
                     "want to tap the task menu")) {
            mLauncher.clickLauncherObject(
                    mLauncher.waitForObjectInContainer(mTask.getParent(), "icon"));

            try (LauncherInstrumentation.Closable c1 = mLauncher.addContextLayer(
                    "tapped the task menu")) {
                return new OverviewTaskMenu(mLauncher);
            }
        }
    }

    boolean isTaskSplit() {
        return mTask.hasObject(By.res("bottomright_snapshot"));
    }
}
+52 −0
Original line number Diff line number Diff line
/*
 * Copyright (C) 2022 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package com.android.launcher3.tapl;

import androidx.annotation.NonNull;
import androidx.test.uiautomator.By;
import androidx.test.uiautomator.UiObject2;

/** Represents the menu of an overview task. */
public class OverviewTaskMenu {

    private final LauncherInstrumentation mLauncher;
    private final UiObject2 mMenu;

    OverviewTaskMenu(LauncherInstrumentation launcher) {
        mLauncher = launcher;

        mMenu = mLauncher.waitForLauncherObject("menu_option_layout");
        mLauncher.assertTrue("The overview task menus is not visible",
                !mMenu.getVisibleBounds().isEmpty());
    }

    /** Taps the split menu item from the overview task menu. */
    @NonNull
    public SplitScreenSelect tapSplitMenuItem() {
        try (LauncherInstrumentation.Closable e = mLauncher.eventsCheck();
             LauncherInstrumentation.Closable c = mLauncher.addContextLayer(
                     "tap split menu item")) {
            mLauncher.clickLauncherObject(
                    mLauncher.findObjectInContainer(mMenu, By.textStartsWith("Split")));

            try (LauncherInstrumentation.Closable c1 = mLauncher.addContextLayer(
                    "tapped split menu item")) {
                return new SplitScreenSelect(mLauncher);
            }
        }
    }
}
Loading