109 lines
		
	
	
		
			4.3 KiB
		
	
	
	
		
			Java
		
	
	
	
	
	
			
		
		
	
	
			109 lines
		
	
	
		
			4.3 KiB
		
	
	
	
		
			Java
		
	
	
	
	
	
| package com.google.android.material.transition;
 | |
| 
 | |
| import android.animation.Animator;
 | |
| import android.animation.AnimatorSet;
 | |
| import android.animation.TimeInterpolator;
 | |
| import android.content.Context;
 | |
| import android.view.View;
 | |
| import android.view.ViewGroup;
 | |
| import androidx.transition.TransitionValues;
 | |
| import androidx.transition.Visibility;
 | |
| import com.google.android.material.animation.AnimationUtils;
 | |
| import com.google.android.material.animation.AnimatorSetCompat;
 | |
| import com.google.android.material.transition.VisibilityAnimatorProvider;
 | |
| import java.util.ArrayList;
 | |
| import java.util.Iterator;
 | |
| import java.util.List;
 | |
| 
 | |
| /* loaded from: classes.dex */
 | |
| abstract class MaterialVisibility<P extends VisibilityAnimatorProvider> extends Visibility {
 | |
|     private final List<VisibilityAnimatorProvider> additionalAnimatorProviders = new ArrayList();
 | |
|     private final P primaryAnimatorProvider;
 | |
|     private VisibilityAnimatorProvider secondaryAnimatorProvider;
 | |
| 
 | |
|     int getDurationThemeAttrResId(boolean z) {
 | |
|         return 0;
 | |
|     }
 | |
| 
 | |
|     int getEasingThemeAttrResId(boolean z) {
 | |
|         return 0;
 | |
|     }
 | |
| 
 | |
|     public P getPrimaryAnimatorProvider() {
 | |
|         return this.primaryAnimatorProvider;
 | |
|     }
 | |
| 
 | |
|     public VisibilityAnimatorProvider getSecondaryAnimatorProvider() {
 | |
|         return this.secondaryAnimatorProvider;
 | |
|     }
 | |
| 
 | |
|     public void setSecondaryAnimatorProvider(VisibilityAnimatorProvider visibilityAnimatorProvider) {
 | |
|         this.secondaryAnimatorProvider = visibilityAnimatorProvider;
 | |
|     }
 | |
| 
 | |
|     protected MaterialVisibility(P p, VisibilityAnimatorProvider visibilityAnimatorProvider) {
 | |
|         this.primaryAnimatorProvider = p;
 | |
|         this.secondaryAnimatorProvider = visibilityAnimatorProvider;
 | |
|     }
 | |
| 
 | |
|     public void addAdditionalAnimatorProvider(VisibilityAnimatorProvider visibilityAnimatorProvider) {
 | |
|         this.additionalAnimatorProviders.add(visibilityAnimatorProvider);
 | |
|     }
 | |
| 
 | |
|     public boolean removeAdditionalAnimatorProvider(VisibilityAnimatorProvider visibilityAnimatorProvider) {
 | |
|         return this.additionalAnimatorProviders.remove(visibilityAnimatorProvider);
 | |
|     }
 | |
| 
 | |
|     public void clearAdditionalAnimatorProvider() {
 | |
|         this.additionalAnimatorProviders.clear();
 | |
|     }
 | |
| 
 | |
|     @Override // androidx.transition.Visibility
 | |
|     public Animator onAppear(ViewGroup viewGroup, View view, TransitionValues transitionValues, TransitionValues transitionValues2) {
 | |
|         return createAnimator(viewGroup, view, true);
 | |
|     }
 | |
| 
 | |
|     @Override // androidx.transition.Visibility
 | |
|     public Animator onDisappear(ViewGroup viewGroup, View view, TransitionValues transitionValues, TransitionValues transitionValues2) {
 | |
|         return createAnimator(viewGroup, view, false);
 | |
|     }
 | |
| 
 | |
|     private Animator createAnimator(ViewGroup viewGroup, View view, boolean z) {
 | |
|         AnimatorSet animatorSet = new AnimatorSet();
 | |
|         ArrayList arrayList = new ArrayList();
 | |
|         addAnimatorIfNeeded(arrayList, this.primaryAnimatorProvider, viewGroup, view, z);
 | |
|         addAnimatorIfNeeded(arrayList, this.secondaryAnimatorProvider, viewGroup, view, z);
 | |
|         Iterator<VisibilityAnimatorProvider> it = this.additionalAnimatorProviders.iterator();
 | |
|         while (it.hasNext()) {
 | |
|             addAnimatorIfNeeded(arrayList, it.next(), viewGroup, view, z);
 | |
|         }
 | |
|         maybeApplyThemeValues(viewGroup.getContext(), z);
 | |
|         AnimatorSetCompat.playTogether(animatorSet, arrayList);
 | |
|         return animatorSet;
 | |
|     }
 | |
| 
 | |
|     private static void addAnimatorIfNeeded(List<Animator> list, VisibilityAnimatorProvider visibilityAnimatorProvider, ViewGroup viewGroup, View view, boolean z) {
 | |
|         Animator createDisappear;
 | |
|         if (visibilityAnimatorProvider == null) {
 | |
|             return;
 | |
|         }
 | |
|         if (z) {
 | |
|             createDisappear = visibilityAnimatorProvider.createAppear(viewGroup, view);
 | |
|         } else {
 | |
|             createDisappear = visibilityAnimatorProvider.createDisappear(viewGroup, view);
 | |
|         }
 | |
|         if (createDisappear != null) {
 | |
|             list.add(createDisappear);
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     private void maybeApplyThemeValues(Context context, boolean z) {
 | |
|         TransitionUtils.maybeApplyThemeDuration(this, context, getDurationThemeAttrResId(z));
 | |
|         TransitionUtils.maybeApplyThemeInterpolator(this, context, getEasingThemeAttrResId(z), getDefaultEasingInterpolator(z));
 | |
|     }
 | |
| 
 | |
|     TimeInterpolator getDefaultEasingInterpolator(boolean z) {
 | |
|         return AnimationUtils.FAST_OUT_SLOW_IN_INTERPOLATOR;
 | |
|     }
 | |
| }
 |