116 lines
4.6 KiB
Java
116 lines
4.6 KiB
Java
package androidx.transition;
|
|
|
|
import android.animation.Animator;
|
|
import android.animation.AnimatorListenerAdapter;
|
|
import android.animation.ObjectAnimator;
|
|
import android.annotation.SuppressLint;
|
|
import android.content.Context;
|
|
import android.content.res.TypedArray;
|
|
import android.content.res.XmlResourceParser;
|
|
import android.util.AttributeSet;
|
|
import android.view.View;
|
|
import android.view.ViewGroup;
|
|
import androidx.annotation.NonNull;
|
|
import androidx.core.content.res.TypedArrayUtils;
|
|
import androidx.core.view.ViewCompat;
|
|
public class Fade extends Visibility {
|
|
public static final int IN = 1;
|
|
private static final String LOG_TAG = "Fade";
|
|
public static final int OUT = 2;
|
|
private static final String PROPNAME_TRANSITION_ALPHA = "android:fade:transitionAlpha";
|
|
|
|
/* renamed from: androidx.transition.Fade$1 reason: invalid class name */
|
|
public class AnonymousClass1 extends TransitionListenerAdapter {
|
|
public final /* synthetic */ View val$view;
|
|
|
|
public AnonymousClass1(View view) {
|
|
this.val$view = view;
|
|
}
|
|
|
|
@Override // androidx.transition.TransitionListenerAdapter, androidx.transition.Transition.TransitionListener
|
|
public void onTransitionEnd(@NonNull Transition transition) {
|
|
ViewUtils.setTransitionAlpha(this.val$view, 1.0f);
|
|
ViewUtils.clearNonTransitionAlpha(this.val$view);
|
|
transition.removeListener(this);
|
|
}
|
|
}
|
|
|
|
public static class FadeAnimatorListener extends AnimatorListenerAdapter {
|
|
private boolean mLayerTypeChanged = false;
|
|
private final View mView;
|
|
|
|
public FadeAnimatorListener(View view) {
|
|
this.mView = view;
|
|
}
|
|
|
|
@Override // android.animation.AnimatorListenerAdapter, android.animation.Animator.AnimatorListener
|
|
public void onAnimationEnd(Animator animator) {
|
|
ViewUtils.setTransitionAlpha(this.mView, 1.0f);
|
|
if (this.mLayerTypeChanged) {
|
|
this.mView.setLayerType(0, null);
|
|
}
|
|
}
|
|
|
|
@Override // android.animation.AnimatorListenerAdapter, android.animation.Animator.AnimatorListener
|
|
public void onAnimationStart(Animator animator) {
|
|
if (ViewCompat.hasOverlappingRendering(this.mView) && this.mView.getLayerType() == 0) {
|
|
this.mLayerTypeChanged = true;
|
|
this.mView.setLayerType(2, null);
|
|
}
|
|
}
|
|
}
|
|
|
|
public Fade() {
|
|
}
|
|
|
|
public Fade(int i) {
|
|
setMode(i);
|
|
}
|
|
|
|
@SuppressLint({"RestrictedApi"})
|
|
public Fade(Context context, AttributeSet attributeSet) {
|
|
super(context, attributeSet);
|
|
TypedArray obtainStyledAttributes = context.obtainStyledAttributes(attributeSet, Styleable.FADE);
|
|
setMode(TypedArrayUtils.getNamedInt(obtainStyledAttributes, (XmlResourceParser) attributeSet, "fadingMode", 0, getMode()));
|
|
obtainStyledAttributes.recycle();
|
|
}
|
|
|
|
private Animator createAnimation(View view, float f, float f2) {
|
|
if (f == f2) {
|
|
return null;
|
|
}
|
|
ViewUtils.setTransitionAlpha(view, f);
|
|
ObjectAnimator ofFloat = ObjectAnimator.ofFloat(view, ViewUtils.TRANSITION_ALPHA, f2);
|
|
ofFloat.addListener(new FadeAnimatorListener(view));
|
|
addListener(new AnonymousClass1(view));
|
|
return ofFloat;
|
|
}
|
|
|
|
private static float getStartAlpha(TransitionValues transitionValues, float f) {
|
|
Float f2;
|
|
return (transitionValues == null || (f2 = (Float) transitionValues.values.get("android:fade:transitionAlpha")) == null) ? f : f2.floatValue();
|
|
}
|
|
|
|
@Override // androidx.transition.Visibility, androidx.transition.Transition
|
|
public void captureStartValues(@NonNull TransitionValues transitionValues) {
|
|
super.captureStartValues(transitionValues);
|
|
transitionValues.values.put("android:fade:transitionAlpha", Float.valueOf(ViewUtils.getTransitionAlpha(transitionValues.view)));
|
|
}
|
|
|
|
@Override // androidx.transition.Visibility
|
|
public Animator onAppear(ViewGroup viewGroup, View view, TransitionValues transitionValues, TransitionValues transitionValues2) {
|
|
float f = 0.0f;
|
|
float startAlpha = getStartAlpha(transitionValues, 0.0f);
|
|
if (startAlpha != 1.0f) {
|
|
f = startAlpha;
|
|
}
|
|
return createAnimation(view, f, 1.0f);
|
|
}
|
|
|
|
@Override // androidx.transition.Visibility
|
|
public Animator onDisappear(ViewGroup viewGroup, View view, TransitionValues transitionValues, TransitionValues transitionValues2) {
|
|
ViewUtils.saveNonTransitionAlpha(view);
|
|
return createAnimation(view, getStartAlpha(transitionValues, 1.0f), 0.0f);
|
|
}
|
|
}
|