- 28,932 files - Full Java source code - Smali files - Resources Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
137 lines
4.8 KiB
Java
137 lines
4.8 KiB
Java
package androidx.core.view;
|
|
|
|
import android.os.Build;
|
|
import android.view.MotionEvent;
|
|
import android.view.VelocityTracker;
|
|
import androidx.annotation.NonNull;
|
|
import androidx.annotation.Nullable;
|
|
import androidx.annotation.ReplaceWith;
|
|
import androidx.annotation.RequiresApi;
|
|
import androidx.annotation.RestrictTo;
|
|
import java.lang.annotation.Retention;
|
|
import java.lang.annotation.RetentionPolicy;
|
|
import java.util.Collections;
|
|
import java.util.Map;
|
|
import java.util.WeakHashMap;
|
|
|
|
/* loaded from: classes.dex */
|
|
public final class VelocityTrackerCompat {
|
|
private static Map<VelocityTracker, VelocityTrackerFallback> sFallbackTrackers = Collections.synchronizedMap(new WeakHashMap());
|
|
|
|
@Retention(RetentionPolicy.SOURCE)
|
|
@RestrictTo({RestrictTo.Scope.LIBRARY_GROUP_PREFIX})
|
|
public @interface VelocityTrackableMotionEventAxis {
|
|
}
|
|
|
|
@ReplaceWith(expression = "tracker.getXVelocity(pointerId)")
|
|
@Deprecated
|
|
public static float getXVelocity(VelocityTracker velocityTracker, int i) {
|
|
return velocityTracker.getXVelocity(i);
|
|
}
|
|
|
|
@ReplaceWith(expression = "tracker.getYVelocity(pointerId)")
|
|
@Deprecated
|
|
public static float getYVelocity(VelocityTracker velocityTracker, int i) {
|
|
return velocityTracker.getYVelocity(i);
|
|
}
|
|
|
|
public static boolean isAxisSupported(@NonNull VelocityTracker velocityTracker, int i) {
|
|
if (Build.VERSION.SDK_INT >= 34) {
|
|
return Api34Impl.isAxisSupported(velocityTracker, i);
|
|
}
|
|
return i == 26 || i == 0 || i == 1;
|
|
}
|
|
|
|
public static float getAxisVelocity(@NonNull VelocityTracker velocityTracker, int i) {
|
|
if (Build.VERSION.SDK_INT >= 34) {
|
|
return Api34Impl.getAxisVelocity(velocityTracker, i);
|
|
}
|
|
if (i == 0) {
|
|
return velocityTracker.getXVelocity();
|
|
}
|
|
if (i == 1) {
|
|
return velocityTracker.getYVelocity();
|
|
}
|
|
VelocityTrackerFallback fallbackTrackerOrNull = getFallbackTrackerOrNull(velocityTracker);
|
|
if (fallbackTrackerOrNull != null) {
|
|
return fallbackTrackerOrNull.getAxisVelocity(i);
|
|
}
|
|
return 0.0f;
|
|
}
|
|
|
|
public static float getAxisVelocity(@NonNull VelocityTracker velocityTracker, int i, int i2) {
|
|
if (Build.VERSION.SDK_INT >= 34) {
|
|
return Api34Impl.getAxisVelocity(velocityTracker, i, i2);
|
|
}
|
|
if (i == 0) {
|
|
return velocityTracker.getXVelocity(i2);
|
|
}
|
|
if (i == 1) {
|
|
return velocityTracker.getYVelocity(i2);
|
|
}
|
|
return 0.0f;
|
|
}
|
|
|
|
public static void clear(@NonNull VelocityTracker velocityTracker) {
|
|
velocityTracker.clear();
|
|
removeFallbackForTracker(velocityTracker);
|
|
}
|
|
|
|
public static void recycle(@NonNull VelocityTracker velocityTracker) {
|
|
velocityTracker.recycle();
|
|
removeFallbackForTracker(velocityTracker);
|
|
}
|
|
|
|
public static void computeCurrentVelocity(@NonNull VelocityTracker velocityTracker, int i, float f) {
|
|
velocityTracker.computeCurrentVelocity(i, f);
|
|
VelocityTrackerFallback fallbackTrackerOrNull = getFallbackTrackerOrNull(velocityTracker);
|
|
if (fallbackTrackerOrNull != null) {
|
|
fallbackTrackerOrNull.computeCurrentVelocity(i, f);
|
|
}
|
|
}
|
|
|
|
public static void computeCurrentVelocity(@NonNull VelocityTracker velocityTracker, int i) {
|
|
computeCurrentVelocity(velocityTracker, i, Float.MAX_VALUE);
|
|
}
|
|
|
|
public static void addMovement(@NonNull VelocityTracker velocityTracker, @NonNull MotionEvent motionEvent) {
|
|
velocityTracker.addMovement(motionEvent);
|
|
if (Build.VERSION.SDK_INT < 34 && motionEvent.getSource() == 4194304) {
|
|
if (!sFallbackTrackers.containsKey(velocityTracker)) {
|
|
sFallbackTrackers.put(velocityTracker, new VelocityTrackerFallback());
|
|
}
|
|
sFallbackTrackers.get(velocityTracker).addMovement(motionEvent);
|
|
}
|
|
}
|
|
|
|
private static void removeFallbackForTracker(VelocityTracker velocityTracker) {
|
|
sFallbackTrackers.remove(velocityTracker);
|
|
}
|
|
|
|
@Nullable
|
|
private static VelocityTrackerFallback getFallbackTrackerOrNull(VelocityTracker velocityTracker) {
|
|
return sFallbackTrackers.get(velocityTracker);
|
|
}
|
|
|
|
@RequiresApi(34)
|
|
public static class Api34Impl {
|
|
private Api34Impl() {
|
|
}
|
|
|
|
public static boolean isAxisSupported(VelocityTracker velocityTracker, int i) {
|
|
return velocityTracker.isAxisSupported(i);
|
|
}
|
|
|
|
public static float getAxisVelocity(VelocityTracker velocityTracker, int i, int i2) {
|
|
return velocityTracker.getAxisVelocity(i, i2);
|
|
}
|
|
|
|
public static float getAxisVelocity(VelocityTracker velocityTracker, int i) {
|
|
return velocityTracker.getAxisVelocity(i);
|
|
}
|
|
}
|
|
|
|
private VelocityTrackerCompat() {
|
|
}
|
|
}
|