package androidx.recyclerview.widget; import android.content.Context; import android.graphics.PointF; import android.util.DisplayMetrics; import android.view.View; import android.view.animation.DecelerateInterpolator; import android.view.animation.LinearInterpolator; import androidx.recyclerview.widget.RecyclerView; /* loaded from: classes2.dex */ public class LinearSmoothScroller extends RecyclerView.SmoothScroller { private static final boolean DEBUG = false; private static final float MILLISECONDS_PER_INCH = 25.0f; public static final int SNAP_TO_ANY = 0; public static final int SNAP_TO_END = 1; public static final int SNAP_TO_START = -1; private static final float TARGET_SEEK_EXTRA_SCROLL_RATIO = 1.2f; private static final int TARGET_SEEK_SCROLL_DISTANCE_PX = 10000; private final DisplayMetrics mDisplayMetrics; private float mMillisPerPixel; protected PointF mTargetVector; protected final LinearInterpolator mLinearInterpolator = new LinearInterpolator(); protected final DecelerateInterpolator mDecelerateInterpolator = new DecelerateInterpolator(); private boolean mHasCalculatedMillisPerPixel = false; protected int mInterimTargetDx = 0; protected int mInterimTargetDy = 0; private int clampApplyScroll(int i, int i2) { int i3 = i - i2; if (i * i3 <= 0) { return 0; } return i3; } @Override // androidx.recyclerview.widget.RecyclerView.SmoothScroller protected void onStart() { } /* JADX INFO: Access modifiers changed from: protected */ @Override // androidx.recyclerview.widget.RecyclerView.SmoothScroller public void onStop() { this.mInterimTargetDy = 0; this.mInterimTargetDx = 0; this.mTargetVector = null; } public LinearSmoothScroller(Context context) { this.mDisplayMetrics = context.getResources().getDisplayMetrics(); } @Override // androidx.recyclerview.widget.RecyclerView.SmoothScroller protected void onTargetFound(View view, RecyclerView.State state, RecyclerView.SmoothScroller.Action action) { int calculateDxToMakeVisible = calculateDxToMakeVisible(view, getHorizontalSnapPreference()); int calculateDyToMakeVisible = calculateDyToMakeVisible(view, getVerticalSnapPreference()); int calculateTimeForDeceleration = calculateTimeForDeceleration((int) Math.sqrt((calculateDxToMakeVisible * calculateDxToMakeVisible) + (calculateDyToMakeVisible * calculateDyToMakeVisible))); if (calculateTimeForDeceleration > 0) { action.update(-calculateDxToMakeVisible, -calculateDyToMakeVisible, calculateTimeForDeceleration, this.mDecelerateInterpolator); } } @Override // androidx.recyclerview.widget.RecyclerView.SmoothScroller protected void onSeekTargetStep(int i, int i2, RecyclerView.State state, RecyclerView.SmoothScroller.Action action) { if (getChildCount() == 0) { stop(); return; } this.mInterimTargetDx = clampApplyScroll(this.mInterimTargetDx, i); int clampApplyScroll = clampApplyScroll(this.mInterimTargetDy, i2); this.mInterimTargetDy = clampApplyScroll; if (this.mInterimTargetDx == 0 && clampApplyScroll == 0) { updateActionForInterimTarget(action); } } /* JADX INFO: Access modifiers changed from: protected */ public float calculateSpeedPerPixel(DisplayMetrics displayMetrics) { return MILLISECONDS_PER_INCH / displayMetrics.densityDpi; } private float getSpeedPerPixel() { if (!this.mHasCalculatedMillisPerPixel) { this.mMillisPerPixel = calculateSpeedPerPixel(this.mDisplayMetrics); this.mHasCalculatedMillisPerPixel = true; } return this.mMillisPerPixel; } /* JADX INFO: Access modifiers changed from: protected */ public int calculateTimeForDeceleration(int i) { return (int) Math.ceil(calculateTimeForScrolling(i) / 0.3356d); } /* JADX INFO: Access modifiers changed from: protected */ public int calculateTimeForScrolling(int i) { return (int) Math.ceil(Math.abs(i) * getSpeedPerPixel()); } protected int getHorizontalSnapPreference() { PointF pointF = this.mTargetVector; if (pointF == null || pointF.x == 0.0f) { return 0; } return this.mTargetVector.x > 0.0f ? 1 : -1; } protected int getVerticalSnapPreference() { PointF pointF = this.mTargetVector; if (pointF == null || pointF.y == 0.0f) { return 0; } return this.mTargetVector.y > 0.0f ? 1 : -1; } protected void updateActionForInterimTarget(RecyclerView.SmoothScroller.Action action) { PointF computeScrollVectorForPosition = computeScrollVectorForPosition(getTargetPosition()); if (computeScrollVectorForPosition == null || (computeScrollVectorForPosition.x == 0.0f && computeScrollVectorForPosition.y == 0.0f)) { action.jumpTo(getTargetPosition()); stop(); return; } normalize(computeScrollVectorForPosition); this.mTargetVector = computeScrollVectorForPosition; this.mInterimTargetDx = (int) (computeScrollVectorForPosition.x * 10000.0f); this.mInterimTargetDy = (int) (computeScrollVectorForPosition.y * 10000.0f); action.update((int) (this.mInterimTargetDx * TARGET_SEEK_EXTRA_SCROLL_RATIO), (int) (this.mInterimTargetDy * TARGET_SEEK_EXTRA_SCROLL_RATIO), (int) (calculateTimeForScrolling(10000) * TARGET_SEEK_EXTRA_SCROLL_RATIO), this.mLinearInterpolator); } public int calculateDtToFit(int i, int i2, int i3, int i4, int i5) { if (i5 == -1) { return i3 - i; } if (i5 != 0) { if (i5 == 1) { return i4 - i2; } throw new IllegalArgumentException("snap preference should be one of the constants defined in SmoothScroller, starting with SNAP_"); } int i6 = i3 - i; if (i6 > 0) { return i6; } int i7 = i4 - i2; if (i7 < 0) { return i7; } return 0; } public int calculateDyToMakeVisible(View view, int i) { RecyclerView.LayoutManager layoutManager = getLayoutManager(); if (layoutManager == null || !layoutManager.canScrollVertically()) { return 0; } RecyclerView.LayoutParams layoutParams = (RecyclerView.LayoutParams) view.getLayoutParams(); return calculateDtToFit(layoutManager.getDecoratedTop(view) - layoutParams.topMargin, layoutManager.getDecoratedBottom(view) + layoutParams.bottomMargin, layoutManager.getPaddingTop(), layoutManager.getHeight() - layoutManager.getPaddingBottom(), i); } public int calculateDxToMakeVisible(View view, int i) { RecyclerView.LayoutManager layoutManager = getLayoutManager(); if (layoutManager == null || !layoutManager.canScrollHorizontally()) { return 0; } RecyclerView.LayoutParams layoutParams = (RecyclerView.LayoutParams) view.getLayoutParams(); return calculateDtToFit(layoutManager.getDecoratedLeft(view) - layoutParams.leftMargin, layoutManager.getDecoratedRight(view) + layoutParams.rightMargin, layoutManager.getPaddingLeft(), layoutManager.getWidth() - layoutManager.getPaddingRight(), i); } }