Fix flaky widget tapl tests
Potential issues:
1. Widgets floating tips view is being shown
2. Header visible height is too small to be considered as a scroll
gesture
Test: Run AddConfigWidgetTest, AddWidgetTest, BindWidgetTest &
RequestPinItemTest
Bug: 185733371
Change-Id: Ic3e9188724dd920349ce8d8e8d98392b94b40642
diff --git a/src/com/android/launcher3/widget/picker/WidgetsFullSheet.java b/src/com/android/launcher3/widget/picker/WidgetsFullSheet.java
index 5543256..5be9a95 100644
--- a/src/com/android/launcher3/widget/picker/WidgetsFullSheet.java
+++ b/src/com/android/launcher3/widget/picker/WidgetsFullSheet.java
@@ -50,6 +50,7 @@
import com.android.launcher3.Launcher;
import com.android.launcher3.LauncherAppState;
import com.android.launcher3.R;
+import com.android.launcher3.Utilities;
import com.android.launcher3.anim.PendingAnimation;
import com.android.launcher3.compat.AccessibilityManagerCompat;
import com.android.launcher3.model.WidgetItem;
@@ -649,7 +650,8 @@
}
private boolean hasSeenEducationTip() {
- return mLauncher.getSharedPrefs().getBoolean(WIDGETS_EDUCATION_TIP_SEEN, false);
+ return mLauncher.getSharedPrefs().getBoolean(WIDGETS_EDUCATION_TIP_SEEN, false)
+ || Utilities.IS_RUNNING_IN_TEST_HARNESS;
}
/** A holder class for holding adapters & their corresponding recycler view. */
diff --git a/tests/tapl/com/android/launcher3/tapl/Widgets.java b/tests/tapl/com/android/launcher3/tapl/Widgets.java
index a3f9ade..51e331d 100644
--- a/tests/tapl/com/android/launcher3/tapl/Widgets.java
+++ b/tests/tapl/com/android/launcher3/tapl/Widgets.java
@@ -169,12 +169,16 @@
"widgets_table");
boolean hasHeaderExpanded = false;
+ int scrollDistance = 0;
for (int i = 0; i < SCROLL_ATTEMPTS; i++) {
UiObject2 fullWidgetsPicker = verifyActiveContainer();
UiObject2 header = mLauncher.waitForObjectInContainer(fullWidgetsPicker,
headerSelector);
- int headerHeight = header.getVisibleBounds().height();
+ // If a header is barely visible in the bottom edge of the screen, its height could be
+ // too small for a scroll gesture. Since all header should have roughly the same height,
+ // let's pick the max height we have seen so far.
+ scrollDistance = Math.max(scrollDistance, header.getVisibleBounds().height());
// Look for a header that has the test app name.
UiObject2 headerTitle = mLauncher.findObjectInContainer(fullWidgetsPicker,
@@ -196,7 +200,8 @@
return widgetsContainer;
}
}
- mLauncher.scrollDownByDistance(fullWidgetsPicker, headerHeight);
+ log("Finding test widget package - scroll with distance: " + scrollDistance);
+ mLauncher.scrollDownByDistance(fullWidgetsPicker, scrollDistance);
}
return null;