Remove caching of SmoothScrollers.
SmoothScrollers should be created each time they are used and should not
be stored.
Fixes: 79752874
Test: ./gradlew car:connectedCheck
Test: Check on sample app and ensure that smooth scrolling still works
as expected
Change-Id: Idfac4c27ea297fc955ba68d56ba89a8adce3a982
diff --git a/car/src/main/java/androidx/car/widget/PagedSnapHelper.java b/car/src/main/java/androidx/car/widget/PagedSnapHelper.java
index a7940b9..d8b4b9f 100644
--- a/car/src/main/java/androidx/car/widget/PagedSnapHelper.java
+++ b/car/src/main/java/androidx/car/widget/PagedSnapHelper.java
@@ -17,12 +17,13 @@
package androidx.car.widget;
import android.content.Context;
+import android.view.View;
+
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.recyclerview.widget.LinearSnapHelper;
import androidx.recyclerview.widget.OrientationHelper;
import androidx.recyclerview.widget.RecyclerView;
-import android.view.View;
/**
* Extension of a {@link LinearSnapHelper} that will snap to the start of the target child view to
@@ -52,17 +53,17 @@
*/
private static final float LONG_ITEM_END_VISIBLE_THRESHOLD = 0.3f;
- private final PagedSmoothScroller mSmoothScroller;
+ private final Context mContext;
private RecyclerView mRecyclerView;
+ public PagedSnapHelper(Context context) {
+ mContext = context;
+ }
+
// Orientation helpers are lazily created per LayoutManager.
@Nullable private OrientationHelper mVerticalHelper;
@Nullable private OrientationHelper mHorizontalHelper;
- public PagedSnapHelper(Context context) {
- mSmoothScroller = new PagedSmoothScroller(context);
- }
-
@Override
public int[] calculateDistanceToFinalSnap(@NonNull RecyclerView.LayoutManager layoutManager,
@NonNull View targetView) {
@@ -237,7 +238,7 @@
*/
@Override
protected RecyclerView.SmoothScroller createScroller(RecyclerView.LayoutManager layoutManager) {
- return mSmoothScroller;
+ return new PagedSmoothScroller(mContext);
}
/**