diff --git a/v7/recyclerview/tests/src/android/support/v7/widget/RecyclerViewLayoutTest.java b/v7/recyclerview/tests/src/android/support/v7/widget/RecyclerViewLayoutTest.java
index 5398ceb..665236f 100644
--- a/v7/recyclerview/tests/src/android/support/v7/widget/RecyclerViewLayoutTest.java
+++ b/v7/recyclerview/tests/src/android/support/v7/widget/RecyclerViewLayoutTest.java
@@ -2193,11 +2193,8 @@
                 LinearSmoothScroller linearSmoothScroller =
                         new LinearSmoothScroller(recyclerView.getContext()) {
                             @Override
-                            public boolean computeScrollVectorForPosition(int targetPosition,
-                                    PointF endVector) {
-                                endVector.x = 0;
-                                endVector.y = 1;
-                                return true;
+                            public PointF computeScrollVectorForPosition(int targetPosition) {
+                                return new PointF(0, 1);
                             }
 
                             @Override
@@ -3975,9 +3972,8 @@
                 RecyclerView.SmoothScroller ss =
                         new LinearSmoothScroller(recyclerView.getContext()) {
                             @Override
-                            public boolean computeScrollVectorForPosition(int targetPosition,
-                                    PointF endVector) {
-                                return false;
+                            public PointF computeScrollVectorForPosition(int targetPosition) {
+                                return null;
                             }
                         };
                 ss.setTargetPosition(position);
@@ -4084,11 +4080,8 @@
                 RecyclerView.SmoothScroller ss =
                         new LinearSmoothScroller(recyclerView.getContext()) {
                             @Override
-                            public boolean computeScrollVectorForPosition(int targetPosition,
-                                    PointF endVector) {
-                                endVector.x = 0;
-                                endVector.y = 1;
-                                return true;
+                            public PointF computeScrollVectorForPosition(int targetPosition) {
+                                return new PointF(0, 1);
                             }
 
                             @Override
