mirror of
https://github.com/LawnchairLauncher/lawnchair.git
synced 2026-02-19 10:48:19 +00:00
Revert "Revert "Add testSplitFromOverview test (for phones)"" am: 6a4a229c27
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Launcher3/+/19582133 Change-Id: I2eb3ec532a99883cf2301b62d13a1b04518e3833 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
@@ -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() {
|
||||
|
||||
@@ -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,9 +296,9 @@ 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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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
tests/tapl/com/android/launcher3/tapl/OverviewTaskMenu.java
Normal file
52
tests/tapl/com/android/launcher3/tapl/OverviewTaskMenu.java
Normal file
@@ -0,0 +1,52 @@
|
||||
/*
|
||||
* 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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -32,4 +32,10 @@ public class SplitScreenSelect extends Overview {
|
||||
protected ContainerType getContainerType() {
|
||||
return ContainerType.SPLIT_SCREEN_SELECT;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean isActionsViewVisible() {
|
||||
// We don't show overview actions in split select state.
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user