Fix ScrollerCompat tests.

Tests broke with the Support library refactorings.

Bug: 29570748

Change-Id: I9d8cc308a206974985053af03628d54b5c5b3936
diff --git a/compat/java/android/support/v4/widget/ScrollerCompat.java b/compat/java/android/support/v4/widget/ScrollerCompat.java
index 4c8f80b..0161574 100644
--- a/compat/java/android/support/v4/widget/ScrollerCompat.java
+++ b/compat/java/android/support/v4/widget/ScrollerCompat.java
@@ -32,20 +32,22 @@
  */
 public final class ScrollerCompat {
     OverScroller mScroller;
+    private final boolean mIsIcsOrNewer;
 
     public static ScrollerCompat create(Context context) {
         return create(context, null);
     }
 
     public static ScrollerCompat create(Context context, Interpolator interpolator) {
-        return new ScrollerCompat(context, interpolator);
+        return new ScrollerCompat(Build.VERSION.SDK_INT >= 14, context, interpolator);
     }
 
     /**
-     * Private constructer where API version can be provided.
-     * Useful for unit testing.
+     * Package protected constructor that allows to specify if API version is newer than ICS.
+     * It is useful for unit testing.
      */
-    private ScrollerCompat(Context context, Interpolator interpolator) {
+    ScrollerCompat(boolean isIcsOrNewer, Context context, Interpolator interpolator) {
+        mIsIcsOrNewer = isIcsOrNewer;
         mScroller = interpolator != null ?
                 new OverScroller(context, interpolator) : new OverScroller(context);
     }
@@ -102,7 +104,7 @@
      * negative.
      */
     public float getCurrVelocity() {
-        return Build.VERSION.SDK_INT < 14 ? 0 : ScrollerCompatIcs.getCurrVelocity(mScroller);
+        return mIsIcsOrNewer ? ScrollerCompatIcs.getCurrVelocity(mScroller) : 0;
     }
 
     /**
diff --git a/compat/tests/java/android/support/v4/widget/GingerbreadScrollerCompatTest.java b/compat/tests/java/android/support/v4/widget/GingerbreadScrollerCompatTest.java
index e947749..b1642f33 100644
--- a/compat/tests/java/android/support/v4/widget/GingerbreadScrollerCompatTest.java
+++ b/compat/tests/java/android/support/v4/widget/GingerbreadScrollerCompatTest.java
@@ -17,6 +17,6 @@
 
 public class GingerbreadScrollerCompatTest extends ScrollerCompatTestBase {
     public GingerbreadScrollerCompatTest() {
-        super(9);
+        super(false);
     }
 }
diff --git a/compat/tests/java/android/support/v4/widget/IcsScrollerCompatTest.java b/compat/tests/java/android/support/v4/widget/IcsScrollerCompatTest.java
index 5d8a16d..1516d54 100644
--- a/compat/tests/java/android/support/v4/widget/IcsScrollerCompatTest.java
+++ b/compat/tests/java/android/support/v4/widget/IcsScrollerCompatTest.java
@@ -17,6 +17,6 @@
 
 public class IcsScrollerCompatTest extends ScrollerCompatTestBase {
     public IcsScrollerCompatTest() {
-        super(14);
+        super(true);
     }
 }
diff --git a/compat/tests/java/android/support/v4/widget/ScrollerCompatTestBase.java b/compat/tests/java/android/support/v4/widget/ScrollerCompatTestBase.java
index 7b7c9f5..1f27813 100644
--- a/compat/tests/java/android/support/v4/widget/ScrollerCompatTestBase.java
+++ b/compat/tests/java/android/support/v4/widget/ScrollerCompatTestBase.java
@@ -15,26 +15,21 @@
  */
 package android.support.v4.widget;
 
-import android.content.Context;
-import android.support.test.InstrumentationRegistry;
-import android.support.test.runner.AndroidJUnit4;
-import android.test.AndroidTestCase;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.util.Log;
-import android.view.animation.AnimationUtils;
-import android.view.animation.Interpolator;
-import android.view.animation.LinearInterpolator;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
-import java.lang.reflect.Constructor;
-import java.lang.reflect.Field;
-import java.lang.reflect.InvocationTargetException;
-
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
 
+import android.support.test.InstrumentationRegistry;
+import android.support.test.runner.AndroidJUnit4;
+import android.test.suitebuilder.annotation.MediumTest;
+import android.util.Log;
+import android.view.animation.Interpolator;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import java.lang.reflect.InvocationTargetException;
+
 @RunWith(AndroidJUnit4.class)
 @MediumTest
 public abstract class ScrollerCompatTestBase {
@@ -43,22 +38,19 @@
 
     private final String TAG;
 
-    private final int mApiLevel;
+    private final boolean mIsIcsOrNewer;
 
     private ScrollerCompat mScroller;
 
-    public ScrollerCompatTestBase(int apiLevel) {
-        mApiLevel = apiLevel;
-        TAG = "ScrollerCompatTest api:" + apiLevel;
+    public ScrollerCompatTestBase(boolean isIcsOrNewer) {
+        mIsIcsOrNewer = isIcsOrNewer;
+        TAG = "ScrollerCompatTest ICS or newer:" + isIcsOrNewer;
     }
 
     protected void createScroller(Interpolator interpolator)
             throws NoSuchMethodException, IllegalAccessException, InvocationTargetException,
             InstantiationException {
-        Constructor<ScrollerCompat> constructor = ScrollerCompat.class
-                .getDeclaredConstructor(int.class, Context.class, Interpolator.class);
-        constructor.setAccessible(true);
-        mScroller = constructor.newInstance(mApiLevel, InstrumentationRegistry.getContext(),
+        mScroller = new ScrollerCompat(mIsIcsOrNewer, InstrumentationRegistry.getContext(),
                 interpolator);
     }