ADD week 5
This commit is contained in:
		| @@ -0,0 +1,108 @@ | ||||
| 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; | ||||
|     } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user