mirror of
https://github.com/Pinball3D/Rabbit-R1.git
synced 2024-12-27 09:32:27 -06:00
100 lines
3.8 KiB
Java
100 lines
3.8 KiB
Java
|
package androidx.viewpager2.widget;
|
||
|
|
||
|
import android.os.SystemClock;
|
||
|
import android.view.MotionEvent;
|
||
|
import android.view.VelocityTracker;
|
||
|
import android.view.ViewConfiguration;
|
||
|
import androidx.recyclerview.widget.RecyclerView;
|
||
|
|
||
|
/* loaded from: classes2.dex */
|
||
|
final class FakeDrag {
|
||
|
private int mActualDraggedDistance;
|
||
|
private long mFakeDragBeginTime;
|
||
|
private int mMaximumVelocity;
|
||
|
private final RecyclerView mRecyclerView;
|
||
|
private float mRequestedDragDistance;
|
||
|
private final ScrollEventAdapter mScrollEventAdapter;
|
||
|
private VelocityTracker mVelocityTracker;
|
||
|
private final ViewPager2 mViewPager;
|
||
|
|
||
|
/* JADX INFO: Access modifiers changed from: package-private */
|
||
|
public FakeDrag(ViewPager2 viewPager2, ScrollEventAdapter scrollEventAdapter, RecyclerView recyclerView) {
|
||
|
this.mViewPager = viewPager2;
|
||
|
this.mScrollEventAdapter = scrollEventAdapter;
|
||
|
this.mRecyclerView = recyclerView;
|
||
|
}
|
||
|
|
||
|
/* JADX INFO: Access modifiers changed from: package-private */
|
||
|
public boolean isFakeDragging() {
|
||
|
return this.mScrollEventAdapter.isFakeDragging();
|
||
|
}
|
||
|
|
||
|
/* JADX INFO: Access modifiers changed from: package-private */
|
||
|
public boolean beginFakeDrag() {
|
||
|
if (this.mScrollEventAdapter.isDragging()) {
|
||
|
return false;
|
||
|
}
|
||
|
this.mActualDraggedDistance = 0;
|
||
|
this.mRequestedDragDistance = 0;
|
||
|
this.mFakeDragBeginTime = SystemClock.uptimeMillis();
|
||
|
beginFakeVelocityTracker();
|
||
|
this.mScrollEventAdapter.notifyBeginFakeDrag();
|
||
|
if (!this.mScrollEventAdapter.isIdle()) {
|
||
|
this.mRecyclerView.stopScroll();
|
||
|
}
|
||
|
addFakeMotionEvent(this.mFakeDragBeginTime, 0, 0.0f, 0.0f);
|
||
|
return true;
|
||
|
}
|
||
|
|
||
|
/* JADX INFO: Access modifiers changed from: package-private */
|
||
|
public boolean fakeDragBy(float f) {
|
||
|
if (!this.mScrollEventAdapter.isFakeDragging()) {
|
||
|
return false;
|
||
|
}
|
||
|
float f2 = this.mRequestedDragDistance - f;
|
||
|
this.mRequestedDragDistance = f2;
|
||
|
int round = Math.round(f2 - this.mActualDraggedDistance);
|
||
|
this.mActualDraggedDistance += round;
|
||
|
long uptimeMillis = SystemClock.uptimeMillis();
|
||
|
boolean z = this.mViewPager.getOrientation() == 0;
|
||
|
int i = z ? round : 0;
|
||
|
int i2 = z ? 0 : round;
|
||
|
float f3 = z ? this.mRequestedDragDistance : 0.0f;
|
||
|
float f4 = z ? 0.0f : this.mRequestedDragDistance;
|
||
|
this.mRecyclerView.scrollBy(i, i2);
|
||
|
addFakeMotionEvent(uptimeMillis, 2, f3, f4);
|
||
|
return true;
|
||
|
}
|
||
|
|
||
|
/* JADX INFO: Access modifiers changed from: package-private */
|
||
|
public boolean endFakeDrag() {
|
||
|
if (!this.mScrollEventAdapter.isFakeDragging()) {
|
||
|
return false;
|
||
|
}
|
||
|
this.mScrollEventAdapter.notifyEndFakeDrag();
|
||
|
VelocityTracker velocityTracker = this.mVelocityTracker;
|
||
|
velocityTracker.computeCurrentVelocity(1000, this.mMaximumVelocity);
|
||
|
if (this.mRecyclerView.fling((int) velocityTracker.getXVelocity(), (int) velocityTracker.getYVelocity())) {
|
||
|
return true;
|
||
|
}
|
||
|
this.mViewPager.snapToPage();
|
||
|
return true;
|
||
|
}
|
||
|
|
||
|
private void beginFakeVelocityTracker() {
|
||
|
VelocityTracker velocityTracker = this.mVelocityTracker;
|
||
|
if (velocityTracker == null) {
|
||
|
this.mVelocityTracker = VelocityTracker.obtain();
|
||
|
this.mMaximumVelocity = ViewConfiguration.get(this.mViewPager.getContext()).getScaledMaximumFlingVelocity();
|
||
|
} else {
|
||
|
velocityTracker.clear();
|
||
|
}
|
||
|
}
|
||
|
|
||
|
private void addFakeMotionEvent(long j, int i, float f, float f2) {
|
||
|
MotionEvent obtain = MotionEvent.obtain(this.mFakeDragBeginTime, j, i, f, f2, 0);
|
||
|
this.mVelocityTracker.addMovement(obtain);
|
||
|
obtain.recycle();
|
||
|
}
|
||
|
}
|