From edd7c4cc981dd1677b739791f2d7ebe99c0780f4 Mon Sep 17 00:00:00 2001 From: Vadim Tryshev Date: Fri, 5 Jan 2024 14:41:12 -0800 Subject: [PATCH] Waiting for Recents activity to stop after starting apps Bug: 313926097 Flag: N/A Test: presubmit Change-Id: Ifbc23289d040ad31d40434e9d81529c7800532e9 --- .../android/quickstep/FallbackRecentsTest.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/quickstep/tests/src/com/android/quickstep/FallbackRecentsTest.java b/quickstep/tests/src/com/android/quickstep/FallbackRecentsTest.java index 0a325ac1e8..6614414411 100644 --- a/quickstep/tests/src/com/android/quickstep/FallbackRecentsTest.java +++ b/quickstep/tests/src/com/android/quickstep/FallbackRecentsTest.java @@ -77,6 +77,7 @@ import org.junit.runner.RunWith; import org.junit.runners.model.Statement; import java.util.concurrent.CountDownLatch; +import java.util.concurrent.ExecutionException; import java.util.concurrent.TimeUnit; import java.util.function.Consumer; import java.util.function.Function; @@ -193,6 +194,7 @@ public class FallbackRecentsTest { @Test public void goToOverviewFromApp() { startAppFast(resolveSystemApp(Intent.CATEGORY_APP_CALCULATOR)); + waitForRecentsActivityStop(); mLauncher.getLaunchedAppState().switchToOverview(); } @@ -229,6 +231,19 @@ public class FallbackRecentsTest { } private void waitForRecentsActivityStop() { + try { + final boolean recentsActivityIsNull = MAIN_EXECUTOR.submit( + () -> RecentsActivity.ACTIVITY_TRACKER.getCreatedActivity() == null).get(); + if (recentsActivityIsNull) { + // Null activity counts as a "stopped" one. + return; + } + } catch (ExecutionException e) { + throw new RuntimeException(e); + } catch (InterruptedException e) { + throw new RuntimeException(e); + } + Wait.atMost("Recents activity didn't stop", () -> getFromRecents(recents -> !recents.isStarted()), DEFAULT_UI_TIMEOUT, mLauncher); @@ -241,6 +256,7 @@ public class FallbackRecentsTest { startAppFast(getAppPackageName()); startAppFast(resolveSystemApp(Intent.CATEGORY_APP_CALCULATOR)); startTestActivity(2); + waitForRecentsActivityStop(); Wait.atMost("Expected three apps in the task list", () -> mLauncher.getRecentTasks().size() >= 3, DEFAULT_ACTIVITY_TIMEOUT, mLauncher);