Merge "Revert "Add TaskbarModeSwitchRule to test both transient/persistent taskbar."" into tm-qpr-dev
diff --git a/quickstep/Android.bp b/quickstep/Android.bp
index f5a8253..7292c44 100644
--- a/quickstep/Android.bp
+++ b/quickstep/Android.bp
@@ -38,7 +38,6 @@
name: "launcher3-quickstep-oop-tests-src",
path: "tests",
srcs: [
- "tests/src/com/android/quickstep/TaskbarModeSwitchRule.java",
"tests/src/com/android/quickstep/NavigationModeSwitchRule.java",
"tests/src/com/android/quickstep/AbstractQuickStepTest.java",
"tests/src/com/android/quickstep/TaplTestsQuickstep.java",
diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarActivityContext.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarActivityContext.java
index 4882842..3c9e96f 100644
--- a/quickstep/src/com/android/launcher3/taskbar/TaskbarActivityContext.java
+++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarActivityContext.java
@@ -23,7 +23,6 @@
import static com.android.launcher3.AbstractFloatingView.TYPE_ALL;
import static com.android.launcher3.AbstractFloatingView.TYPE_REBIND_SAFE;
-import static com.android.launcher3.Utilities.IS_RUNNING_IN_TEST_HARNESS;
import static com.android.launcher3.logging.StatsLogManager.LauncherEvent.LAUNCHER_FOLDER_OPEN;
import static com.android.launcher3.taskbar.TaskbarAutohideSuspendController.FLAG_AUTOHIDE_SUSPEND_DRAGGING;
import static com.android.launcher3.taskbar.TaskbarAutohideSuspendController.FLAG_AUTOHIDE_SUSPEND_FULLSCREEN;
@@ -307,8 +306,7 @@
int windowFlags = WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE
| WindowManager.LayoutParams.FLAG_SLIPPERY
| WindowManager.LayoutParams.FLAG_SPLIT_TOUCH;
- if (DisplayController.isTransientTaskbar(this)
- && !IS_RUNNING_IN_TEST_HARNESS) {
+ if (DisplayController.isTransientTaskbar(this)) {
windowFlags |= WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL
| WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH;
}
@@ -876,25 +874,12 @@
}
/**
- * Enables the auto timeout for taskbar stashing. This method should only be used for taskbar
- * testing.
- */
- @VisibleForTesting
- public void enableBlockingTimeoutDuringTests(boolean enableBlockingTimeout) {
- mControllers.taskbarStashController.enableBlockingTimeoutDuringTests(enableBlockingTimeout);
- }
-
- /**
* Unstashes the Taskbar if it is stashed. This method should only be used to unstash the
* taskbar at the end of a test.
*/
@VisibleForTesting
public void unstashTaskbarIfStashed() {
- if (DisplayController.isTransientTaskbar(this)) {
- mControllers.taskbarStashController.updateAndAnimateTransientTaskbar(false);
- } else {
- mControllers.taskbarStashController.onLongPressToUnstashTaskbar();
- }
+ mControllers.taskbarStashController.onLongPressToUnstashTaskbar();
}
protected boolean isUserSetupComplete() {
diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarStashController.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarStashController.java
index b53e9c5..72ae1d1 100644
--- a/quickstep/src/com/android/launcher3/taskbar/TaskbarStashController.java
+++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarStashController.java
@@ -37,7 +37,6 @@
import android.view.ViewConfiguration;
import androidx.annotation.NonNull;
-import androidx.annotation.VisibleForTesting;
import com.android.internal.jank.InteractionJankMonitor;
import com.android.launcher3.Alarm;
@@ -170,7 +169,6 @@
private boolean mEnableManualStashingDuringTests = false;
private final Alarm mTimeoutAlarm = new Alarm();
- private boolean mEnableBlockingTimeoutDuringTests = false;
// Evaluate whether the handle should be stashed
private final StatePropertyHolder mStatePropertyHolder = new StatePropertyHolder(
@@ -269,21 +267,11 @@
* Enables support for manual stashing. This should only be used to add this functionality
* to Launcher specific tests.
*/
- @VisibleForTesting
public void enableManualStashingDuringTests(boolean enableManualStashing) {
mEnableManualStashingDuringTests = enableManualStashing;
}
/**
- * Enables the auto timeout for taskbar stashing. This method should only be used for taskbar
- * testing.
- */
- @VisibleForTesting
- public void enableBlockingTimeoutDuringTests(boolean enableBlockingTimeout) {
- mEnableBlockingTimeoutDuringTests = enableBlockingTimeout;
- }
-
- /**
* Sets the flag indicating setup UI is visible
*/
protected void setSetupUIVisible(boolean isVisible) {
@@ -858,12 +846,12 @@
* Attempts to start timer to auto hide the taskbar based on time.
*/
public void tryStartTaskbarTimeout() {
- if (!DisplayController.isTransientTaskbar(mActivity)
- || mIsStashed
- || mEnableBlockingTimeoutDuringTests) {
+ if (!DisplayController.isTransientTaskbar(mActivity)) {
return;
}
-
+ if (mIsStashed) {
+ return;
+ }
cancelTimeoutIfExists();
mTimeoutAlarm.setOnAlarmListener(this::onTaskbarTimeout);
diff --git a/quickstep/src/com/android/quickstep/QuickstepTestInformationHandler.java b/quickstep/src/com/android/quickstep/QuickstepTestInformationHandler.java
index 177ecf5..9621ce6 100644
--- a/quickstep/src/com/android/quickstep/QuickstepTestInformationHandler.java
+++ b/quickstep/src/com/android/quickstep/QuickstepTestInformationHandler.java
@@ -120,18 +120,6 @@
.getCurrentActivityContext()
.getTaskbarAllAppsTopPadding());
}
-
- case TestProtocol.REQUEST_ENABLE_BLOCK_TIMEOUT:
- runOnTISBinder(tisBinder -> {
- enableBlockingTimeout(tisBinder, true);
- });
- return response;
-
- case TestProtocol.REQUEST_DISABLE_BLOCK_TIMEOUT:
- runOnTISBinder(tisBinder -> {
- enableBlockingTimeout(tisBinder, false);
- });
- return response;
}
return super.call(method, arg, extras);
@@ -161,13 +149,6 @@
enable);
}
- private void enableBlockingTimeout(
- TouchInteractionService.TISBinder tisBinder, boolean enable) {
- // Allow null-pointer to catch illegal states.
- tisBinder.getTaskbarManager().getCurrentActivityContext().enableBlockingTimeoutDuringTests(
- enable);
- }
-
/**
* Runs the given command on the UI thread, after ensuring we are connected to
* TouchInteractionService.
diff --git a/quickstep/tests/src/com/android/quickstep/AbstractQuickStepTest.java b/quickstep/tests/src/com/android/quickstep/AbstractQuickStepTest.java
index 2c5825f..e2774c0 100644
--- a/quickstep/tests/src/com/android/quickstep/AbstractQuickStepTest.java
+++ b/quickstep/tests/src/com/android/quickstep/AbstractQuickStepTest.java
@@ -39,7 +39,6 @@
protected TestRule getRulesInsideActivityMonitor() {
return RuleChain.
outerRule(new NavigationModeSwitchRule(mLauncher)).
- around(new TaskbarModeSwitchRule(mLauncher)).
around(super.getRulesInsideActivityMonitor());
}
diff --git a/quickstep/tests/src/com/android/quickstep/NavigationModeSwitchRule.java b/quickstep/tests/src/com/android/quickstep/NavigationModeSwitchRule.java
index eded1c9..e5e2cf3 100644
--- a/quickstep/tests/src/com/android/quickstep/NavigationModeSwitchRule.java
+++ b/quickstep/tests/src/com/android/quickstep/NavigationModeSwitchRule.java
@@ -51,7 +51,7 @@
/**
* Test rule that allows executing a test with Quickstep on and then Quickstep off.
- * The test should be annotated with @NavigationModeSwitch.
+ * The test should be annotated with @QuickstepOnOff.
*/
public class NavigationModeSwitchRule implements TestRule {
diff --git a/quickstep/tests/src/com/android/quickstep/TaplTestsTaskbar.java b/quickstep/tests/src/com/android/quickstep/TaplTestsTaskbar.java
index 0b8bc10..9337cb5 100644
--- a/quickstep/tests/src/com/android/quickstep/TaplTestsTaskbar.java
+++ b/quickstep/tests/src/com/android/quickstep/TaplTestsTaskbar.java
@@ -17,8 +17,6 @@
import static androidx.test.InstrumentationRegistry.getInstrumentation;
-import static com.android.quickstep.TaskbarModeSwitchRule.Mode.PERSISTENT;
-
import static junit.framework.TestCase.assertEquals;
import android.content.Intent;
@@ -29,7 +27,6 @@
import com.android.launcher3.tapl.Taskbar;
import com.android.launcher3.ui.TaplTestsLauncher3;
import com.android.launcher3.util.rule.ScreenRecordRule.ScreenRecord;
-import com.android.quickstep.TaskbarModeSwitchRule.TaskbarModeSwitch;
import org.junit.After;
import org.junit.Assume;
@@ -56,25 +53,21 @@
TaplTestsLauncher3.initialize(this);
startAppFast(CALCULATOR_APP_PACKAGE);
- mLauncher.enableBlockTimeout(true);
mLauncher.showTaskbarIfHidden();
}
@After
public void tearDown() {
mLauncher.useDefaultWorkspaceLayoutOnReload();
- mLauncher.enableBlockTimeout(false);
}
@Test
- @TaskbarModeSwitch(mode = PERSISTENT)
public void testHideShowTaskbar() {
getTaskbar().hide();
mLauncher.getLaunchedAppState().showTaskbar();
}
@Test
- @TaskbarModeSwitch(mode = PERSISTENT)
public void testHideTaskbarPersistsOnRecreate() {
getTaskbar().hide();
mLauncher.recreateTaskbar();
@@ -82,19 +75,16 @@
}
@Test
- @TaskbarModeSwitch
public void testLaunchApp() throws Exception {
getTaskbar().getAppIcon(TEST_APP_NAME).launch(TEST_APP_PACKAGE);
}
@Test
- @TaskbarModeSwitch
public void testOpenMenu() throws Exception {
getTaskbar().getAppIcon(TEST_APP_NAME).openMenu();
}
@Test
- @TaskbarModeSwitch
public void testLaunchShortcut() throws Exception {
getTaskbar().getAppIcon(TEST_APP_NAME)
.openDeepShortcutMenu()
@@ -105,7 +95,6 @@
@Test
@ScreenRecord // b/231615831
@PortraitLandscape
- @TaskbarModeSwitch
public void testLaunchAppInSplitscreen() throws Exception {
getTaskbar().getAppIcon(TEST_APP_NAME).dragToSplitscreen(
TEST_APP_PACKAGE, CALCULATOR_APP_PACKAGE);
@@ -114,7 +103,6 @@
@Test
@ScreenRecord // b/231615831
@PortraitLandscape
- @TaskbarModeSwitch
public void testLaunchShortcutInSplitscreen() throws Exception {
getTaskbar().getAppIcon(TEST_APP_NAME)
.openDeepShortcutMenu()
@@ -123,19 +111,16 @@
}
@Test
- @TaskbarModeSwitch
public void testLaunchApp_FromTaskbarAllApps() throws Exception {
getTaskbar().openAllApps().getAppIcon(TEST_APP_NAME).launch(TEST_APP_PACKAGE);
}
@Test
- @TaskbarModeSwitch
public void testOpenMenu_FromTaskbarAllApps() throws Exception {
getTaskbar().openAllApps().getAppIcon(TEST_APP_NAME).openMenu();
}
@Test
- @TaskbarModeSwitch
public void testLaunchShortcut_FromTaskbarAllApps() throws Exception {
getTaskbar().openAllApps()
.getAppIcon(TEST_APP_NAME)
@@ -147,7 +132,6 @@
@Test
@ScreenRecord // b/231615831
@PortraitLandscape
- @TaskbarModeSwitch
public void testLaunchAppInSplitscreen_FromTaskbarAllApps() throws Exception {
getTaskbar().openAllApps()
.getAppIcon(TEST_APP_NAME)
@@ -157,7 +141,6 @@
@Test
@ScreenRecord // b/231615831
@PortraitLandscape
- @TaskbarModeSwitch
public void testLaunchShortcutInSplitscreen_FromTaskbarAllApps() throws Exception {
getTaskbar().openAllApps()
.getAppIcon(TEST_APP_NAME)
diff --git a/quickstep/tests/src/com/android/quickstep/TaskbarModeSwitchRule.java b/quickstep/tests/src/com/android/quickstep/TaskbarModeSwitchRule.java
deleted file mode 100644
index 8cc812b..0000000
--- a/quickstep/tests/src/com/android/quickstep/TaskbarModeSwitchRule.java
+++ /dev/null
@@ -1,162 +0,0 @@
-/*
- * 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.quickstep;
-
-import static androidx.test.InstrumentationRegistry.getInstrumentation;
-
-import static com.android.quickstep.TaskbarModeSwitchRule.Mode.ALL;
-import static com.android.quickstep.TaskbarModeSwitchRule.Mode.PERSISTENT;
-import static com.android.quickstep.TaskbarModeSwitchRule.Mode.TRANSIENT;
-
-import android.content.Context;
-import android.util.Log;
-
-import com.android.launcher3.config.FeatureFlags;
-import com.android.launcher3.tapl.LauncherInstrumentation;
-import com.android.launcher3.tapl.TestHelpers;
-import com.android.launcher3.ui.AbstractLauncherUiTest;
-import com.android.launcher3.util.rule.FailureWatcher;
-
-import org.junit.rules.TestRule;
-import org.junit.runner.Description;
-import org.junit.runners.model.Statement;
-
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-
-/**
- * Test rule that allows executing a test multiple times with different conditions
- * ie. with transient taskbar enabled and disabled.
- * The test should be annotated with @TaskbarModeSwitch.
- */
-public class TaskbarModeSwitchRule implements TestRule {
-
- static final String TAG = "TaskbarModeSwitchRule";
-
- public static final int WAIT_TIME_MS = 10000;
-
- public enum Mode {
- TRANSIENT, PERSISTENT, ALL
- }
-
- // Annotation for tests that need to be run with quickstep enabled and disabled.
- @Retention(RetentionPolicy.RUNTIME)
- @Target(ElementType.METHOD)
- public @interface TaskbarModeSwitch {
- Mode mode() default ALL;
- }
-
- private final LauncherInstrumentation mLauncher;
-
- public TaskbarModeSwitchRule(LauncherInstrumentation launcher) {
- mLauncher = launcher;
- }
-
- @Override
- public Statement apply(Statement base, Description description) {
- if (TestHelpers.isInLauncherProcess()
- && description.getAnnotation(TaskbarModeSwitch.class) != null) {
- Mode mode = description.getAnnotation(TaskbarModeSwitch.class).mode();
- return new Statement() {
- @Override
- public void evaluate() throws Throwable {
- mLauncher.enableDebugTracing();
- final boolean wasTransientTaskbarMode = isTaskbarTransientMode();
- try {
- if (mode == TRANSIENT || mode == ALL) {
- evaluateWithTransientTaskbar();
- }
- if (mode == PERSISTENT || mode == ALL) {
- evaluateWithPersistentTaskbar();
- }
- } catch (Throwable e) {
- Log.e(TAG, "Error", e);
- throw e;
- } finally {
- Log.d(TAG, "In Finally block");
- setTaskbarMode(mLauncher, wasTransientTaskbarMode, description);
- }
- }
-
- private void evaluateWithPersistentTaskbar() throws Throwable {
- setTaskbarMode(mLauncher, false, description);
- base.evaluate();
- }
-
- private void evaluateWithTransientTaskbar() throws Throwable {
- setTaskbarMode(mLauncher, true, description);
- base.evaluate();
- }
- };
- } else {
- return base;
- }
- }
-
- private static void enableTransientTaskbar(LauncherInstrumentation launcher, Context c,
- boolean enable, Description description) {
- boolean success = c.getSharedPreferences(FeatureFlags.FLAGS_PREF_NAME, Context.MODE_PRIVATE)
- .edit()
- .putBoolean(FeatureFlags.ENABLE_TRANSIENT_TASKBAR.key, enable)
- .commit();
-
- if (!success) {
- final AssertionError assertionError = new AssertionError(
- "Unable to save state to SharedPrefs transientTaskbar=" + enable);
- if (description != null) {
- FailureWatcher.onError(launcher, description, assertionError);
- }
- throw assertionError;
- }
-
- FeatureFlags.initialize(c);
- }
-
- private static boolean isTaskbarTransientMode() {
- return FeatureFlags.ENABLE_TRANSIENT_TASKBAR.get();
- }
-
- public static void setTaskbarMode(LauncherInstrumentation launcher,
- boolean expectTransientTaskbar, Description description) throws Exception {
-
- Log.d(TAG, "setTaskbarMode: isTransientTaskbar=" + expectTransientTaskbar + "...");
-
- enableTransientTaskbar(launcher, getInstrumentation().getTargetContext(),
- expectTransientTaskbar, description);
-
- launcher.recreateTaskbar();
-
- assertTrue(launcher, "Couldn't set taskbar=" + expectTransientTaskbar,
- isTaskbarTransientMode() == expectTransientTaskbar, description);
-
- AbstractLauncherUiTest.checkDetectedLeaks(launcher);
- }
-
- private static void assertTrue(LauncherInstrumentation launcher, String message,
- boolean condition, Description description) {
- launcher.checkForAnomaly(true, true);
- if (!condition) {
- final AssertionError assertionError = new AssertionError(message);
- if (description != null) {
- FailureWatcher.onError(launcher, description, assertionError);
- }
- throw assertionError;
- }
- }
-}
diff --git a/src/com/android/launcher3/testing/shared/TestProtocol.java b/src/com/android/launcher3/testing/shared/TestProtocol.java
index 90b8bfa..3fbce88 100644
--- a/src/com/android/launcher3/testing/shared/TestProtocol.java
+++ b/src/com/android/launcher3/testing/shared/TestProtocol.java
@@ -84,8 +84,6 @@
public static final String REQUEST_UNFREEZE_APP_LIST = "unfreeze-app-list";
public static final String REQUEST_ENABLE_MANUAL_TASKBAR_STASHING = "enable-taskbar-stashing";
public static final String REQUEST_DISABLE_MANUAL_TASKBAR_STASHING = "disable-taskbar-stashing";
- public static final String REQUEST_ENABLE_BLOCK_TIMEOUT = "enable-block-timeout";
- public static final String REQUEST_DISABLE_BLOCK_TIMEOUT = "disable-block-timeout";
public static final String REQUEST_UNSTASH_TASKBAR_IF_STASHED = "unstash-taskbar-if-stashed";
public static final String REQUEST_STASHED_TASKBAR_HEIGHT = "stashed-taskbar-height";
public static final String REQUEST_RECREATE_TASKBAR = "recreate-taskbar";
diff --git a/tests/tapl/com/android/launcher3/tapl/LaunchedAppState.java b/tests/tapl/com/android/launcher3/tapl/LaunchedAppState.java
index 4a3507e..f23a38c 100644
--- a/tests/tapl/com/android/launcher3/tapl/LaunchedAppState.java
+++ b/tests/tapl/com/android/launcher3/tapl/LaunchedAppState.java
@@ -17,9 +17,7 @@
package com.android.launcher3.tapl;
import static com.android.launcher3.tapl.LauncherInstrumentation.TASKBAR_RES_ID;
-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_STASHED_TASKBAR_HEIGHT;
@@ -90,7 +88,6 @@
*/
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(
@@ -117,7 +114,6 @@
}
} finally {
mLauncher.getTestInfo(REQUEST_DISABLE_MANUAL_TASKBAR_STASHING);
- mLauncher.getTestInfo(REQUEST_DISABLE_BLOCK_TIMEOUT);
}
}
diff --git a/tests/tapl/com/android/launcher3/tapl/LauncherInstrumentation.java b/tests/tapl/com/android/launcher3/tapl/LauncherInstrumentation.java
index 52ad982..1212c3d 100644
--- a/tests/tapl/com/android/launcher3/tapl/LauncherInstrumentation.java
+++ b/tests/tapl/com/android/launcher3/tapl/LauncherInstrumentation.java
@@ -1850,13 +1850,6 @@
getTestInfo(TestProtocol.REQUEST_UNSTASH_TASKBAR_IF_STASHED);
}
- /** Blocks the taskbar from automatically stashing based on time. */
- public void enableBlockTimeout(boolean enable) {
- getTestInfo(enable
- ? TestProtocol.REQUEST_ENABLE_BLOCK_TIMEOUT
- : TestProtocol.REQUEST_DISABLE_BLOCK_TIMEOUT);
- }
-
/**
* Recreates the taskbar (outside of tests this is done for certain configuration changes).
* The expected behavior is that the taskbar retains its current state after being recreated.