Merge "Revert "Change TAPL to swipe to stash taskbar (instead of deprec..."" into main

This commit is contained in:
Priyanka Advani
2023-11-03 22:10:27 +00:00
committed by Android (Google) Code Review
13 changed files with 111 additions and 145 deletions

View File

@@ -106,10 +106,10 @@ public class QuickstepTestInformationHandler extends TestInformationHandler {
});
return response;
case TestProtocol.REQUEST_TASKBAR_FROM_NAV_THRESHOLD: {
case TestProtocol.REQUEST_STASHED_TASKBAR_HEIGHT: {
final Resources resources = mContext.getResources();
response.putInt(TestProtocol.TEST_INFO_RESPONSE_FIELD,
resources.getDimensionPixelSize(R.dimen.taskbar_from_nav_threshold));
resources.getDimensionPixelSize(R.dimen.taskbar_stashed_size));
return response;
}

View File

@@ -31,7 +31,6 @@ import com.android.launcher3.util.LauncherLayoutBuilder;
import com.android.launcher3.util.TestUtil;
import org.junit.After;
import org.junit.Assert;
import org.junit.Assume;
import java.util.List;
@@ -87,11 +86,6 @@ public class AbstractTaplTestsTaskbar extends AbstractQuickStepTest {
taskbarIconNames, hotseatIconNames);
}
if (!isTaskbarInTransientMode(mTargetContext)) {
Assert.assertEquals("Persistent taskbar should fill screen width",
taskbar.getVisibleBounds().width(), mLauncher.getRealDisplaySize().x);
}
return taskbar;
}

View File

