Merge "Removing tile reveal animation in functional tests" into udc-qpr-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
5f5a3f5736
@@ -7,6 +7,7 @@ import android.animation.AnimatorListenerAdapter;
|
||||
import android.animation.AnimatorSet;
|
||||
import android.animation.ObjectAnimator;
|
||||
import android.animation.PropertyValuesHolder;
|
||||
import android.app.ActivityManager;
|
||||
import android.content.Context;
|
||||
import android.content.res.Configuration;
|
||||
import android.os.Bundle;
|
||||
@@ -549,10 +550,8 @@ public class PagedTileLayout extends ViewPager implements QSTileLayout {
|
||||
return mPages.get(0).mRecords.size();
|
||||
}
|
||||
|
||||
public void startTileReveal(Set<String> tileSpecs, final Runnable postAnimation) {
|
||||
if (tileSpecs.isEmpty() || mPages.size() < 2 || getScrollX() != 0 || !beginFakeDrag()) {
|
||||
// Do not start the reveal animation unless there are tiles to animate, multiple
|
||||
// TileLayouts available and the user has not already started dragging.
|
||||
public void startTileReveal(Set<String> tilesToReveal, final Runnable postAnimation) {
|
||||
if (shouldNotRunAnimation(tilesToReveal)) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -560,13 +559,13 @@ public class PagedTileLayout extends ViewPager implements QSTileLayout {
|
||||
final TileLayout lastPage = mPages.get(lastPageNumber);
|
||||
final ArrayList<Animator> bounceAnims = new ArrayList<>();
|
||||
for (TileRecord tr : lastPage.mRecords) {
|
||||
if (tileSpecs.contains(tr.tile.getTileSpec())) {
|
||||
if (tilesToReveal.contains(tr.tile.getTileSpec())) {
|
||||
bounceAnims.add(setupBounceAnimator(tr.tileView, bounceAnims.size()));
|
||||
}
|
||||
}
|
||||
|
||||
if (bounceAnims.isEmpty()) {
|
||||
// All tileSpecs are on the first page. Nothing to do.
|
||||
// All tilesToReveal are on the first page. Nothing to do.
|
||||
// TODO: potentially show a bounce animation for first page QS tiles
|
||||
endFakeDrag();
|
||||
return;
|
||||
@@ -588,6 +587,16 @@ public class PagedTileLayout extends ViewPager implements QSTileLayout {
|
||||
postInvalidateOnAnimation();
|
||||
}
|
||||
|
||||
private boolean shouldNotRunAnimation(Set<String> tilesToReveal) {
|
||||
boolean noAnimationNeeded = tilesToReveal.isEmpty() || mPages.size() < 2;
|
||||
boolean scrollingInProgress = getScrollX() != 0 || !beginFakeDrag();
|
||||
// isRunningInTestHarness() to disable animation in functional testing as it caused
|
||||
// flakiness and is not needed there. Alternative solutions were more complex and would
|
||||
// still be either potentially flaky or modify internal data.
|
||||
// For more info see b/253493927 and b/293234595
|
||||
return noAnimationNeeded || scrollingInProgress || ActivityManager.isRunningInTestHarness();
|
||||
}
|
||||
|
||||
private int sanitizePageAction(int action) {
|
||||
int pageLeftId = AccessibilityNodeInfo.AccessibilityAction.ACTION_PAGE_LEFT.getId();
|
||||
int pageRightId = AccessibilityNodeInfo.AccessibilityAction.ACTION_PAGE_RIGHT.getId();
|
||||
|
||||
Reference in New Issue
Block a user