102 lines
		
	
	
		
			4.2 KiB
		
	
	
	
		
			Java
		
	
	
	
	
	
			
		
		
	
	
			102 lines
		
	
	
		
			4.2 KiB
		
	
	
	
		
			Java
		
	
	
	
	
	
| package androidx.transition;
 | |
| 
 | |
| import android.animation.Animator;
 | |
| import android.animation.AnimatorListenerAdapter;
 | |
| import android.animation.ObjectAnimator;
 | |
| 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.core.content.res.TypedArrayUtils;
 | |
| import androidx.core.view.ViewCompat;
 | |
| 
 | |
| /* loaded from: classes.dex */
 | |
| 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";
 | |
| 
 | |
|     public Fade(int i) {
 | |
|         setMode(i);
 | |
|     }
 | |
| 
 | |
|     public Fade() {
 | |
|     }
 | |
| 
 | |
|     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();
 | |
|     }
 | |
| 
 | |
|     @Override // androidx.transition.Visibility, androidx.transition.Transition
 | |
|     public void captureStartValues(TransitionValues transitionValues) {
 | |
|         super.captureStartValues(transitionValues);
 | |
|         transitionValues.values.put(PROPNAME_TRANSITION_ALPHA, Float.valueOf(ViewUtils.getTransitionAlpha(transitionValues.view)));
 | |
|     }
 | |
| 
 | |
|     private Animator createAnimation(final 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 TransitionListenerAdapter() { // from class: androidx.transition.Fade.1
 | |
|             @Override // androidx.transition.TransitionListenerAdapter, androidx.transition.Transition.TransitionListener
 | |
|             public void onTransitionEnd(Transition transition) {
 | |
|                 ViewUtils.setTransitionAlpha(view, 1.0f);
 | |
|                 ViewUtils.clearNonTransitionAlpha(view);
 | |
|                 transition.removeListener(this);
 | |
|             }
 | |
|         });
 | |
|         return ofFloat;
 | |
|     }
 | |
| 
 | |
|     @Override // androidx.transition.Visibility
 | |
|     public Animator onAppear(ViewGroup viewGroup, View view, TransitionValues transitionValues, TransitionValues transitionValues2) {
 | |
|         float startAlpha = getStartAlpha(transitionValues, 0.0f);
 | |
|         return createAnimation(view, startAlpha != 1.0f ? startAlpha : 0.0f, 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);
 | |
|     }
 | |
| 
 | |
|     private static float getStartAlpha(TransitionValues transitionValues, float f) {
 | |
|         Float f2;
 | |
|         return (transitionValues == null || (f2 = (Float) transitionValues.values.get(PROPNAME_TRANSITION_ALPHA)) == null) ? f : f2.floatValue();
 | |
|     }
 | |
| 
 | |
|     private static class FadeAnimatorListener extends AnimatorListenerAdapter {
 | |
|         private boolean mLayerTypeChanged = false;
 | |
|         private final View mView;
 | |
| 
 | |
|         FadeAnimatorListener(View view) {
 | |
|             this.mView = view;
 | |
|         }
 | |
| 
 | |
|         @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);
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         @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);
 | |
|             }
 | |
|         }
 | |
|     }
 | |
| }
 |