Bug 1417255 - Turn off animation while running UI Test. r?maliu draft
authorNevin Chen <cnevinchen@gmail.com>
Tue, 09 Jan 2018 17:50:02 +0800
changeset 719459 1b9b136d8ecca52b60aa2d44f6837525b1443dbd
parent 719458 bf46ae19a62fc2ec3bba001acb14cb07b224d2f7
child 719460 d6b08643c06bb7482e529f18e1b9da328ebcb4db
push id95274
push userbmo:cnevinchen@gmail.com
push dateFri, 12 Jan 2018 08:44:43 +0000
reviewersmaliu
bugs1417255
milestone59.0a1
Bug 1417255 - Turn off animation while running UI Test. r?maliu MozReview-Commit-ID: FydhfgQfTlS
mobile/android/base/java/org/mozilla/gecko/animation/PropertyAnimator.java
--- 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 {