Bug 1417255 - Turn off animation while running UI Test. r?maliu
MozReview-Commit-ID: FydhfgQfTlS
--- a/mobile/android/base/java/org/mozilla/gecko/animation/PropertyAnimator.java
+++ b/mobile/android/base/java/org/mozilla/gecko/animation/PropertyAnimator.java
@@ -4,16 +4,17 @@
* You can obtain one at http://mozilla.org/MPL/2.0/. */
package org.mozilla.gecko.animation;
import java.util.ArrayList;
import java.util.List;
import org.mozilla.gecko.AppConstants.Versions;
+import org.mozilla.gecko.uitest.UiTestConfig;
import android.os.Handler;
import android.support.v4.view.ViewCompat;
import android.view.Choreographer;
import android.view.View;
import android.view.ViewGroup;
import android.view.ViewTreeObserver;
import android.view.animation.AnimationUtils;
@@ -42,17 +43,17 @@ public class PropertyAnimator implements
public static interface PropertyAnimationListener {
public void onPropertyAnimationStart();
public void onPropertyAnimationEnd();
}
private final Interpolator mInterpolator;
private long mStartTime;
- private final long mDuration;
+ private long mDuration;
private final float mDurationReciprocal;
private final List<ElementHolder> mElementsList;
private List<PropertyAnimationListener> mListeners;
FramePoster mFramePoster;
private boolean mUseHardwareLayer;
public PropertyAnimator(long duration) {
this(duration, new DecelerateInterpolator());
@@ -141,16 +142,22 @@ public class PropertyAnimator implements
element.from = ViewHelper.getHeight(element.view);
ViewCompat.setHasTransientState(element.view, true);
if (shouldEnableHardwareLayer(element))
element.view.setLayerType(View.LAYER_TYPE_HARDWARE, null);
else
element.view.setDrawingCacheEnabled(true);
+
+ // We need to do this manually because we didn't use Android's API like ValueAnimator.
+ // So settings in Developer Options won't work.
+ if (UiTestConfig.underUiTest()) {
+ mDuration = 0;
+ }
}
// Get ViewTreeObserver from any of the participant views
// in the animation.
final ViewTreeObserver treeObserver;
if (mElementsList.size() > 0) {
treeObserver = mElementsList.get(0).view.getViewTreeObserver();
} else {