ADD week 5
This commit is contained in:
		| @@ -0,0 +1,117 @@ | ||||
| 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.util.Property; | ||||
| import android.view.View; | ||||
| import androidx.transition.Transition; | ||||
|  | ||||
| /* loaded from: classes.dex */ | ||||
| class TranslationAnimationCreator { | ||||
|     static Animator createAnimation(View view, TransitionValues transitionValues, int i, int i2, float f, float f2, float f3, float f4, TimeInterpolator timeInterpolator, Transition transition) { | ||||
|         float f5; | ||||
|         float f6; | ||||
|         float translationX = view.getTranslationX(); | ||||
|         float translationY = view.getTranslationY(); | ||||
|         if (((int[]) transitionValues.view.getTag(R.id.transition_position)) != null) { | ||||
|             f5 = (r4[0] - i) + translationX; | ||||
|             f6 = (r4[1] - i2) + translationY; | ||||
|         } else { | ||||
|             f5 = f; | ||||
|             f6 = f2; | ||||
|         } | ||||
|         int round = i + Math.round(f5 - translationX); | ||||
|         int round2 = i2 + Math.round(f6 - translationY); | ||||
|         view.setTranslationX(f5); | ||||
|         view.setTranslationY(f6); | ||||
|         if (f5 == f3 && f6 == f4) { | ||||
|             return null; | ||||
|         } | ||||
|         ObjectAnimator ofPropertyValuesHolder = ObjectAnimator.ofPropertyValuesHolder(view, PropertyValuesHolder.ofFloat((Property<?, Float>) View.TRANSLATION_X, f5, f3), PropertyValuesHolder.ofFloat((Property<?, Float>) 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; | ||||
|     } | ||||
|  | ||||
|     private 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; | ||||
|  | ||||
|         @Override // androidx.transition.Transition.TransitionListener | ||||
|         public void onTransitionCancel(Transition transition) { | ||||
|         } | ||||
|  | ||||
|         @Override // androidx.transition.Transition.TransitionListener | ||||
|         public void onTransitionPause(Transition transition) { | ||||
|         } | ||||
|  | ||||
|         @Override // androidx.transition.Transition.TransitionListener | ||||
|         public void onTransitionResume(Transition transition) { | ||||
|         } | ||||
|  | ||||
|         @Override // androidx.transition.Transition.TransitionListener | ||||
|         public void onTransitionStart(Transition transition) { | ||||
|         } | ||||
|  | ||||
|         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[] iArr = (int[]) view2.getTag(R.id.transition_position); | ||||
|             this.mTransitionPosition = iArr; | ||||
|             if (iArr != null) { | ||||
|                 view2.setTag(R.id.transition_position, 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.mStartX + this.mMovingView.getTranslationX()); | ||||
|             this.mTransitionPosition[1] = Math.round(this.mStartY + this.mMovingView.getTranslationY()); | ||||
|             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 onTransitionEnd(Transition transition) { | ||||
|             this.mMovingView.setTranslationX(this.mTerminalX); | ||||
|             this.mMovingView.setTranslationY(this.mTerminalY); | ||||
|             transition.removeListener(this); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     private TranslationAnimationCreator() { | ||||
|     } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user