Rabbit-R1/android (non root)/java/sources/com/google/android/material/transition/MaterialVisibility.java
2024-05-21 17:08:36 -04:00

109 lines
4.4 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: classes2.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;
}
/* JADX INFO: Access modifiers changed from: protected */
public 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;
}
}