mirror of
https://github.com/Pinball3D/Rabbit-R1.git
synced 2025-01-09 13:43:22 +00:00
198 lines
7.3 KiB
Java
198 lines
7.3 KiB
Java
|
package androidx.fragment.app;
|
||
|
|
||
|
import android.animation.Animator;
|
||
|
import android.animation.AnimatorInflater;
|
||
|
import android.content.Context;
|
||
|
import android.content.res.Resources;
|
||
|
import android.content.res.TypedArray;
|
||
|
import android.view.View;
|
||
|
import android.view.ViewGroup;
|
||
|
import android.view.animation.Animation;
|
||
|
import android.view.animation.AnimationSet;
|
||
|
import android.view.animation.AnimationUtils;
|
||
|
import android.view.animation.Transformation;
|
||
|
import androidx.core.view.OneShotPreDrawListener;
|
||
|
import androidx.fragment.R;
|
||
|
|
||
|
/* loaded from: classes2.dex */
|
||
|
class FragmentAnim {
|
||
|
private FragmentAnim() {
|
||
|
}
|
||
|
|
||
|
/* JADX INFO: Access modifiers changed from: package-private */
|
||
|
public static AnimationOrAnimator loadAnimation(Context context, Fragment fragment, boolean z, boolean z2) {
|
||
|
int nextTransition = fragment.getNextTransition();
|
||
|
int nextAnim = getNextAnim(fragment, z, z2);
|
||
|
fragment.setAnimations(0, 0, 0, 0);
|
||
|
if (fragment.mContainer != null && fragment.mContainer.getTag(R.id.visible_removing_fragment_view_tag) != null) {
|
||
|
fragment.mContainer.setTag(R.id.visible_removing_fragment_view_tag, null);
|
||
|
}
|
||
|
if (fragment.mContainer != null && fragment.mContainer.getLayoutTransition() != null) {
|
||
|
return null;
|
||
|
}
|
||
|
Animation onCreateAnimation = fragment.onCreateAnimation(nextTransition, z, nextAnim);
|
||
|
if (onCreateAnimation != null) {
|
||
|
return new AnimationOrAnimator(onCreateAnimation);
|
||
|
}
|
||
|
Animator onCreateAnimator = fragment.onCreateAnimator(nextTransition, z, nextAnim);
|
||
|
if (onCreateAnimator != null) {
|
||
|
return new AnimationOrAnimator(onCreateAnimator);
|
||
|
}
|
||
|
if (nextAnim == 0 && nextTransition != 0) {
|
||
|
nextAnim = transitToAnimResourceId(context, nextTransition, z);
|
||
|
}
|
||
|
if (nextAnim != 0) {
|
||
|
boolean equals = "anim".equals(context.getResources().getResourceTypeName(nextAnim));
|
||
|
if (equals) {
|
||
|
try {
|
||
|
Animation loadAnimation = AnimationUtils.loadAnimation(context, nextAnim);
|
||
|
if (loadAnimation != null) {
|
||
|
return new AnimationOrAnimator(loadAnimation);
|
||
|
}
|
||
|
} catch (Resources.NotFoundException e) {
|
||
|
throw e;
|
||
|
} catch (RuntimeException unused) {
|
||
|
}
|
||
|
}
|
||
|
try {
|
||
|
Animator loadAnimator = AnimatorInflater.loadAnimator(context, nextAnim);
|
||
|
if (loadAnimator != null) {
|
||
|
return new AnimationOrAnimator(loadAnimator);
|
||
|
}
|
||
|
} catch (RuntimeException e2) {
|
||
|
if (equals) {
|
||
|
throw e2;
|
||
|
}
|
||
|
Animation loadAnimation2 = AnimationUtils.loadAnimation(context, nextAnim);
|
||
|
if (loadAnimation2 != null) {
|
||
|
return new AnimationOrAnimator(loadAnimation2);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
return null;
|
||
|
}
|
||
|
|
||
|
private static int getNextAnim(Fragment fragment, boolean z, boolean z2) {
|
||
|
if (z2) {
|
||
|
if (z) {
|
||
|
return fragment.getPopEnterAnim();
|
||
|
}
|
||
|
return fragment.getPopExitAnim();
|
||
|
}
|
||
|
if (z) {
|
||
|
return fragment.getEnterAnim();
|
||
|
}
|
||
|
return fragment.getExitAnim();
|
||
|
}
|
||
|
|
||
|
private static int transitToAnimResourceId(Context context, int i, boolean z) {
|
||
|
if (i == 4097) {
|
||
|
return z ? R.animator.fragment_open_enter : R.animator.fragment_open_exit;
|
||
|
}
|
||
|
if (i == 8194) {
|
||
|
return z ? R.animator.fragment_close_enter : R.animator.fragment_close_exit;
|
||
|
}
|
||
|
if (i == 8197) {
|
||
|
if (z) {
|
||
|
return toActivityTransitResId(context, android.R.attr.activityCloseEnterAnimation);
|
||
|
}
|
||
|
return toActivityTransitResId(context, android.R.attr.activityCloseExitAnimation);
|
||
|
}
|
||
|
if (i == 4099) {
|
||
|
return z ? R.animator.fragment_fade_enter : R.animator.fragment_fade_exit;
|
||
|
}
|
||
|
if (i != 4100) {
|
||
|
return -1;
|
||
|
}
|
||
|
if (z) {
|
||
|
return toActivityTransitResId(context, android.R.attr.activityOpenEnterAnimation);
|
||
|
}
|
||
|
return toActivityTransitResId(context, android.R.attr.activityOpenExitAnimation);
|
||
|
}
|
||
|
|
||
|
private static int toActivityTransitResId(Context context, int i) {
|
||
|
TypedArray obtainStyledAttributes = context.obtainStyledAttributes(android.R.style.Animation.Activity, new int[]{i});
|
||
|
int resourceId = obtainStyledAttributes.getResourceId(0, -1);
|
||
|
obtainStyledAttributes.recycle();
|
||
|
return resourceId;
|
||
|
}
|
||
|
|
||
|
/* loaded from: classes2.dex */
|
||
|
static class AnimationOrAnimator {
|
||
|
public final Animation animation;
|
||
|
public final Animator animator;
|
||
|
|
||
|
AnimationOrAnimator(Animation animation) {
|
||
|
this.animation = animation;
|
||
|
this.animator = null;
|
||
|
if (animation == null) {
|
||
|
throw new IllegalStateException("Animation cannot be null");
|
||
|
}
|
||
|
}
|
||
|
|
||
|
AnimationOrAnimator(Animator animator) {
|
||
|
this.animation = null;
|
||
|
this.animator = animator;
|
||
|
if (animator == null) {
|
||
|
throw new IllegalStateException("Animator cannot be null");
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
/* loaded from: classes2.dex */
|
||
|
static class EndViewTransitionAnimation extends AnimationSet implements Runnable {
|
||
|
private boolean mAnimating;
|
||
|
private final View mChild;
|
||
|
private boolean mEnded;
|
||
|
private final ViewGroup mParent;
|
||
|
private boolean mTransitionEnded;
|
||
|
|
||
|
/* JADX INFO: Access modifiers changed from: package-private */
|
||
|
public EndViewTransitionAnimation(Animation animation, ViewGroup viewGroup, View view) {
|
||
|
super(false);
|
||
|
this.mAnimating = true;
|
||
|
this.mParent = viewGroup;
|
||
|
this.mChild = view;
|
||
|
addAnimation(animation);
|
||
|
viewGroup.post(this);
|
||
|
}
|
||
|
|
||
|
@Override // android.view.animation.AnimationSet, android.view.animation.Animation
|
||
|
public boolean getTransformation(long j, Transformation transformation) {
|
||
|
this.mAnimating = true;
|
||
|
if (this.mEnded) {
|
||
|
return !this.mTransitionEnded;
|
||
|
}
|
||
|
if (!super.getTransformation(j, transformation)) {
|
||
|
this.mEnded = true;
|
||
|
OneShotPreDrawListener.add(this.mParent, this);
|
||
|
}
|
||
|
return true;
|
||
|
}
|
||
|
|
||
|
@Override // android.view.animation.Animation
|
||
|
public boolean getTransformation(long j, Transformation transformation, float f) {
|
||
|
this.mAnimating = true;
|
||
|
if (this.mEnded) {
|
||
|
return !this.mTransitionEnded;
|
||
|
}
|
||
|
if (!super.getTransformation(j, transformation, f)) {
|
||
|
this.mEnded = true;
|
||
|
OneShotPreDrawListener.add(this.mParent, this);
|
||
|
}
|
||
|
return true;
|
||
|
}
|
||
|
|
||
|
@Override // java.lang.Runnable
|
||
|
public void run() {
|
||
|
if (!this.mEnded && this.mAnimating) {
|
||
|
this.mAnimating = false;
|
||
|
this.mParent.post(this);
|
||
|
} else {
|
||
|
this.mParent.endViewTransition(this.mChild);
|
||
|
this.mTransitionEnded = true;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|