@@ -20,10 +20,9 @@ import static com.android.quickstep.TaskbarModeSwitchRule.Mode.PERSISTENT;
import androidx.test.filters.LargeTest;
import androidx.test.runner.AndroidJUnit4;
import com.android.launcher3.ui.PortraitLandscapeRunner.PortraitLandscape;
import com.android.quickstep.NavigationModeSwitchRule.NavigationModeSwitch;
import com.android.quickstep.TaskbarModeSwitchRule.TaskbarModeSwitch;
import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -33,10 +32,17 @@ public class TaplTestsPersistentTaskbar extends AbstractTaplTestsTaskbar {
@Test
@TaskbarModeSwitch(mode = PERSISTENT)
@PortraitLandscape
@NavigationModeSwitch
public void testTaskbarFillsWidth() {
// Width check is performed inside TAPL whenever getTaskbar() is called.
getTaskbar();
public void testHideShowTaskbar() {
getTaskbar().hide();
mLauncher.getLaunchedAppState().showTaskbar();
}
@Test
@TaskbarModeSwitch(mode = PERSISTENT)
@Ignore // b/301575789
public void testHideTaskbarPersistsOnRecreate() {
getTaskbar().hide();
mLauncher.recreateTaskbar();
mLauncher.getLaunchedAppState().assertTaskbarHidden();
}
}

View File

@@ -16,6 +16,7 @@
package com.android.quickstep;
import static com.android.quickstep.TaskbarModeSwitchRule.Mode.PERSISTENT;
import static com.android.quickstep.TaskbarModeSwitchRule.Mode.TRANSIENT;
import static org.junit.Assert.assertEquals;
@@ -297,7 +298,7 @@ public class TaplTestsQuickstep extends AbstractQuickStepTest {
@Test
@ScreenRecord // b/242163205
@PlatinumTest(focusArea = "launcher")
@TaskbarModeSwitch
@TaskbarModeSwitch(mode = PERSISTENT)
public void testQuickSwitchToPreviousAppForTablet() throws Exception {
assumeTrue(mLauncher.isTablet());
startTestActivity(2);
@@ -306,28 +307,18 @@ public class TaplTestsQuickstep extends AbstractQuickStepTest {
// Set ignoreTaskbarVisibility to true to verify the task bar visibility explicitly.
mLauncher.setIgnoreTaskbarVisibility(true);
try {
// Expect task bar invisible when the launched app was the IME activity.
LaunchedAppState launchedAppState = getAndAssertLaunchedApp();
launchedAppState.assertTaskbarHidden();
// Expect task bar invisible when the launched app was the IME activity.
LaunchedAppState launchedAppState = getAndAssertLaunchedApp();
launchedAppState.assertTaskbarHidden();
// Quick-switch to the test app with swiping to right.
quickSwitchToPreviousAppAndAssert(true /* toRight */);
// Quick-switch to the test app with swiping to right.
quickSwitchToPreviousAppAndAssert(true /* toRight */);
assertTestActivityIsRunning(2,
"The first app we should have quick switched to is not running");
launchedAppState = getAndAssertLaunchedApp();
boolean isTransientTaskbar = mLauncher.isTransientTaskbar();
if (isTransientTaskbar) {
launchedAppState.assertTaskbarHidden();
} else {
// Expect taskbar visible when the launched app was the test activity.
launchedAppState.assertTaskbarVisible();
}
} finally {
// Reset ignoreTaskbarVisibility to ensure other tests still verify it.
mLauncher.setIgnoreTaskbarVisibility(false);
}
assertTestActivityIsRunning(2,
"The first app we should have quick switched to is not running");
// Expect task bar visible when the launched app was the test activity.
launchedAppState = getAndAssertLaunchedApp();
launchedAppState.assertTaskbarVisible();
}
@Test
@@ -363,7 +354,7 @@ public class TaplTestsQuickstep extends AbstractQuickStepTest {
@Test
@PortraitLandscape
@TaskbarModeSwitch()
@TaskbarModeSwitch(mode = PERSISTENT)
@PlatinumTest(focusArea = "launcher")
@ScreenRecord
public void testOverviewForTablet() throws Exception {
@@ -458,7 +449,6 @@ public class TaplTestsQuickstep extends AbstractQuickStepTest {
@Test
@PortraitLandscape
@TaskbarModeSwitch
public void testTaskbarDeadzonesForTablet() throws Exception {
assumeTrue(mLauncher.isTablet());
@@ -471,29 +461,15 @@ public class TaplTestsQuickstep extends AbstractQuickStepTest {
launcher -> assertTrue("Should have at least 3 tasks",
getTaskCount(launcher) >= 3));
if (mLauncher.isTransientTaskbar()) {
// On transient taskbar, it should dismiss when tapping outside taskbar bounds.
overview.touchTaskbarBottomCorner(/* tapRight= */ false);
assertTrue("Launcher internal state should be Normal",
isInState(() -> LauncherState.NORMAL));
// On persistent taskbar, it should not dismiss when tapping the taskbar
overview.touchTaskbarBottomCorner(/* tapRight= */ false);
assertTrue("Launcher internal state should be Overview",
isInState(() -> LauncherState.OVERVIEW));
overview = mLauncher.getWorkspace().switchToOverview();
// On transient taskbar, it should dismiss when tapping outside taskbar bounds.
overview.touchTaskbarBottomCorner(/* tapRight= */ true);
assertTrue("Launcher internal state should be Normal",
isInState(() -> LauncherState.NORMAL));
} else {
// On persistent taskbar, it should not dismiss when tapping the taskbar
overview.touchTaskbarBottomCorner(/* tapRight= */ false);
assertTrue("Launcher internal state should be Overview",
isInState(() -> LauncherState.OVERVIEW));
// On persistent taskbar, it should not dismiss when tapping the taskbar
overview.touchTaskbarBottomCorner(/* tapRight= */ true);
assertTrue("Launcher internal state should be Overview",
isInState(() -> LauncherState.OVERVIEW));
}
// On persistent taskbar, it should not dismiss when tapping the taskbar
overview.touchTaskbarBottomCorner(/* tapRight= */ true);
assertTrue("Launcher internal state should be Overview",
isInState(() -> LauncherState.OVERVIEW));
}
@Test

View File

@@ -24,7 +24,6 @@ import static org.junit.Assume.assumeTrue;
import androidx.test.filters.LargeTest;
import androidx.test.runner.AndroidJUnit4;
import com.android.launcher3.ui.PortraitLandscapeRunner.PortraitLandscape;
import com.android.quickstep.TaskbarModeSwitchRule.TaskbarModeSwitch;
import org.junit.Test;
@@ -65,12 +64,4 @@ public class TaplTestsTransientTaskbar extends AbstractTaplTestsTaskbar {
getTaskbar().getAppIcon(TEST_APP_NAME).launch(TEST_APP_PACKAGE);
mLauncher.getLaunchedAppState().clickStashedTaskbarToGoHome();
}
@Test
@TaskbarModeSwitch(mode = TRANSIENT)
@PortraitLandscape
public void testSwipeToStashAndUnstash() {
getTaskbar().swipeDownToStash();
mLauncher.getLaunchedAppState().swipeUpToUnstashTaskbar();
}
}

View File

@@ -47,7 +47,6 @@ import com.android.launcher3.dragndrop.DragLayer;
import com.android.launcher3.testing.shared.HotseatCellCenterRequest;
import com.android.launcher3.testing.shared.TestProtocol;
import com.android.launcher3.testing.shared.WorkspaceCellCenterRequest;
import com.android.launcher3.util.DisplayController;
import com.android.launcher3.util.ResourceBasedOverride;
import com.android.launcher3.widget.picker.WidgetsFullSheet;
@@ -171,11 +170,6 @@ public class TestInformationHandler implements ResourceBasedOverride {
mDeviceProfile.numShownAllAppsColumns);
return response;
case TestProtocol.REQUEST_IS_TRANSIENT_TASKBAR:
response.putBoolean(TestProtocol.TEST_INFO_RESPONSE_FIELD,
DisplayController.isTransientTaskbar(mContext));
return response;
case TestProtocol.REQUEST_IS_TWO_PANELS:
response.putBoolean(TestProtocol.TEST_INFO_RESPONSE_FIELD,
FOLDABLE_SINGLE_PAGE.get() ? false : mDeviceProfile.isTwoPanels);

View File

@@ -71,7 +71,7 @@ public class DisplayController implements ComponentCallbacks, SafeCloseable {
private static final String TAG = "DisplayController";
private static final boolean DEBUG = false;
private static boolean sTransientTaskbarStatusForTests = true;
private static boolean sTransientTaskbarStatusForTests;
// TODO(b/254119092) remove all logs with this tag
public static final String TASKBAR_NOT_DESTROYED_TAG = "b/254119092";

View File

@@ -41,7 +41,6 @@ import com.android.launcher3.AbstractFloatingView;
import com.android.launcher3.DeviceProfile;
import com.android.launcher3.InsettableFrameLayout;
import com.android.launcher3.Utilities;
import com.android.launcher3.testing.shared.ResourceUtils;
import com.android.launcher3.util.MultiPropertyFactory.MultiProperty;
import com.android.launcher3.util.MultiValueAlpha;
import com.android.launcher3.util.TouchController;
@@ -560,8 +559,7 @@ public abstract class BaseDragLayer<T extends Context & ActivityContext>
DeviceProfile dp = mActivity.getDeviceProfile();
if (dp.isTaskbarPresent) {
// Ignore taskbar gesture insets to avoid interfering with TouchControllers.
gestureInsetBottom = ResourceUtils.getNavbarSize(
ResourceUtils.NAVBAR_BOTTOM_GESTURE_SIZE, getResources());
gestureInsetBottom = Math.max(0, gestureInsetBottom - dp.taskbarHeight);
}
mSystemGestureRegion.set(
Math.max(gestureInsets.left, imeInset.left),

View File

@@ -93,9 +93,8 @@ public final class TestProtocol {
public static final String REQUEST_DISABLE_BLOCK_TIMEOUT = "disable-block-timeout";
public static final String REQUEST_ENABLE_TRANSIENT_TASKBAR = "enable-transient-taskbar";
public static final String REQUEST_DISABLE_TRANSIENT_TASKBAR = "disable-transient-taskbar";
public static final String REQUEST_IS_TRANSIENT_TASKBAR = "is-transient-taskbar";
public static final String REQUEST_UNSTASH_TASKBAR_IF_STASHED = "unstash-taskbar-if-stashed";
public static final String REQUEST_TASKBAR_FROM_NAV_THRESHOLD = "taskbar-from-nav-threshold";
public static final String REQUEST_STASHED_TASKBAR_HEIGHT = "stashed-taskbar-height";
public static final String REQUEST_STASHED_TASKBAR_SCALE = "taskbar-stash-handle-scale";
public static final String REQUEST_RECREATE_TASKBAR = "recreate-taskbar";
public static final String REQUEST_APP_LIST_FREEZE_FLAGS = "app-list-freeze-flags";

View File

@@ -183,14 +183,7 @@ public class BaseOverview extends LauncherInstrumentation.VisibleContainer {
try (LauncherInstrumentation.Closable e = mLauncher.eventsCheck()) {
Taskbar taskbar = new Taskbar(mLauncher);
taskbar.touchBottomCorner(tapRight);
if (mLauncher.isTransientTaskbar()) {
// Tapping outside Transient Taskbar returns to Workspace, wait for that state.
new Workspace(mLauncher);
} else {
// Should stay in Overview.
verifyActiveContainer();
verifyActionsViewVisibility();
}
verifyActiveContainer();
}
}

View File

@@ -20,11 +20,12 @@ import static com.android.launcher3.tapl.LauncherInstrumentation.DEFAULT_POLL_IN
import static com.android.launcher3.tapl.LauncherInstrumentation.TASKBAR_RES_ID;
import static com.android.launcher3.tapl.LauncherInstrumentation.WAIT_TIME_MS;
import static com.android.launcher3.testing.shared.TestProtocol.REQUEST_DISABLE_BLOCK_TIMEOUT;
import static com.android.launcher3.testing.shared.TestProtocol.REQUEST_DISABLE_MANUAL_TASKBAR_STASHING;
import static com.android.launcher3.testing.shared.TestProtocol.REQUEST_ENABLE_BLOCK_TIMEOUT;
import static com.android.launcher3.testing.shared.TestProtocol.REQUEST_ENABLE_MANUAL_TASKBAR_STASHING;
import static com.android.launcher3.testing.shared.TestProtocol.REQUEST_SHELL_DRAG_READY;
import static com.android.launcher3.testing.shared.TestProtocol.REQUEST_STASHED_TASKBAR_HEIGHT;
import static com.android.launcher3.testing.shared.TestProtocol.REQUEST_STASHED_TASKBAR_SCALE;
import static com.android.launcher3.testing.shared.TestProtocol.REQUEST_TASKBAR_FROM_NAV_THRESHOLD;
import static com.android.launcher3.testing.shared.TestProtocol.TEST_INFO_RESPONSE_FIELD;
import android.graphics.Point;
import android.graphics.Rect;
@@ -83,6 +84,8 @@ public final class LaunchedAppState extends Background {
public Taskbar getTaskbar() {
try (LauncherInstrumentation.Closable c = mLauncher.addContextLayer(
"want to get the taskbar")) {
mLauncher.waitForSystemLauncherObject(TASKBAR_RES_ID);
return new Taskbar(mLauncher);
}
}
@@ -110,32 +113,37 @@ public final class LaunchedAppState extends Background {
/**
* Returns the Taskbar in a visible state.
*
* The taskbar must already be hidden and in transient mode when calling this method.
* The taskbar must already be hidden when calling this method.
*/
public Taskbar swipeUpToUnstashTaskbar() {
mLauncher.assertTrue("Taskbar is not transient, swipe up not supported",
mLauncher.isTransientTaskbar());
public Taskbar showTaskbar() {
mLauncher.getTestInfo(REQUEST_ENABLE_MANUAL_TASKBAR_STASHING);
mLauncher.getTestInfo(REQUEST_ENABLE_BLOCK_TIMEOUT);
try (LauncherInstrumentation.Closable e = mLauncher.eventsCheck();
LauncherInstrumentation.Closable c1 = mLauncher.addContextLayer(
"want to swipe up to unstash the taskbar")) {
"want to show the taskbar")) {
mLauncher.waitUntilSystemLauncherObjectGone(TASKBAR_RES_ID);
int taskbarFromNavThreshold = mLauncher.getTestInfo(REQUEST_TASKBAR_FROM_NAV_THRESHOLD)
.getInt(TEST_INFO_RESPONSE_FIELD);
int startX = mLauncher.getRealDisplaySize().x / 2;
int startY = mLauncher.getRealDisplaySize().y - 1;
int endX = startX;
int endY = startY - taskbarFromNavThreshold;
final long downTime = SystemClock.uptimeMillis();
final int unstashTargetY = mLauncher.getRealDisplaySize().y
- (mLauncher.getTestInfo(REQUEST_STASHED_TASKBAR_HEIGHT)
.getInt(TestProtocol.TEST_INFO_RESPONSE_FIELD) / 2);
final Point unstashTarget = new Point(
mLauncher.getRealDisplaySize().x / 2, unstashTargetY);
mLauncher.linearGesture(startX, startY, endX, endY, 10, /* slowDown= */ true,
mLauncher.sendPointer(downTime, downTime, MotionEvent.ACTION_DOWN, unstashTarget,
LauncherInstrumentation.GestureScope.EXPECT_PILFER);
LauncherInstrumentation.log("swipeUpToUnstashTaskbar: sent linear swipe up gesture");
LauncherInstrumentation.log("showTaskbar: sent down");
return new Taskbar(mLauncher);
try (LauncherInstrumentation.Closable c2 = mLauncher.addContextLayer("pressed down")) {
mLauncher.waitForSystemLauncherObject(TASKBAR_RES_ID);
mLauncher.sendPointer(downTime, downTime, MotionEvent.ACTION_UP, unstashTarget,
LauncherInstrumentation.GestureScope.EXPECT_PILFER);
return new Taskbar(mLauncher);
}
} finally {
mLauncher.getTestInfo(REQUEST_DISABLE_MANUAL_TASKBAR_STASHING);
mLauncher.getTestInfo(REQUEST_DISABLE_BLOCK_TIMEOUT);
}
}

View File

@@ -799,7 +799,12 @@ public final class LauncherInstrumentation {
waitUntilSystemLauncherObjectGone(OVERVIEW_RES_ID);
waitUntilSystemLauncherObjectGone(SPLIT_PLACEHOLDER_RES_ID);
waitUntilLauncherObjectGone(KEYBOARD_QUICK_SWITCH_RES_ID);
waitUntilSystemLauncherObjectGone(TASKBAR_RES_ID);
if (is3PLauncher() && isTablet()) {
waitForSystemLauncherObject(TASKBAR_RES_ID);
} else {
waitUntilSystemLauncherObjectGone(TASKBAR_RES_ID);
}
return waitForLauncherObject(WORKSPACE_RES_ID);
}
@@ -809,7 +814,12 @@ public final class LauncherInstrumentation {
waitUntilSystemLauncherObjectGone(OVERVIEW_RES_ID);
waitUntilSystemLauncherObjectGone(SPLIT_PLACEHOLDER_RES_ID);
waitUntilLauncherObjectGone(KEYBOARD_QUICK_SWITCH_RES_ID);
waitUntilSystemLauncherObjectGone(TASKBAR_RES_ID);
if (is3PLauncher() && isTablet()) {
waitForSystemLauncherObject(TASKBAR_RES_ID);
} else {
waitUntilSystemLauncherObjectGone(TASKBAR_RES_ID);
}
return waitForLauncherObject(WIDGETS_RES_ID);
}
@@ -830,7 +840,7 @@ public final class LauncherInstrumentation {
waitUntilSystemLauncherObjectGone(SPLIT_PLACEHOLDER_RES_ID);
waitUntilLauncherObjectGone(KEYBOARD_QUICK_SWITCH_RES_ID);
if (is3PLauncher() && isTablet() && !isTransientTaskbar()) {
if (is3PLauncher() && isTablet()) {
waitForSystemLauncherObject(TASKBAR_RES_ID);
} else {
waitUntilSystemLauncherObjectGone(TASKBAR_RES_ID);
@@ -843,7 +853,7 @@ public final class LauncherInstrumentation {
waitUntilLauncherObjectGone(APPS_RES_ID);
waitUntilLauncherObjectGone(WORKSPACE_RES_ID);
waitUntilLauncherObjectGone(WIDGETS_RES_ID);
if (isTablet() && !is3PLauncher()) {
if (isTablet()) {
waitForSystemLauncherObject(TASKBAR_RES_ID);
} else {
waitUntilSystemLauncherObjectGone(TASKBAR_RES_ID);
@@ -880,11 +890,7 @@ public final class LauncherInstrumentation {
}
if (isTablet()) {
// Only check that Persistent Taskbar is visible, since Transient Taskbar
// may or may not be visible by design.
if (!isTransientTaskbar()) {
waitForSystemLauncherObject(TASKBAR_RES_ID);
}
waitForSystemLauncherObject(TASKBAR_RES_ID);
} else {
waitUntilSystemLauncherObjectGone(TASKBAR_RES_ID);
}
@@ -958,7 +964,7 @@ public final class LauncherInstrumentation {
/**
* Using swiping up gesture to dismiss closable floating views, such as Menu or Folder Content.
*/
private void swipeUpToCloseFloatingView() {
private void swipeUpToCloseFloatingView(boolean gestureStartFromLauncher) {
final Point displaySize = getRealDisplaySize();
final Optional<String> floatingRes = getFloatingResId();
@@ -967,11 +973,16 @@ public final class LauncherInstrumentation {
return;
}
GestureScope gestureScope = gestureStartFromLauncher
// Without the navigation bar layer, the gesture scope on tablets remains inside the
// launcher process.
? (isTablet() ? GestureScope.DONT_EXPECT_PILFER : GestureScope.EXPECT_PILFER)
: GestureScope.EXPECT_PILFER;
linearGesture(
displaySize.x / 2, displaySize.y - 1,
displaySize.x / 2, 0,
ZERO_BUTTON_STEPS_FROM_BACKGROUND_TO_HOME,
false, GestureScope.EXPECT_PILFER);
false, gestureScope);
try (LauncherInstrumentation.Closable c1 = addContextLayer(
String.format("Swiped up from floating view %s to home", floatingRes.get()))) {
@@ -1039,8 +1050,11 @@ public final class LauncherInstrumentation {
final Point displaySize = getRealDisplaySize();
boolean gestureStartFromLauncher =
isTablet() ? !isLauncher3() : isLauncherVisible();
// CLose floating views before going back to home.
swipeUpToCloseFloatingView();
swipeUpToCloseFloatingView(gestureStartFromLauncher);
if (hasLauncherObject(WORKSPACE_RES_ID)) {
log(action = "already at home");
@@ -1970,8 +1984,7 @@ public final class LauncherInstrumentation {
}
}
/** Returns the bounds of the display as a Point where x is width and y is height. */
public Point getRealDisplaySize() {
Point getRealDisplaySize() {
final Rect displayBounds = getContext().getSystemService(WindowManager.class)
.getMaximumWindowMetrics()
.getBounds();
@@ -2033,11 +2046,6 @@ public final class LauncherInstrumentation {
: TestProtocol.REQUEST_DISABLE_BLOCK_TIMEOUT);
}
public boolean isTransientTaskbar() {
return getTestInfo(TestProtocol.REQUEST_IS_TRANSIENT_TASKBAR)
.getBoolean(TestProtocol.TEST_INFO_RESPONSE_FIELD);
}
/** Enables transient taskbar for testing purposes only. */
public void enableTransientTaskbar(boolean enable) {
getTestInfo(enable

View File

@@ -18,6 +18,8 @@ package com.android.launcher3.tapl;
import static android.view.KeyEvent.KEYCODE_META_RIGHT;
import static com.android.launcher3.tapl.LauncherInstrumentation.TASKBAR_RES_ID;
import static com.android.launcher3.testing.shared.TestProtocol.REQUEST_DISABLE_MANUAL_TASKBAR_STASHING;
import static com.android.launcher3.testing.shared.TestProtocol.REQUEST_ENABLE_MANUAL_TASKBAR_STASHING;
import android.graphics.Point;
import android.graphics.Rect;
@@ -43,10 +45,6 @@ public final class Taskbar {
Taskbar(LauncherInstrumentation launcher) {
mLauncher = launcher;
try (LauncherInstrumentation.Closable c = mLauncher.addContextLayer(
"expect new taskbar to be visible")) {
mLauncher.waitForSystemLauncherObject(TASKBAR_RES_ID);
}
}
/**
@@ -63,32 +61,33 @@ public final class Taskbar {
}
/**
* Stashes this taskbar.
* <p>
* The taskbar must already be unstashed and in transient mode when calling this method.
* Hides this taskbar.
*
* The taskbar must already be visible when calling this method.
*/
public void swipeDownToStash() {
mLauncher.assertTrue("Taskbar is not transient, swipe down not supported",
mLauncher.isTransientTaskbar());
public void hide() {
mLauncher.getTestInfo(REQUEST_ENABLE_MANUAL_TASKBAR_STASHING);
try (LauncherInstrumentation.Closable c = mLauncher.addContextLayer(
"want to hide the taskbar");
LauncherInstrumentation.Closable e = mLauncher.eventsCheck()) {
mLauncher.waitForSystemLauncherObject(TASKBAR_RES_ID);
Rect taskbarBounds = getVisibleBounds();
int startX = taskbarBounds.centerX();
int startY = taskbarBounds.centerY();
int endX = startX;
int endY = mLauncher.getRealDisplaySize().y - 1;
final long downTime = SystemClock.uptimeMillis();
Point stashTarget = new Point(
mLauncher.getRealDisplaySize().x - 1, mLauncher.getRealDisplaySize().y - 1);
mLauncher.linearGesture(startX, startY, endX, endY, 10, false,
mLauncher.sendPointer(downTime, downTime, MotionEvent.ACTION_DOWN, stashTarget,
LauncherInstrumentation.GestureScope.DONT_EXPECT_PILFER);
LauncherInstrumentation.log("swipeDownToStash: sent linear swipe down gesture");
try (LauncherInstrumentation.Closable c1 = mLauncher.addContextLayer(
"expect transient taskbar to be hidden after swipe down")) {
LauncherInstrumentation.log("hideTaskbar: sent down");
try (LauncherInstrumentation.Closable c2 = mLauncher.addContextLayer("pressed down")) {
mLauncher.waitUntilSystemLauncherObjectGone(TASKBAR_RES_ID);
mLauncher.sendPointer(downTime, downTime, MotionEvent.ACTION_UP, stashTarget,
LauncherInstrumentation.GestureScope.DONT_EXPECT_PILFER);
}
} finally {
mLauncher.getTestInfo(REQUEST_DISABLE_MANUAL_TASKBAR_STASHING);
}
}
@@ -146,7 +145,7 @@ public final class Taskbar {
return By.clazz(TextView.class).text("");
}
public Rect getVisibleBounds() {
private Rect getVisibleBounds() {
return mLauncher.waitForSystemLauncherObject(TASKBAR_RES_ID).getVisibleBounds();
}