Force calculator to launch in fullscreen for taskbar tests
Taskbar tests are flaking when desktop windowing is enabled due to calculator app being launched in splitscreen unexpectedly during test setup (due to unexpected effect of DesktopModeLaunchParamsModifier on activity launch.) While looking into root cause, this temporary fix to address the test failures ensures that calculator app is always launched in fullscreen, by enforcing it with ActivityOptions. Bug: 333446588 Bug: 333446588 Flag: None Test: atest NexusLauncherTests:com.android.quickstep.TaplTestsTaskbar Test: forrest build with CL (https://android-build.corp.google.com/builds/abtd/run/L47500030003265061) Change-Id: If12e8490214aa1dd5de89ff8535495c2a0c1fe82
This commit is contained in:
@@ -15,7 +15,10 @@
|
||||
*/
|
||||
package com.android.launcher3.ui;
|
||||
|
||||
import static android.app.WindowConfiguration.ACTIVITY_TYPE_STANDARD;
|
||||
import static android.app.WindowConfiguration.WINDOWING_MODE_FULLSCREEN;
|
||||
import static android.platform.test.flag.junit.SetFlagsRule.DefaultInitValueType.DEVICE_DEFAULT;
|
||||
import static android.view.Display.DEFAULT_DISPLAY;
|
||||
|
||||
import static androidx.test.InstrumentationRegistry.getInstrumentation;
|
||||
|
||||
@@ -26,6 +29,7 @@ import static com.android.launcher3.util.Executors.MAIN_EXECUTOR;
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
|
||||
import android.app.ActivityOptions;
|
||||
import android.content.BroadcastReceiver;
|
||||
import android.content.ComponentName;
|
||||
import android.content.Context;
|
||||
@@ -571,6 +575,21 @@ public abstract class AbstractLauncherUiTest<LAUNCHER_TYPE extends Launcher> {
|
||||
true /* newTask */);
|
||||
}
|
||||
|
||||
/** alternative of startAppFast where app is guaranteed to launch in fullscreen mode */
|
||||
public static void startAppFastInFullscreen(String packageName) {
|
||||
ActivityOptions options = ActivityOptions.makeBasic();
|
||||
options.setLaunchWindowingMode(WINDOWING_MODE_FULLSCREEN);
|
||||
options.setLaunchDisplayId(DEFAULT_DISPLAY);
|
||||
options.setLaunchActivityType(ACTIVITY_TYPE_STANDARD);
|
||||
|
||||
startIntent(
|
||||
getInstrumentation().getContext().getPackageManager().getLaunchIntentForPackage(
|
||||
packageName),
|
||||
By.pkg(packageName).depth(0),
|
||||
true /* newTask */,
|
||||
options);
|
||||
}
|
||||
|
||||
public static void startTestActivity(String activityName, String activityLabel) {
|
||||
final String packageName = getAppPackageName();
|
||||
final Intent intent = getInstrumentation().getContext().getPackageManager().
|
||||
@@ -606,7 +625,8 @@ public abstract class AbstractLauncherUiTest<LAUNCHER_TYPE extends Launcher> {
|
||||
false /* newTask */);
|
||||
}
|
||||
|
||||
private static void startIntent(Intent intent, BySelector selector, boolean newTask) {
|
||||
private static void startIntent(
|
||||
Intent intent, BySelector selector, boolean newTask, ActivityOptions options) {
|
||||
intent.addCategory(Intent.CATEGORY_LAUNCHER);
|
||||
if (newTask) {
|
||||
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
|
||||
@@ -614,7 +634,12 @@ public abstract class AbstractLauncherUiTest<LAUNCHER_TYPE extends Launcher> {
|
||||
intent.addFlags(
|
||||
Intent.FLAG_ACTIVITY_MULTIPLE_TASK | Intent.FLAG_ACTIVITY_NEW_DOCUMENT);
|
||||
}
|
||||
getInstrumentation().getTargetContext().startActivity(intent);
|
||||
|
||||
if (options != null) {
|
||||
getInstrumentation().getTargetContext().startActivity(intent, options.toBundle());
|
||||
} else {
|
||||
getInstrumentation().getTargetContext().startActivity(intent);
|
||||
}
|
||||
assertTrue("App didn't start: " + selector,
|
||||
TestHelpers.wait(Until.hasObject(selector), DEFAULT_UI_TIMEOUT));
|
||||
|
||||
@@ -625,6 +650,10 @@ public abstract class AbstractLauncherUiTest<LAUNCHER_TYPE extends Launcher> {
|
||||
DEFAULT_ACTIVITY_TIMEOUT, launcherInstrumentation);
|
||||
}
|
||||
|
||||
private static void startIntent(Intent intent, BySelector selector, boolean newTask) {
|
||||
startIntent(intent, selector, newTask, null);
|
||||
}
|
||||
|
||||
public static ActivityInfo resolveSystemAppInfo(String category) {
|
||||
return getInstrumentation().getContext().getPackageManager().resolveActivity(
|
||||
new Intent(Intent.ACTION_MAIN).addCategory(category),
|
||||
|
||||
Reference in New Issue
Block a user