From 849b201de0608160d5a132c020e28faad286c38b Mon Sep 17 00:00:00 2001 From: vadimt Date: Wed, 14 Aug 2019 15:38:34 -0700 Subject: [PATCH] Temporary workaround for UIAutomator not recognizing a new window Bug: 112282235 Change-Id: I145bb88d72689f8c6d61ba3481f25d8978933ab2 --- .../com/android/launcher3/tapl/Launchable.java | 14 ++++++++------ .../launcher3/tapl/LauncherInstrumentation.java | 2 +- .../com/android/launcher3/tapl/OverviewTask.java | 14 +++++++------- 3 files changed, 16 insertions(+), 14 deletions(-) diff --git a/tests/tapl/com/android/launcher3/tapl/Launchable.java b/tests/tapl/com/android/launcher3/tapl/Launchable.java index 82af7b03ac..df80a51fd7 100644 --- a/tests/tapl/com/android/launcher3/tapl/Launchable.java +++ b/tests/tapl/com/android/launcher3/tapl/Launchable.java @@ -16,6 +16,8 @@ package com.android.launcher3.tapl; +import static android.view.accessibility.AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED; + import android.graphics.Point; import androidx.test.uiautomator.By; @@ -23,13 +25,10 @@ import androidx.test.uiautomator.BySelector; import androidx.test.uiautomator.UiObject2; import androidx.test.uiautomator.Until; -import com.android.launcher3.testing.TestProtocol; - /** * Ancestor for AppIcon and AppMenuItem. */ abstract class Launchable { - private static final int WAIT_TIME_MS = 60000; protected final LauncherInstrumentation mLauncher; protected final UiObject2 mObject; @@ -53,9 +52,12 @@ abstract class Launchable { private Background launch(BySelector selector) { LauncherInstrumentation.log("Launchable.launch before click " + mObject.getVisibleCenter() + " in " + mObject.getVisibleBounds()); - mLauncher.assertTrue( - "Launching an app didn't open a new window: " + mObject.getText(), - mObject.clickAndWait(Until.newWindow(), WAIT_TIME_MS)); + + mLauncher.executeAndWaitForEvent( + () -> mObject.click(), + event -> event.getEventType() == TYPE_WINDOW_STATE_CHANGED, + "Launching an app didn't open a new window: " + mObject.getText()); + mLauncher.assertTrue( "App didn't start: " + selector, mLauncher.getDevice().wait(Until.hasObject(selector), diff --git a/tests/tapl/com/android/launcher3/tapl/LauncherInstrumentation.java b/tests/tapl/com/android/launcher3/tapl/LauncherInstrumentation.java index c012628c15..34879a9eb7 100644 --- a/tests/tapl/com/android/launcher3/tapl/LauncherInstrumentation.java +++ b/tests/tapl/com/android/launcher3/tapl/LauncherInstrumentation.java @@ -124,7 +124,7 @@ public final class LauncherInstrumentation { private static final String APPS_RES_ID = "apps_view"; private static final String OVERVIEW_RES_ID = "overview_panel"; private static final String WIDGETS_RES_ID = "widgets_list_view"; - public static final int WAIT_TIME_MS = 60000; + public static final int WAIT_TIME_MS = 10000; private static final String SYSTEMUI_PACKAGE = "com.android.systemui"; private static WeakReference sActiveContainer = new WeakReference<>(null); diff --git a/tests/tapl/com/android/launcher3/tapl/OverviewTask.java b/tests/tapl/com/android/launcher3/tapl/OverviewTask.java index 6e3332260b..91f0fc4c83 100644 --- a/tests/tapl/com/android/launcher3/tapl/OverviewTask.java +++ b/tests/tapl/com/android/launcher3/tapl/OverviewTask.java @@ -16,18 +16,16 @@ package com.android.launcher3.tapl; +import static android.view.accessibility.AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED; + import android.graphics.Rect; import androidx.test.uiautomator.UiObject2; -import androidx.test.uiautomator.Until; - -import com.android.launcher3.testing.TestProtocol; /** * A recent task in the overview panel carousel. */ public final class OverviewTask { - private static final long WAIT_TIME_MS = 60000; private final LauncherInstrumentation mLauncher; private final UiObject2 mTask; private final BaseOverview mOverview; @@ -66,9 +64,11 @@ public final class OverviewTask { verifyActiveContainer(); try (LauncherInstrumentation.Closable c = mLauncher.addContextLayer( "clicking an overview task")) { - mLauncher.assertTrue("Launching task didn't open a new window: " + - mTask.getParent().getContentDescription(), - mTask.clickAndWait(Until.newWindow(), WAIT_TIME_MS)); + mLauncher.executeAndWaitForEvent( + () -> mTask.click(), + event -> event.getEventType() == TYPE_WINDOW_STATE_CHANGED, + "Launching task didn't open a new window: " + + mTask.getParent().getContentDescription()); } return new Background(mLauncher); }