diff --git a/quickstep/tests/src/com/android/quickstep/TaplTestsQuickstep.java b/quickstep/tests/src/com/android/quickstep/TaplTestsQuickstep.java index 42e9be32e3..cc561c6c23 100644 --- a/quickstep/tests/src/com/android/quickstep/TaplTestsQuickstep.java +++ b/quickstep/tests/src/com/android/quickstep/TaplTestsQuickstep.java @@ -309,6 +309,28 @@ public class TaplTestsQuickstep extends AbstractQuickStepTest { launchedAppState.switchToOverview(); } + @Test + @ScreenRecord // b/242163205 + public void testQuickSwitchToPreviousAppForTablet() throws Exception { + assumeTrue(mLauncher.isTablet()); + startTestActivity(2); + startImeTestActivity(); + + // Set ignoreTaskbarVisibility to true to verify the task bar visibility explicitly. + mLauncher.setIgnoreTaskbarVisibility(true); + + // 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. + launchedAppState.quickSwitchToPreviousApp(); + + // Expect task bar visible when the launched app was the test activity. + launchedAppState = getAndAssertLaunchedApp(); + launchedAppState.assertTaskbarVisible(); + } + private boolean isTestActivityRunning(int activityNumber) { return mDevice.wait(Until.hasObject(By.pkg(getAppPackageName()) .text("TestActivity" + activityNumber)), diff --git a/tests/Android.bp b/tests/Android.bp index 1584308091..39bd3074a3 100644 --- a/tests/Android.bp +++ b/tests/Android.bp @@ -60,6 +60,7 @@ filegroup { "src/com/android/launcher3/testcomponent/CustomShortcutConfigActivity.java", "src/com/android/launcher3/testcomponent/TestCommandReceiver.java", "src/com/android/launcher3/testcomponent/TestLauncherActivity.java", + "src/com/android/launcher3/testcomponent/ImeTestActivity.java", ], } diff --git a/tests/AndroidManifest-common.xml b/tests/AndroidManifest-common.xml index 9cc3aeda1f..ae1060ec92 100644 --- a/tests/AndroidManifest-common.xml +++ b/tests/AndroidManifest-common.xml @@ -277,6 +277,16 @@ + + + + + + + mDiagnosticContext = new LinkedList<>(); private Function mSystemHealthSupplier; + private boolean mIgnoreTaskbarVisibility = false; + private Consumer mOnSettledStateAction; private LogEventChecker mEventChecker; private boolean mCheckEventsForSuccessfulGestures = false; private Runnable mOnLauncherCrashed; - private static Pattern getTouchEventPattern(String prefix, String action) { // The pattern includes checks that we don't get a multi-touch events or other surprises. return Pattern.compile( @@ -680,6 +681,18 @@ public final class LauncherInstrumentation { } } + /** + * Whether to ignore verifying the task bar visibility during instrumenting. + * + * @param ignoreTaskbarVisibility {@code true} will ignore the instrumentation implicitly + * verifying the task bar visibility with + * {@link VisibleContainer#verifyActiveContainer}. + * {@code false} otherwise. + */ + public void setIgnoreTaskbarVisibility(boolean ignoreTaskbarVisibility) { + mIgnoreTaskbarVisibility = ignoreTaskbarVisibility; + } + public void setExpectedRotation(int expectedRotation) { mExpectedRotation = expectedRotation; } @@ -798,6 +811,9 @@ public final class LauncherInstrumentation { waitUntilLauncherObjectGone(WIDGETS_RES_ID); waitUntilLauncherObjectGone(SPLIT_PLACEHOLDER_RES_ID); + if (mIgnoreTaskbarVisibility) { + return null; + } if (isTablet() && !isFallbackOverview()) { waitForLauncherObject(TASKBAR_RES_ID); } else {