package androidx.fragment.app; import android.animation.Animator; import android.animation.AnimatorListenerAdapter; import android.content.Context; import android.graphics.Rect; import android.util.Log; import android.view.View; import android.view.ViewGroup; import android.view.animation.Animation; import androidx.collection.ArrayMap; import androidx.core.app.SharedElementCallback; import androidx.core.os.CancellationSignal; import androidx.core.util.Preconditions; import androidx.core.view.OneShotPreDrawListener; import androidx.core.view.ViewCompat; import androidx.core.view.ViewGroupCompat; import androidx.fragment.app.FragmentAnim; import androidx.fragment.app.SpecialEffectsController; import java.util.ArrayList; import java.util.Collection; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; /* loaded from: classes.dex */ class DefaultSpecialEffectsController extends SpecialEffectsController { DefaultSpecialEffectsController(ViewGroup viewGroup) { super(viewGroup); } @Override // androidx.fragment.app.SpecialEffectsController void executeOperations(List list, boolean z) { SpecialEffectsController.Operation operation = null; SpecialEffectsController.Operation operation2 = null; for (SpecialEffectsController.Operation operation3 : list) { SpecialEffectsController.Operation.State from = SpecialEffectsController.Operation.State.from(operation3.getFragment().mView); int i = AnonymousClass10.$SwitchMap$androidx$fragment$app$SpecialEffectsController$Operation$State[operation3.getFinalState().ordinal()]; if (i == 1 || i == 2 || i == 3) { if (from == SpecialEffectsController.Operation.State.VISIBLE && operation == null) { operation = operation3; } } else if (i == 4 && from != SpecialEffectsController.Operation.State.VISIBLE) { operation2 = operation3; } } ArrayList arrayList = new ArrayList(); ArrayList arrayList2 = new ArrayList(); final ArrayList arrayList3 = new ArrayList(list); for (final SpecialEffectsController.Operation operation4 : list) { CancellationSignal cancellationSignal = new CancellationSignal(); operation4.markStartedSpecialEffect(cancellationSignal); arrayList.add(new AnimationInfo(operation4, cancellationSignal, z)); CancellationSignal cancellationSignal2 = new CancellationSignal(); operation4.markStartedSpecialEffect(cancellationSignal2); boolean z2 = false; if (z) { if (operation4 != operation) { arrayList2.add(new TransitionInfo(operation4, cancellationSignal2, z, z2)); operation4.addCompletionListener(new Runnable() { // from class: androidx.fragment.app.DefaultSpecialEffectsController.1 @Override // java.lang.Runnable public void run() { if (arrayList3.contains(operation4)) { arrayList3.remove(operation4); DefaultSpecialEffectsController.this.applyContainerChanges(operation4); } } }); } z2 = true; arrayList2.add(new TransitionInfo(operation4, cancellationSignal2, z, z2)); operation4.addCompletionListener(new Runnable() { // from class: androidx.fragment.app.DefaultSpecialEffectsController.1 @Override // java.lang.Runnable public void run() { if (arrayList3.contains(operation4)) { arrayList3.remove(operation4); DefaultSpecialEffectsController.this.applyContainerChanges(operation4); } } }); } else { if (operation4 != operation2) { arrayList2.add(new TransitionInfo(operation4, cancellationSignal2, z, z2)); operation4.addCompletionListener(new Runnable() { // from class: androidx.fragment.app.DefaultSpecialEffectsController.1 @Override // java.lang.Runnable public void run() { if (arrayList3.contains(operation4)) { arrayList3.remove(operation4); DefaultSpecialEffectsController.this.applyContainerChanges(operation4); } } }); } z2 = true; arrayList2.add(new TransitionInfo(operation4, cancellationSignal2, z, z2)); operation4.addCompletionListener(new Runnable() { // from class: androidx.fragment.app.DefaultSpecialEffectsController.1 @Override // java.lang.Runnable public void run() { if (arrayList3.contains(operation4)) { arrayList3.remove(operation4); DefaultSpecialEffectsController.this.applyContainerChanges(operation4); } } }); } } Map startTransitions = startTransitions(arrayList2, arrayList3, z, operation, operation2); startAnimations(arrayList, arrayList3, startTransitions.containsValue(true), startTransitions); Iterator it = arrayList3.iterator(); while (it.hasNext()) { applyContainerChanges(it.next()); } arrayList3.clear(); } /* renamed from: androidx.fragment.app.DefaultSpecialEffectsController$10, reason: invalid class name */ static /* synthetic */ class AnonymousClass10 { static final /* synthetic */ int[] $SwitchMap$androidx$fragment$app$SpecialEffectsController$Operation$State; static { int[] iArr = new int[SpecialEffectsController.Operation.State.values().length]; $SwitchMap$androidx$fragment$app$SpecialEffectsController$Operation$State = iArr; try { iArr[SpecialEffectsController.Operation.State.GONE.ordinal()] = 1; } catch (NoSuchFieldError unused) { } try { $SwitchMap$androidx$fragment$app$SpecialEffectsController$Operation$State[SpecialEffectsController.Operation.State.INVISIBLE.ordinal()] = 2; } catch (NoSuchFieldError unused2) { } try { $SwitchMap$androidx$fragment$app$SpecialEffectsController$Operation$State[SpecialEffectsController.Operation.State.REMOVED.ordinal()] = 3; } catch (NoSuchFieldError unused3) { } try { $SwitchMap$androidx$fragment$app$SpecialEffectsController$Operation$State[SpecialEffectsController.Operation.State.VISIBLE.ordinal()] = 4; } catch (NoSuchFieldError unused4) { } } } private void startAnimations(List list, List list2, boolean z, Map map) { final ViewGroup container = getContainer(); Context context = container.getContext(); ArrayList arrayList = new ArrayList(); boolean z2 = false; for (final AnimationInfo animationInfo : list) { if (animationInfo.isVisibilityUnchanged()) { animationInfo.completeSpecialEffect(); } else { FragmentAnim.AnimationOrAnimator animation = animationInfo.getAnimation(context); if (animation == null) { animationInfo.completeSpecialEffect(); } else { final Animator animator = animation.animator; if (animator == null) { arrayList.add(animationInfo); } else { final SpecialEffectsController.Operation operation = animationInfo.getOperation(); Fragment fragment = operation.getFragment(); if (Boolean.TRUE.equals(map.get(operation))) { if (FragmentManager.isLoggingEnabled(2)) { Log.v("FragmentManager", "Ignoring Animator set on " + fragment + " as this Fragment was involved in a Transition."); } animationInfo.completeSpecialEffect(); } else { final boolean z3 = operation.getFinalState() == SpecialEffectsController.Operation.State.GONE; if (z3) { list2.remove(operation); } final View view = fragment.mView; container.startViewTransition(view); animator.addListener(new AnimatorListenerAdapter() { // from class: androidx.fragment.app.DefaultSpecialEffectsController.2 @Override // android.animation.AnimatorListenerAdapter, android.animation.Animator.AnimatorListener public void onAnimationEnd(Animator animator2) { container.endViewTransition(view); if (z3) { operation.getFinalState().applyState(view); } animationInfo.completeSpecialEffect(); } }); animator.setTarget(view); animator.start(); animationInfo.getSignal().setOnCancelListener(new CancellationSignal.OnCancelListener() { // from class: androidx.fragment.app.DefaultSpecialEffectsController.3 @Override // androidx.core.os.CancellationSignal.OnCancelListener public void onCancel() { animator.end(); } }); z2 = true; } } } } } Iterator it = arrayList.iterator(); while (it.hasNext()) { final AnimationInfo animationInfo2 = (AnimationInfo) it.next(); SpecialEffectsController.Operation operation2 = animationInfo2.getOperation(); Fragment fragment2 = operation2.getFragment(); if (z) { if (FragmentManager.isLoggingEnabled(2)) { Log.v("FragmentManager", "Ignoring Animation set on " + fragment2 + " as Animations cannot run alongside Transitions."); } animationInfo2.completeSpecialEffect(); } else if (z2) { if (FragmentManager.isLoggingEnabled(2)) { Log.v("FragmentManager", "Ignoring Animation set on " + fragment2 + " as Animations cannot run alongside Animators."); } animationInfo2.completeSpecialEffect(); } else { final View view2 = fragment2.mView; Animation animation2 = (Animation) Preconditions.checkNotNull(((FragmentAnim.AnimationOrAnimator) Preconditions.checkNotNull(animationInfo2.getAnimation(context))).animation); if (operation2.getFinalState() != SpecialEffectsController.Operation.State.REMOVED) { view2.startAnimation(animation2); animationInfo2.completeSpecialEffect(); } else { container.startViewTransition(view2); FragmentAnim.EndViewTransitionAnimation endViewTransitionAnimation = new FragmentAnim.EndViewTransitionAnimation(animation2, container, view2); endViewTransitionAnimation.setAnimationListener(new Animation.AnimationListener() { // from class: androidx.fragment.app.DefaultSpecialEffectsController.4 @Override // android.view.animation.Animation.AnimationListener public void onAnimationRepeat(Animation animation3) { } @Override // android.view.animation.Animation.AnimationListener public void onAnimationStart(Animation animation3) { } @Override // android.view.animation.Animation.AnimationListener public void onAnimationEnd(Animation animation3) { container.post(new Runnable() { // from class: androidx.fragment.app.DefaultSpecialEffectsController.4.1 @Override // java.lang.Runnable public void run() { container.endViewTransition(view2); animationInfo2.completeSpecialEffect(); } }); } }); view2.startAnimation(endViewTransitionAnimation); } animationInfo2.getSignal().setOnCancelListener(new CancellationSignal.OnCancelListener() { // from class: androidx.fragment.app.DefaultSpecialEffectsController.5 @Override // androidx.core.os.CancellationSignal.OnCancelListener public void onCancel() { view2.clearAnimation(); container.endViewTransition(view2); animationInfo2.completeSpecialEffect(); } }); } } } private Map startTransitions(List list, List list2, final boolean z, final SpecialEffectsController.Operation operation, final SpecialEffectsController.Operation operation2) { Iterator it; View view; Object obj; ArrayList arrayList; Object obj2; ArrayList arrayList2; HashMap hashMap; SpecialEffectsController.Operation operation3; View view2; Object mergeTransitionsTogether; ArrayMap arrayMap; SpecialEffectsController.Operation operation4; FragmentTransitionImpl fragmentTransitionImpl; ArrayList arrayList3; HashMap hashMap2; Rect rect; SpecialEffectsController.Operation operation5; View view3; ArrayList arrayList4; DefaultSpecialEffectsController defaultSpecialEffectsController; SharedElementCallback enterTransitionCallback; SharedElementCallback exitTransitionCallback; ArrayList arrayList5; int i; View view4; final View view5; String findKeyForValue; ArrayList arrayList6; DefaultSpecialEffectsController defaultSpecialEffectsController2 = this; boolean z2 = z; SpecialEffectsController.Operation operation6 = operation; SpecialEffectsController.Operation operation7 = operation2; HashMap hashMap3 = new HashMap(); final FragmentTransitionImpl fragmentTransitionImpl2 = null; for (TransitionInfo transitionInfo : list) { if (!transitionInfo.isVisibilityUnchanged()) { FragmentTransitionImpl handlingImpl = transitionInfo.getHandlingImpl(); if (fragmentTransitionImpl2 == null) { fragmentTransitionImpl2 = handlingImpl; } else if (handlingImpl != null && fragmentTransitionImpl2 != handlingImpl) { throw new IllegalArgumentException("Mixing framework transitions and AndroidX transitions is not allowed. Fragment " + transitionInfo.getOperation().getFragment() + " returned Transition " + transitionInfo.getTransition() + " which uses a different Transition type than other Fragments."); } } } if (fragmentTransitionImpl2 == null) { for (TransitionInfo transitionInfo2 : list) { hashMap3.put(transitionInfo2.getOperation(), false); transitionInfo2.completeSpecialEffect(); } return hashMap3; } View view6 = new View(getContainer().getContext()); final Rect rect2 = new Rect(); ArrayList arrayList7 = new ArrayList<>(); ArrayList arrayList8 = new ArrayList<>(); ArrayMap arrayMap2 = new ArrayMap(); Object obj3 = null; View view7 = null; boolean z3 = false; for (TransitionInfo transitionInfo3 : list) { if (!transitionInfo3.hasSharedElementTransition() || operation6 == null || operation7 == null) { arrayMap = arrayMap2; operation4 = operation7; fragmentTransitionImpl = fragmentTransitionImpl2; arrayList3 = arrayList8; hashMap2 = hashMap3; rect = rect2; operation5 = operation6; view3 = view6; DefaultSpecialEffectsController defaultSpecialEffectsController3 = defaultSpecialEffectsController2; arrayList4 = arrayList7; defaultSpecialEffectsController = defaultSpecialEffectsController3; view7 = view7; } else { Object wrapTransitionInSet = fragmentTransitionImpl2.wrapTransitionInSet(fragmentTransitionImpl2.cloneTransition(transitionInfo3.getSharedElementTransition())); ArrayList sharedElementSourceNames = operation2.getFragment().getSharedElementSourceNames(); ArrayList sharedElementSourceNames2 = operation.getFragment().getSharedElementSourceNames(); ArrayList sharedElementTargetNames = operation.getFragment().getSharedElementTargetNames(); View view8 = view7; int i2 = 0; while (i2 < sharedElementTargetNames.size()) { int indexOf = sharedElementSourceNames.indexOf(sharedElementTargetNames.get(i2)); ArrayList arrayList9 = sharedElementTargetNames; if (indexOf != -1) { sharedElementSourceNames.set(indexOf, sharedElementSourceNames2.get(i2)); } i2++; sharedElementTargetNames = arrayList9; } ArrayList sharedElementTargetNames2 = operation2.getFragment().getSharedElementTargetNames(); if (!z2) { enterTransitionCallback = operation.getFragment().getExitTransitionCallback(); exitTransitionCallback = operation2.getFragment().getEnterTransitionCallback(); } else { enterTransitionCallback = operation.getFragment().getEnterTransitionCallback(); exitTransitionCallback = operation2.getFragment().getExitTransitionCallback(); } int i3 = 0; for (int size = sharedElementSourceNames.size(); i3 < size; size = size) { arrayMap2.put(sharedElementSourceNames.get(i3), sharedElementTargetNames2.get(i3)); i3++; } ArrayMap arrayMap3 = new ArrayMap<>(); defaultSpecialEffectsController2.findNamedViews(arrayMap3, operation.getFragment().mView); arrayMap3.retainAll(sharedElementSourceNames); if (enterTransitionCallback != null) { enterTransitionCallback.onMapSharedElements(sharedElementSourceNames, arrayMap3); int size2 = sharedElementSourceNames.size() - 1; while (size2 >= 0) { String str = sharedElementSourceNames.get(size2); View view9 = arrayMap3.get(str); if (view9 == null) { arrayMap2.remove(str); arrayList6 = sharedElementSourceNames; } else { arrayList6 = sharedElementSourceNames; if (!str.equals(ViewCompat.getTransitionName(view9))) { arrayMap2.put(ViewCompat.getTransitionName(view9), (String) arrayMap2.remove(str)); } } size2--; sharedElementSourceNames = arrayList6; } arrayList5 = sharedElementSourceNames; } else { arrayList5 = sharedElementSourceNames; arrayMap2.retainAll(arrayMap3.keySet()); } final ArrayMap arrayMap4 = new ArrayMap<>(); defaultSpecialEffectsController2.findNamedViews(arrayMap4, operation2.getFragment().mView); arrayMap4.retainAll(sharedElementTargetNames2); arrayMap4.retainAll(arrayMap2.values()); if (exitTransitionCallback != null) { exitTransitionCallback.onMapSharedElements(sharedElementTargetNames2, arrayMap4); for (int size3 = sharedElementTargetNames2.size() - 1; size3 >= 0; size3--) { String str2 = sharedElementTargetNames2.get(size3); View view10 = arrayMap4.get(str2); if (view10 == null) { String findKeyForValue2 = FragmentTransition.findKeyForValue(arrayMap2, str2); if (findKeyForValue2 != null) { arrayMap2.remove(findKeyForValue2); } } else if (!str2.equals(ViewCompat.getTransitionName(view10)) && (findKeyForValue = FragmentTransition.findKeyForValue(arrayMap2, str2)) != null) { arrayMap2.put(findKeyForValue, ViewCompat.getTransitionName(view10)); } } } else { FragmentTransition.retainValues(arrayMap2, arrayMap4); } defaultSpecialEffectsController2.retainMatchingViews(arrayMap3, arrayMap2.keySet()); defaultSpecialEffectsController2.retainMatchingViews(arrayMap4, arrayMap2.values()); if (arrayMap2.isEmpty()) { arrayList7.clear(); arrayList8.clear(); arrayMap = arrayMap2; arrayList3 = arrayList8; rect = rect2; view3 = view6; fragmentTransitionImpl = fragmentTransitionImpl2; view7 = view8; obj3 = null; operation4 = operation2; hashMap2 = hashMap3; operation5 = operation; DefaultSpecialEffectsController defaultSpecialEffectsController4 = defaultSpecialEffectsController2; arrayList4 = arrayList7; defaultSpecialEffectsController = defaultSpecialEffectsController4; } else { FragmentTransition.callSharedElementStartEnd(operation2.getFragment(), operation.getFragment(), z2, arrayMap3, true); HashMap hashMap4 = hashMap3; arrayMap = arrayMap2; View view11 = view6; ArrayList arrayList10 = arrayList8; arrayList4 = arrayList7; OneShotPreDrawListener.add(getContainer(), new Runnable() { // from class: androidx.fragment.app.DefaultSpecialEffectsController.6 @Override // java.lang.Runnable public void run() { FragmentTransition.callSharedElementStartEnd(operation2.getFragment(), operation.getFragment(), z, arrayMap4, false); } }); arrayList4.addAll(arrayMap3.values()); if (arrayList5.isEmpty()) { i = 0; view7 = view8; } else { i = 0; View view12 = arrayMap3.get(arrayList5.get(0)); fragmentTransitionImpl2.setEpicenter(wrapTransitionInSet, view12); view7 = view12; } arrayList10.addAll(arrayMap4.values()); if (sharedElementTargetNames2.isEmpty() || (view5 = arrayMap4.get(sharedElementTargetNames2.get(i))) == null) { defaultSpecialEffectsController = this; view4 = view11; } else { defaultSpecialEffectsController = this; OneShotPreDrawListener.add(getContainer(), new Runnable() { // from class: androidx.fragment.app.DefaultSpecialEffectsController.7 @Override // java.lang.Runnable public void run() { fragmentTransitionImpl2.getBoundsOnScreen(view5, rect2); } }); view4 = view11; z3 = true; } fragmentTransitionImpl2.setSharedElementTargets(wrapTransitionInSet, view4, arrayList4); rect = rect2; view3 = view4; arrayList3 = arrayList10; fragmentTransitionImpl = fragmentTransitionImpl2; fragmentTransitionImpl2.scheduleRemoveTargets(wrapTransitionInSet, null, null, null, null, wrapTransitionInSet, arrayList3); operation5 = operation; hashMap2 = hashMap4; hashMap2.put(operation5, true); operation4 = operation2; hashMap2.put(operation4, true); obj3 = wrapTransitionInSet; } } z2 = z; rect2 = rect; view6 = view3; arrayList8 = arrayList3; operation6 = operation5; hashMap3 = hashMap2; operation7 = operation4; fragmentTransitionImpl2 = fragmentTransitionImpl; arrayMap2 = arrayMap; ArrayList arrayList11 = arrayList4; defaultSpecialEffectsController2 = defaultSpecialEffectsController; arrayList7 = arrayList11; } View view13 = view7; ArrayMap arrayMap5 = arrayMap2; SpecialEffectsController.Operation operation8 = operation7; FragmentTransitionImpl fragmentTransitionImpl3 = fragmentTransitionImpl2; boolean z4 = false; ArrayList arrayList12 = arrayList8; HashMap hashMap5 = hashMap3; Rect rect3 = rect2; SpecialEffectsController.Operation operation9 = operation6; View view14 = view6; DefaultSpecialEffectsController defaultSpecialEffectsController5 = defaultSpecialEffectsController2; ArrayList arrayList13 = arrayList7; ArrayList arrayList14 = new ArrayList(); Iterator it2 = list.iterator(); Object obj4 = null; Object obj5 = null; while (it2.hasNext()) { TransitionInfo next = it2.next(); if (next.isVisibilityUnchanged()) { it = it2; hashMap5.put(next.getOperation(), Boolean.valueOf(z4)); next.completeSpecialEffect(); } else { it = it2; Object cloneTransition = fragmentTransitionImpl3.cloneTransition(next.getTransition()); SpecialEffectsController.Operation operation10 = next.getOperation(); boolean z5 = obj3 != null && (operation10 == operation9 || operation10 == operation8); if (cloneTransition == null) { if (!z5) { hashMap5.put(operation10, Boolean.valueOf(z4)); next.completeSpecialEffect(); } arrayList = arrayList13; view = view14; arrayList2 = arrayList12; mergeTransitionsTogether = obj4; obj2 = obj5; hashMap = hashMap5; view2 = view13; } else { final ArrayList arrayList15 = new ArrayList<>(); Object obj6 = obj4; defaultSpecialEffectsController5.captureTransitioningViews(arrayList15, operation10.getFragment().mView); if (z5) { if (operation10 == operation9) { arrayList15.removeAll(arrayList13); } else { arrayList15.removeAll(arrayList12); } } if (arrayList15.isEmpty()) { fragmentTransitionImpl3.addTarget(cloneTransition, view14); arrayList = arrayList13; view = view14; arrayList2 = arrayList12; operation3 = operation10; obj2 = obj5; hashMap = hashMap5; obj = obj6; } else { fragmentTransitionImpl3.addTargets(cloneTransition, arrayList15); view = view14; obj = obj6; arrayList = arrayList13; obj2 = obj5; arrayList2 = arrayList12; hashMap = hashMap5; fragmentTransitionImpl3.scheduleRemoveTargets(cloneTransition, cloneTransition, arrayList15, null, null, null, null); if (operation10.getFinalState() == SpecialEffectsController.Operation.State.GONE) { operation3 = operation10; list2.remove(operation3); ArrayList arrayList16 = new ArrayList<>(arrayList15); arrayList16.remove(operation3.getFragment().mView); fragmentTransitionImpl3.scheduleHideFragmentView(cloneTransition, operation3.getFragment().mView, arrayList16); OneShotPreDrawListener.add(getContainer(), new Runnable() { // from class: androidx.fragment.app.DefaultSpecialEffectsController.8 @Override // java.lang.Runnable public void run() { FragmentTransition.setViewVisibility(arrayList15, 4); } }); } else { operation3 = operation10; } } if (operation3.getFinalState() == SpecialEffectsController.Operation.State.VISIBLE) { arrayList14.addAll(arrayList15); if (z3) { fragmentTransitionImpl3.setEpicenter(cloneTransition, rect3); } view2 = view13; } else { view2 = view13; fragmentTransitionImpl3.setEpicenter(cloneTransition, view2); } hashMap.put(operation3, true); if (next.isOverlapAllowed()) { obj2 = fragmentTransitionImpl3.mergeTransitionsTogether(obj2, cloneTransition, null); mergeTransitionsTogether = obj; } else { mergeTransitionsTogether = fragmentTransitionImpl3.mergeTransitionsTogether(obj, cloneTransition, null); } } view13 = view2; obj5 = obj2; obj4 = mergeTransitionsTogether; hashMap5 = hashMap; view14 = view; arrayList13 = arrayList; arrayList12 = arrayList2; z4 = false; } it2 = it; } ArrayList arrayList17 = arrayList13; ArrayList arrayList18 = arrayList12; HashMap hashMap6 = hashMap5; Object mergeTransitionsInSequence = fragmentTransitionImpl3.mergeTransitionsInSequence(obj5, obj4, obj3); for (final TransitionInfo transitionInfo4 : list) { if (!transitionInfo4.isVisibilityUnchanged()) { Object transition = transitionInfo4.getTransition(); SpecialEffectsController.Operation operation11 = transitionInfo4.getOperation(); boolean z6 = obj3 != null && (operation11 == operation9 || operation11 == operation8); if (transition != null || z6) { if (!ViewCompat.isLaidOut(getContainer())) { if (FragmentManager.isLoggingEnabled(2)) { Log.v("FragmentManager", "SpecialEffectsController: Container " + getContainer() + " has not been laid out. Completing operation " + operation11); } transitionInfo4.completeSpecialEffect(); } else { fragmentTransitionImpl3.setListenerForTransitionEnd(transitionInfo4.getOperation().getFragment(), mergeTransitionsInSequence, transitionInfo4.getSignal(), new Runnable() { // from class: androidx.fragment.app.DefaultSpecialEffectsController.9 @Override // java.lang.Runnable public void run() { transitionInfo4.completeSpecialEffect(); } }); } } } } if (!ViewCompat.isLaidOut(getContainer())) { return hashMap6; } FragmentTransition.setViewVisibility(arrayList14, 4); ArrayList prepareSetNameOverridesReordered = fragmentTransitionImpl3.prepareSetNameOverridesReordered(arrayList18); fragmentTransitionImpl3.beginDelayedTransition(getContainer(), mergeTransitionsInSequence); fragmentTransitionImpl3.setNameOverridesReordered(getContainer(), arrayList17, arrayList18, prepareSetNameOverridesReordered, arrayMap5); FragmentTransition.setViewVisibility(arrayList14, 0); fragmentTransitionImpl3.swapSharedElementTargets(obj3, arrayList17, arrayList18); return hashMap6; } void retainMatchingViews(ArrayMap arrayMap, Collection collection) { Iterator> it = arrayMap.entrySet().iterator(); while (it.hasNext()) { if (!collection.contains(ViewCompat.getTransitionName(it.next().getValue()))) { it.remove(); } } } void captureTransitioningViews(ArrayList arrayList, View view) { if (view instanceof ViewGroup) { ViewGroup viewGroup = (ViewGroup) view; if (ViewGroupCompat.isTransitionGroup(viewGroup)) { if (arrayList.contains(view)) { return; } arrayList.add(viewGroup); return; } int childCount = viewGroup.getChildCount(); for (int i = 0; i < childCount; i++) { View childAt = viewGroup.getChildAt(i); if (childAt.getVisibility() == 0) { captureTransitioningViews(arrayList, childAt); } } return; } if (arrayList.contains(view)) { return; } arrayList.add(view); } void findNamedViews(Map map, View view) { String transitionName = ViewCompat.getTransitionName(view); if (transitionName != null) { map.put(transitionName, view); } if (view instanceof ViewGroup) { ViewGroup viewGroup = (ViewGroup) view; int childCount = viewGroup.getChildCount(); for (int i = 0; i < childCount; i++) { View childAt = viewGroup.getChildAt(i); if (childAt.getVisibility() == 0) { findNamedViews(map, childAt); } } } } void applyContainerChanges(SpecialEffectsController.Operation operation) { operation.getFinalState().applyState(operation.getFragment().mView); } private static class SpecialEffectsInfo { private final SpecialEffectsController.Operation mOperation; private final CancellationSignal mSignal; SpecialEffectsController.Operation getOperation() { return this.mOperation; } CancellationSignal getSignal() { return this.mSignal; } SpecialEffectsInfo(SpecialEffectsController.Operation operation, CancellationSignal cancellationSignal) { this.mOperation = operation; this.mSignal = cancellationSignal; } boolean isVisibilityUnchanged() { SpecialEffectsController.Operation.State from = SpecialEffectsController.Operation.State.from(this.mOperation.getFragment().mView); SpecialEffectsController.Operation.State finalState = this.mOperation.getFinalState(); return from == finalState || !(from == SpecialEffectsController.Operation.State.VISIBLE || finalState == SpecialEffectsController.Operation.State.VISIBLE); } void completeSpecialEffect() { this.mOperation.completeSpecialEffect(this.mSignal); } } private static class AnimationInfo extends SpecialEffectsInfo { private FragmentAnim.AnimationOrAnimator mAnimation; private boolean mIsPop; private boolean mLoadedAnim; AnimationInfo(SpecialEffectsController.Operation operation, CancellationSignal cancellationSignal, boolean z) { super(operation, cancellationSignal); this.mLoadedAnim = false; this.mIsPop = z; } FragmentAnim.AnimationOrAnimator getAnimation(Context context) { if (this.mLoadedAnim) { return this.mAnimation; } FragmentAnim.AnimationOrAnimator loadAnimation = FragmentAnim.loadAnimation(context, getOperation().getFragment(), getOperation().getFinalState() == SpecialEffectsController.Operation.State.VISIBLE, this.mIsPop); this.mAnimation = loadAnimation; this.mLoadedAnim = true; return loadAnimation; } } private static class TransitionInfo extends SpecialEffectsInfo { private final boolean mOverlapAllowed; private final Object mSharedElementTransition; private final Object mTransition; public Object getSharedElementTransition() { return this.mSharedElementTransition; } Object getTransition() { return this.mTransition; } public boolean hasSharedElementTransition() { return this.mSharedElementTransition != null; } boolean isOverlapAllowed() { return this.mOverlapAllowed; } TransitionInfo(SpecialEffectsController.Operation operation, CancellationSignal cancellationSignal, boolean z, boolean z2) { super(operation, cancellationSignal); Object exitTransition; Object enterTransition; boolean allowEnterTransitionOverlap; if (operation.getFinalState() == SpecialEffectsController.Operation.State.VISIBLE) { if (z) { enterTransition = operation.getFragment().getReenterTransition(); } else { enterTransition = operation.getFragment().getEnterTransition(); } this.mTransition = enterTransition; if (z) { allowEnterTransitionOverlap = operation.getFragment().getAllowReturnTransitionOverlap(); } else { allowEnterTransitionOverlap = operation.getFragment().getAllowEnterTransitionOverlap(); } this.mOverlapAllowed = allowEnterTransitionOverlap; } else { if (z) { exitTransition = operation.getFragment().getReturnTransition(); } else { exitTransition = operation.getFragment().getExitTransition(); } this.mTransition = exitTransition; this.mOverlapAllowed = true; } if (!z2) { this.mSharedElementTransition = null; } else if (z) { this.mSharedElementTransition = operation.getFragment().getSharedElementReturnTransition(); } else { this.mSharedElementTransition = operation.getFragment().getSharedElementEnterTransition(); } } FragmentTransitionImpl getHandlingImpl() { FragmentTransitionImpl handlingImpl = getHandlingImpl(this.mTransition); FragmentTransitionImpl handlingImpl2 = getHandlingImpl(this.mSharedElementTransition); if (handlingImpl == null || handlingImpl2 == null || handlingImpl == handlingImpl2) { return handlingImpl != null ? handlingImpl : handlingImpl2; } throw new IllegalArgumentException("Mixing framework transitions and AndroidX transitions is not allowed. Fragment " + getOperation().getFragment() + " returned Transition " + this.mTransition + " which uses a different Transition type than its shared element transition " + this.mSharedElementTransition); } private FragmentTransitionImpl getHandlingImpl(Object obj) { if (obj == null) { return null; } if (FragmentTransition.PLATFORM_IMPL != null && FragmentTransition.PLATFORM_IMPL.canHandle(obj)) { return FragmentTransition.PLATFORM_IMPL; } if (FragmentTransition.SUPPORT_IMPL != null && FragmentTransition.SUPPORT_IMPL.canHandle(obj)) { return FragmentTransition.SUPPORT_IMPL; } throw new IllegalArgumentException("Transition " + obj + " for fragment " + getOperation().getFragment() + " is not a valid framework Transition or AndroidX Transition"); } } }