TAPL waits for widgets recycler to become scrollable

On the Launcher side, moving setLayoutFrozen from the posted action to
avoid a possible short scrollable period just after the view is shown.

Bug: 152354290
Change-Id: I7319236d8a6e49a7e017fd54d593ee131dff10a9
This commit is contained in:
vadimt
2020-04-08 18:56:52 -07:00
parent e32f484693
commit 9915a7c60f
2 changed files with 6 additions and 1 deletions
@@ -193,6 +193,7 @@ public class WidgetsFullSheet extends BaseWidgetSheet
.setDuration(DEFAULT_OPEN_DURATION)
.setInterpolator(AnimationUtils.loadInterpolator(
getContext(), android.R.interpolator.linear_out_slow_in));
mRecyclerView.setLayoutFrozen(true);
mOpenCloseAnimator.addListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
@@ -202,7 +203,6 @@ public class WidgetsFullSheet extends BaseWidgetSheet
}
});
post(() -> {
mRecyclerView.setLayoutFrozen(true);
mOpenCloseAnimator.start();
mContent.animate().alpha(1).setDuration(FADE_IN_DURATION);
});
@@ -16,6 +16,8 @@
package com.android.launcher3.tapl;
import static com.android.launcher3.tapl.LauncherInstrumentation.WAIT_TIME_MS;
import android.graphics.Point;
import android.graphics.Rect;
@@ -23,6 +25,7 @@ import androidx.test.uiautomator.By;
import androidx.test.uiautomator.BySelector;
import androidx.test.uiautomator.Direction;
import androidx.test.uiautomator.UiObject2;
import androidx.test.uiautomator.Until;
import com.android.launcher3.tapl.LauncherInstrumentation.GestureScope;
@@ -91,6 +94,8 @@ public final class Widgets extends LauncherInstrumentation.VisibleContainer {
try (LauncherInstrumentation.Closable c = mLauncher.addContextLayer(
"getting widget " + labelText + " in widgets list")) {
final UiObject2 widgetsContainer = verifyActiveContainer();
mLauncher.assertTrue("Widgets container didn't become scrollable",
widgetsContainer.wait(Until.scrollable(true), WAIT_TIME_MS));
final Point displaySize = mLauncher.getRealDisplaySize();
final BySelector labelSelector = By.clazz("android.widget.TextView").text(labelText);