508 lines
18 KiB
Java
508 lines
18 KiB
Java
package androidx.transition;
|
|
|
|
import android.animation.TimeInterpolator;
|
|
import android.annotation.SuppressLint;
|
|
import android.content.Context;
|
|
import android.content.res.TypedArray;
|
|
import android.content.res.XmlResourceParser;
|
|
import android.util.AndroidRuntimeException;
|
|
import android.util.AttributeSet;
|
|
import android.view.View;
|
|
import android.view.ViewGroup;
|
|
import androidx.annotation.IdRes;
|
|
import androidx.annotation.NonNull;
|
|
import androidx.annotation.Nullable;
|
|
import androidx.annotation.RestrictTo;
|
|
import androidx.core.content.res.TypedArrayUtils;
|
|
import androidx.transition.Transition;
|
|
import c.d.b.a.a;
|
|
import java.util.ArrayList;
|
|
import java.util.Iterator;
|
|
public class TransitionSet extends Transition {
|
|
private static final int FLAG_CHANGE_EPICENTER = 8;
|
|
private static final int FLAG_CHANGE_INTERPOLATOR = 1;
|
|
private static final int FLAG_CHANGE_PATH_MOTION = 4;
|
|
private static final int FLAG_CHANGE_PROPAGATION = 2;
|
|
public static final int ORDERING_SEQUENTIAL = 1;
|
|
public static final int ORDERING_TOGETHER = 0;
|
|
private int mChangeFlags = 0;
|
|
public int mCurrentListeners;
|
|
private boolean mPlayTogether = true;
|
|
public boolean mStarted = false;
|
|
private ArrayList<Transition> mTransitions = new ArrayList<>();
|
|
|
|
/* renamed from: androidx.transition.TransitionSet$1 reason: invalid class name */
|
|
public class AnonymousClass1 extends TransitionListenerAdapter {
|
|
public final /* synthetic */ Transition val$nextTransition;
|
|
|
|
public AnonymousClass1(Transition transition) {
|
|
this.val$nextTransition = transition;
|
|
}
|
|
|
|
@Override // androidx.transition.TransitionListenerAdapter, androidx.transition.Transition.TransitionListener
|
|
public void onTransitionEnd(@NonNull Transition transition) {
|
|
this.val$nextTransition.runAnimators();
|
|
transition.removeListener(this);
|
|
}
|
|
}
|
|
|
|
public static class TransitionSetListener extends TransitionListenerAdapter {
|
|
public TransitionSet mTransitionSet;
|
|
|
|
public TransitionSetListener(TransitionSet transitionSet) {
|
|
this.mTransitionSet = transitionSet;
|
|
}
|
|
|
|
@Override // androidx.transition.TransitionListenerAdapter, androidx.transition.Transition.TransitionListener
|
|
public void onTransitionEnd(@NonNull Transition transition) {
|
|
TransitionSet transitionSet = this.mTransitionSet;
|
|
int i = transitionSet.mCurrentListeners - 1;
|
|
transitionSet.mCurrentListeners = i;
|
|
if (i == 0) {
|
|
transitionSet.mStarted = false;
|
|
transitionSet.end();
|
|
}
|
|
transition.removeListener(this);
|
|
}
|
|
|
|
@Override // androidx.transition.TransitionListenerAdapter, androidx.transition.Transition.TransitionListener
|
|
public void onTransitionStart(@NonNull Transition transition) {
|
|
TransitionSet transitionSet = this.mTransitionSet;
|
|
if (!transitionSet.mStarted) {
|
|
transitionSet.start();
|
|
this.mTransitionSet.mStarted = true;
|
|
}
|
|
}
|
|
}
|
|
|
|
public TransitionSet() {
|
|
}
|
|
|
|
@SuppressLint({"RestrictedApi"})
|
|
public TransitionSet(Context context, AttributeSet attributeSet) {
|
|
super(context, attributeSet);
|
|
TypedArray obtainStyledAttributes = context.obtainStyledAttributes(attributeSet, Styleable.TRANSITION_SET);
|
|
setOrdering(TypedArrayUtils.getNamedInt(obtainStyledAttributes, (XmlResourceParser) attributeSet, "transitionOrdering", 0, 0));
|
|
obtainStyledAttributes.recycle();
|
|
}
|
|
|
|
private void addTransitionInternal(@NonNull Transition transition) {
|
|
this.mTransitions.add(transition);
|
|
transition.mParent = this;
|
|
}
|
|
|
|
private void setupStartEndListeners() {
|
|
TransitionSetListener transitionSetListener = new TransitionSetListener(this);
|
|
Iterator<Transition> it = this.mTransitions.iterator();
|
|
while (it.hasNext()) {
|
|
it.next().addListener(transitionSetListener);
|
|
}
|
|
this.mCurrentListeners = this.mTransitions.size();
|
|
}
|
|
|
|
@Override // androidx.transition.Transition
|
|
@NonNull
|
|
public TransitionSet addListener(@NonNull Transition.TransitionListener transitionListener) {
|
|
return (TransitionSet) super.addListener(transitionListener);
|
|
}
|
|
|
|
@Override // androidx.transition.Transition
|
|
@NonNull
|
|
public TransitionSet addTarget(@IdRes int i) {
|
|
for (int i2 = 0; i2 < this.mTransitions.size(); i2++) {
|
|
this.mTransitions.get(i2).addTarget(i);
|
|
}
|
|
return (TransitionSet) super.addTarget(i);
|
|
}
|
|
|
|
@Override // androidx.transition.Transition
|
|
@NonNull
|
|
public TransitionSet addTarget(@NonNull View view) {
|
|
for (int i = 0; i < this.mTransitions.size(); i++) {
|
|
this.mTransitions.get(i).addTarget(view);
|
|
}
|
|
return (TransitionSet) super.addTarget(view);
|
|
}
|
|
|
|
@Override // androidx.transition.Transition
|
|
@NonNull
|
|
public TransitionSet addTarget(@NonNull Class<?> cls) {
|
|
for (int i = 0; i < this.mTransitions.size(); i++) {
|
|
this.mTransitions.get(i).addTarget(cls);
|
|
}
|
|
return (TransitionSet) super.addTarget(cls);
|
|
}
|
|
|
|
@Override // androidx.transition.Transition
|
|
@NonNull
|
|
public TransitionSet addTarget(@NonNull String str) {
|
|
for (int i = 0; i < this.mTransitions.size(); i++) {
|
|
this.mTransitions.get(i).addTarget(str);
|
|
}
|
|
return (TransitionSet) super.addTarget(str);
|
|
}
|
|
|
|
@NonNull
|
|
public TransitionSet addTransition(@NonNull Transition transition) {
|
|
addTransitionInternal(transition);
|
|
long j = this.mDuration;
|
|
if (j >= 0) {
|
|
transition.setDuration(j);
|
|
}
|
|
if ((this.mChangeFlags & 1) != 0) {
|
|
transition.setInterpolator(getInterpolator());
|
|
}
|
|
if ((this.mChangeFlags & 2) != 0) {
|
|
transition.setPropagation(getPropagation());
|
|
}
|
|
if ((this.mChangeFlags & 4) != 0) {
|
|
transition.setPathMotion(getPathMotion());
|
|
}
|
|
if ((this.mChangeFlags & 8) != 0) {
|
|
transition.setEpicenterCallback(getEpicenterCallback());
|
|
}
|
|
return this;
|
|
}
|
|
|
|
@Override // androidx.transition.Transition
|
|
@RestrictTo({RestrictTo.Scope.LIBRARY_GROUP_PREFIX})
|
|
public void cancel() {
|
|
super.cancel();
|
|
int size = this.mTransitions.size();
|
|
for (int i = 0; i < size; i++) {
|
|
this.mTransitions.get(i).cancel();
|
|
}
|
|
}
|
|
|
|
@Override // androidx.transition.Transition
|
|
public void captureEndValues(@NonNull TransitionValues transitionValues) {
|
|
if (isValidTarget(transitionValues.view)) {
|
|
Iterator<Transition> it = this.mTransitions.iterator();
|
|
while (it.hasNext()) {
|
|
Transition next = it.next();
|
|
if (next.isValidTarget(transitionValues.view)) {
|
|
next.captureEndValues(transitionValues);
|
|
transitionValues.mTargetedTransitions.add(next);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
@Override // androidx.transition.Transition
|
|
public void capturePropagationValues(TransitionValues transitionValues) {
|
|
super.capturePropagationValues(transitionValues);
|
|
int size = this.mTransitions.size();
|
|
for (int i = 0; i < size; i++) {
|
|
this.mTransitions.get(i).capturePropagationValues(transitionValues);
|
|
}
|
|
}
|
|
|
|
@Override // androidx.transition.Transition
|
|
public void captureStartValues(@NonNull TransitionValues transitionValues) {
|
|
if (isValidTarget(transitionValues.view)) {
|
|
Iterator<Transition> it = this.mTransitions.iterator();
|
|
while (it.hasNext()) {
|
|
Transition next = it.next();
|
|
if (next.isValidTarget(transitionValues.view)) {
|
|
next.captureStartValues(transitionValues);
|
|
transitionValues.mTargetedTransitions.add(next);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
@Override // androidx.transition.Transition, java.lang.Object
|
|
public Transition clone() {
|
|
TransitionSet transitionSet = (TransitionSet) super.clone();
|
|
transitionSet.mTransitions = new ArrayList<>();
|
|
int size = this.mTransitions.size();
|
|
for (int i = 0; i < size; i++) {
|
|
transitionSet.addTransitionInternal(this.mTransitions.get(i).clone());
|
|
}
|
|
return transitionSet;
|
|
}
|
|
|
|
@Override // androidx.transition.Transition
|
|
@RestrictTo({RestrictTo.Scope.LIBRARY_GROUP_PREFIX})
|
|
public void createAnimators(ViewGroup viewGroup, TransitionValuesMaps transitionValuesMaps, TransitionValuesMaps transitionValuesMaps2, ArrayList<TransitionValues> arrayList, ArrayList<TransitionValues> arrayList2) {
|
|
long startDelay = getStartDelay();
|
|
int size = this.mTransitions.size();
|
|
for (int i = 0; i < size; i++) {
|
|
Transition transition = this.mTransitions.get(i);
|
|
if (startDelay > 0 && (this.mPlayTogether || i == 0)) {
|
|
long startDelay2 = transition.getStartDelay();
|
|
if (startDelay2 > 0) {
|
|
transition.setStartDelay(startDelay2 + startDelay);
|
|
} else {
|
|
transition.setStartDelay(startDelay);
|
|
}
|
|
}
|
|
transition.createAnimators(viewGroup, transitionValuesMaps, transitionValuesMaps2, arrayList, arrayList2);
|
|
}
|
|
}
|
|
|
|
@Override // androidx.transition.Transition
|
|
@NonNull
|
|
public Transition excludeTarget(int i, boolean z2) {
|
|
for (int i2 = 0; i2 < this.mTransitions.size(); i2++) {
|
|
this.mTransitions.get(i2).excludeTarget(i, z2);
|
|
}
|
|
return super.excludeTarget(i, z2);
|
|
}
|
|
|
|
@Override // androidx.transition.Transition
|
|
@NonNull
|
|
public Transition excludeTarget(@NonNull View view, boolean z2) {
|
|
for (int i = 0; i < this.mTransitions.size(); i++) {
|
|
this.mTransitions.get(i).excludeTarget(view, z2);
|
|
}
|
|
return super.excludeTarget(view, z2);
|
|
}
|
|
|
|
@Override // androidx.transition.Transition
|
|
@NonNull
|
|
public Transition excludeTarget(@NonNull Class<?> cls, boolean z2) {
|
|
for (int i = 0; i < this.mTransitions.size(); i++) {
|
|
this.mTransitions.get(i).excludeTarget(cls, z2);
|
|
}
|
|
return super.excludeTarget(cls, z2);
|
|
}
|
|
|
|
@Override // androidx.transition.Transition
|
|
@NonNull
|
|
public Transition excludeTarget(@NonNull String str, boolean z2) {
|
|
for (int i = 0; i < this.mTransitions.size(); i++) {
|
|
this.mTransitions.get(i).excludeTarget(str, z2);
|
|
}
|
|
return super.excludeTarget(str, z2);
|
|
}
|
|
|
|
@Override // androidx.transition.Transition
|
|
@RestrictTo({RestrictTo.Scope.LIBRARY_GROUP_PREFIX})
|
|
public void forceToEnd(ViewGroup viewGroup) {
|
|
super.forceToEnd(viewGroup);
|
|
int size = this.mTransitions.size();
|
|
for (int i = 0; i < size; i++) {
|
|
this.mTransitions.get(i).forceToEnd(viewGroup);
|
|
}
|
|
}
|
|
|
|
public int getOrdering() {
|
|
return !this.mPlayTogether ? 1 : 0;
|
|
}
|
|
|
|
@Nullable
|
|
public Transition getTransitionAt(int i) {
|
|
if (i < 0 || i >= this.mTransitions.size()) {
|
|
return null;
|
|
}
|
|
return this.mTransitions.get(i);
|
|
}
|
|
|
|
public int getTransitionCount() {
|
|
return this.mTransitions.size();
|
|
}
|
|
|
|
@Override // androidx.transition.Transition
|
|
@RestrictTo({RestrictTo.Scope.LIBRARY_GROUP_PREFIX})
|
|
public void pause(View view) {
|
|
super.pause(view);
|
|
int size = this.mTransitions.size();
|
|
for (int i = 0; i < size; i++) {
|
|
this.mTransitions.get(i).pause(view);
|
|
}
|
|
}
|
|
|
|
@Override // androidx.transition.Transition
|
|
@NonNull
|
|
public TransitionSet removeListener(@NonNull Transition.TransitionListener transitionListener) {
|
|
return (TransitionSet) super.removeListener(transitionListener);
|
|
}
|
|
|
|
@Override // androidx.transition.Transition
|
|
@NonNull
|
|
public TransitionSet removeTarget(@IdRes int i) {
|
|
for (int i2 = 0; i2 < this.mTransitions.size(); i2++) {
|
|
this.mTransitions.get(i2).removeTarget(i);
|
|
}
|
|
return (TransitionSet) super.removeTarget(i);
|
|
}
|
|
|
|
@Override // androidx.transition.Transition
|
|
@NonNull
|
|
public TransitionSet removeTarget(@NonNull View view) {
|
|
for (int i = 0; i < this.mTransitions.size(); i++) {
|
|
this.mTransitions.get(i).removeTarget(view);
|
|
}
|
|
return (TransitionSet) super.removeTarget(view);
|
|
}
|
|
|
|
@Override // androidx.transition.Transition
|
|
@NonNull
|
|
public TransitionSet removeTarget(@NonNull Class<?> cls) {
|
|
for (int i = 0; i < this.mTransitions.size(); i++) {
|
|
this.mTransitions.get(i).removeTarget(cls);
|
|
}
|
|
return (TransitionSet) super.removeTarget(cls);
|
|
}
|
|
|
|
@Override // androidx.transition.Transition
|
|
@NonNull
|
|
public TransitionSet removeTarget(@NonNull String str) {
|
|
for (int i = 0; i < this.mTransitions.size(); i++) {
|
|
this.mTransitions.get(i).removeTarget(str);
|
|
}
|
|
return (TransitionSet) super.removeTarget(str);
|
|
}
|
|
|
|
@NonNull
|
|
public TransitionSet removeTransition(@NonNull Transition transition) {
|
|
this.mTransitions.remove(transition);
|
|
transition.mParent = null;
|
|
return this;
|
|
}
|
|
|
|
@Override // androidx.transition.Transition
|
|
@RestrictTo({RestrictTo.Scope.LIBRARY_GROUP_PREFIX})
|
|
public void resume(View view) {
|
|
super.resume(view);
|
|
int size = this.mTransitions.size();
|
|
for (int i = 0; i < size; i++) {
|
|
this.mTransitions.get(i).resume(view);
|
|
}
|
|
}
|
|
|
|
@Override // androidx.transition.Transition
|
|
@RestrictTo({RestrictTo.Scope.LIBRARY_GROUP_PREFIX})
|
|
public void runAnimators() {
|
|
if (this.mTransitions.isEmpty()) {
|
|
start();
|
|
end();
|
|
return;
|
|
}
|
|
setupStartEndListeners();
|
|
if (!this.mPlayTogether) {
|
|
for (int i = 1; i < this.mTransitions.size(); i++) {
|
|
this.mTransitions.get(i - 1).addListener(new AnonymousClass1(this.mTransitions.get(i)));
|
|
}
|
|
Transition transition = this.mTransitions.get(0);
|
|
if (transition != null) {
|
|
transition.runAnimators();
|
|
return;
|
|
}
|
|
return;
|
|
}
|
|
Iterator<Transition> it = this.mTransitions.iterator();
|
|
while (it.hasNext()) {
|
|
it.next().runAnimators();
|
|
}
|
|
}
|
|
|
|
@Override // androidx.transition.Transition
|
|
public void setCanRemoveViews(boolean z2) {
|
|
super.setCanRemoveViews(z2);
|
|
int size = this.mTransitions.size();
|
|
for (int i = 0; i < size; i++) {
|
|
this.mTransitions.get(i).setCanRemoveViews(z2);
|
|
}
|
|
}
|
|
|
|
@Override // androidx.transition.Transition
|
|
@NonNull
|
|
public TransitionSet setDuration(long j) {
|
|
ArrayList<Transition> arrayList;
|
|
super.setDuration(j);
|
|
if (this.mDuration >= 0 && (arrayList = this.mTransitions) != null) {
|
|
int size = arrayList.size();
|
|
for (int i = 0; i < size; i++) {
|
|
this.mTransitions.get(i).setDuration(j);
|
|
}
|
|
}
|
|
return this;
|
|
}
|
|
|
|
@Override // androidx.transition.Transition
|
|
public void setEpicenterCallback(Transition.EpicenterCallback epicenterCallback) {
|
|
super.setEpicenterCallback(epicenterCallback);
|
|
this.mChangeFlags |= 8;
|
|
int size = this.mTransitions.size();
|
|
for (int i = 0; i < size; i++) {
|
|
this.mTransitions.get(i).setEpicenterCallback(epicenterCallback);
|
|
}
|
|
}
|
|
|
|
@Override // androidx.transition.Transition
|
|
@NonNull
|
|
public TransitionSet setInterpolator(@Nullable TimeInterpolator timeInterpolator) {
|
|
this.mChangeFlags |= 1;
|
|
ArrayList<Transition> arrayList = this.mTransitions;
|
|
if (arrayList != null) {
|
|
int size = arrayList.size();
|
|
for (int i = 0; i < size; i++) {
|
|
this.mTransitions.get(i).setInterpolator(timeInterpolator);
|
|
}
|
|
}
|
|
return (TransitionSet) super.setInterpolator(timeInterpolator);
|
|
}
|
|
|
|
@NonNull
|
|
public TransitionSet setOrdering(int i) {
|
|
if (i == 0) {
|
|
this.mPlayTogether = true;
|
|
} else if (i == 1) {
|
|
this.mPlayTogether = false;
|
|
} else {
|
|
throw new AndroidRuntimeException(a.k("Invalid parameter for TransitionSet ordering: ", i));
|
|
}
|
|
return this;
|
|
}
|
|
|
|
@Override // androidx.transition.Transition
|
|
public void setPathMotion(PathMotion pathMotion) {
|
|
super.setPathMotion(pathMotion);
|
|
this.mChangeFlags |= 4;
|
|
if (this.mTransitions != null) {
|
|
for (int i = 0; i < this.mTransitions.size(); i++) {
|
|
this.mTransitions.get(i).setPathMotion(pathMotion);
|
|
}
|
|
}
|
|
}
|
|
|
|
@Override // androidx.transition.Transition
|
|
public void setPropagation(TransitionPropagation transitionPropagation) {
|
|
super.setPropagation(transitionPropagation);
|
|
this.mChangeFlags |= 2;
|
|
int size = this.mTransitions.size();
|
|
for (int i = 0; i < size; i++) {
|
|
this.mTransitions.get(i).setPropagation(transitionPropagation);
|
|
}
|
|
}
|
|
|
|
@Override // androidx.transition.Transition
|
|
public TransitionSet setSceneRoot(ViewGroup viewGroup) {
|
|
super.setSceneRoot(viewGroup);
|
|
int size = this.mTransitions.size();
|
|
for (int i = 0; i < size; i++) {
|
|
this.mTransitions.get(i).setSceneRoot(viewGroup);
|
|
}
|
|
return this;
|
|
}
|
|
|
|
@Override // androidx.transition.Transition
|
|
@NonNull
|
|
public TransitionSet setStartDelay(long j) {
|
|
return (TransitionSet) super.setStartDelay(j);
|
|
}
|
|
|
|
@Override // androidx.transition.Transition
|
|
public String toString(String str) {
|
|
String transition = super.toString(str);
|
|
for (int i = 0; i < this.mTransitions.size(); i++) {
|
|
StringBuilder P = a.P(transition, "\n");
|
|
P.append(this.mTransitions.get(i).toString(str + " "));
|
|
transition = P.toString();
|
|
}
|
|
return transition;
|
|
}
|
|
}
|