discord-jadx/app/src/main/java/androidx/transition/TranslationAnimationCreator...

121 lines
5.4 KiB
Java

package androidx.transition;
import android.animation.Animator;
import android.animation.AnimatorListenerAdapter;
import android.animation.ObjectAnimator;
import android.animation.PropertyValuesHolder;
import android.animation.TimeInterpolator;
import android.view.View;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.transition.Transition;
public class TranslationAnimationCreator {
public static class TransitionPositionListener extends AnimatorListenerAdapter implements Transition.TransitionListener {
private final View mMovingView;
private float mPausedX;
private float mPausedY;
private final int mStartX;
private final int mStartY;
private final float mTerminalX;
private final float mTerminalY;
private int[] mTransitionPosition;
private final View mViewInHierarchy;
public TransitionPositionListener(View view, View view2, int i, int i2, float f, float f2) {
this.mMovingView = view;
this.mViewInHierarchy = view2;
this.mStartX = i - Math.round(view.getTranslationX());
this.mStartY = i2 - Math.round(view.getTranslationY());
this.mTerminalX = f;
this.mTerminalY = f2;
int i3 = R.id.transition_position;
int[] iArr = (int[]) view2.getTag(i3);
this.mTransitionPosition = iArr;
if (iArr != null) {
view2.setTag(i3, null);
}
}
@Override // android.animation.AnimatorListenerAdapter, android.animation.Animator.AnimatorListener
public void onAnimationCancel(Animator animator) {
if (this.mTransitionPosition == null) {
this.mTransitionPosition = new int[2];
}
this.mTransitionPosition[0] = Math.round(this.mMovingView.getTranslationX() + ((float) this.mStartX));
this.mTransitionPosition[1] = Math.round(this.mMovingView.getTranslationY() + ((float) this.mStartY));
this.mViewInHierarchy.setTag(R.id.transition_position, this.mTransitionPosition);
}
@Override // android.animation.AnimatorListenerAdapter, android.animation.Animator.AnimatorPauseListener
public void onAnimationPause(Animator animator) {
this.mPausedX = this.mMovingView.getTranslationX();
this.mPausedY = this.mMovingView.getTranslationY();
this.mMovingView.setTranslationX(this.mTerminalX);
this.mMovingView.setTranslationY(this.mTerminalY);
}
@Override // android.animation.AnimatorListenerAdapter, android.animation.Animator.AnimatorPauseListener
public void onAnimationResume(Animator animator) {
this.mMovingView.setTranslationX(this.mPausedX);
this.mMovingView.setTranslationY(this.mPausedY);
}
@Override // androidx.transition.Transition.TransitionListener
public void onTransitionCancel(@NonNull Transition transition) {
}
@Override // androidx.transition.Transition.TransitionListener
public void onTransitionEnd(@NonNull Transition transition) {
this.mMovingView.setTranslationX(this.mTerminalX);
this.mMovingView.setTranslationY(this.mTerminalY);
transition.removeListener(this);
}
@Override // androidx.transition.Transition.TransitionListener
public void onTransitionPause(@NonNull Transition transition) {
}
@Override // androidx.transition.Transition.TransitionListener
public void onTransitionResume(@NonNull Transition transition) {
}
@Override // androidx.transition.Transition.TransitionListener
public void onTransitionStart(@NonNull Transition transition) {
}
}
private TranslationAnimationCreator() {
}
@Nullable
public static Animator createAnimation(@NonNull View view, @NonNull TransitionValues transitionValues, int i, int i2, float f, float f2, float f3, float f4, @Nullable TimeInterpolator timeInterpolator, @NonNull Transition transition) {
float f5;
float f6;
float translationX = view.getTranslationX();
float translationY = view.getTranslationY();
int[] iArr = (int[]) transitionValues.view.getTag(R.id.transition_position);
if (iArr != null) {
f5 = ((float) (iArr[0] - i)) + translationX;
f6 = ((float) (iArr[1] - i2)) + translationY;
} else {
f5 = f;
f6 = f2;
}
int round = Math.round(f5 - translationX) + i;
int round2 = Math.round(f6 - translationY) + i2;
view.setTranslationX(f5);
view.setTranslationY(f6);
if (f5 == f3 && f6 == f4) {
return null;
}
ObjectAnimator ofPropertyValuesHolder = ObjectAnimator.ofPropertyValuesHolder(view, PropertyValuesHolder.ofFloat(View.TRANSLATION_X, f5, f3), PropertyValuesHolder.ofFloat(View.TRANSLATION_Y, f6, f4));
TransitionPositionListener transitionPositionListener = new TransitionPositionListener(view, transitionValues.view, round, round2, translationX, translationY);
transition.addListener(transitionPositionListener);
ofPropertyValuesHolder.addListener(transitionPositionListener);
AnimatorUtils.addPauseListener(ofPropertyValuesHolder, transitionPositionListener);
ofPropertyValuesHolder.setInterpolator(timeInterpolator);
return ofPropertyValuesHolder;
}
}