discord-jadx/app/src/main/java/androidx/fragment/app/FragmentTransition.java

979 lines
50 KiB
Java

package androidx.fragment.app;
import android.content.Context;
import android.graphics.Rect;
import android.util.SparseArray;
import android.view.View;
import android.view.ViewGroup;
import androidx.annotation.NonNull;
import androidx.collection.ArrayMap;
import androidx.core.app.SharedElementCallback;
import androidx.core.os.CancellationSignal;
import androidx.core.view.OneShotPreDrawListener;
import androidx.core.view.ViewCompat;
import androidx.fragment.app.FragmentTransaction;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
public class FragmentTransition {
private static final int[] INVERSE_OPS = {0, 3, 0, 1, 5, 4, 7, 6, 9, 8, 10};
public static final FragmentTransitionImpl PLATFORM_IMPL = new FragmentTransitionCompat21();
public static final FragmentTransitionImpl SUPPORT_IMPL = resolveSupportImpl();
/* renamed from: androidx.fragment.app.FragmentTransition$1 reason: invalid class name */
public class AnonymousClass1 implements Runnable {
public final /* synthetic */ Callback val$callback;
public final /* synthetic */ Fragment val$outFragment;
public final /* synthetic */ CancellationSignal val$signal;
public AnonymousClass1(Callback callback, Fragment fragment, CancellationSignal cancellationSignal) {
this.val$callback = callback;
this.val$outFragment = fragment;
this.val$signal = cancellationSignal;
}
@Override // java.lang.Runnable
public void run() {
this.val$callback.onComplete(this.val$outFragment, this.val$signal);
}
}
/* renamed from: androidx.fragment.app.FragmentTransition$2 reason: invalid class name */
public class AnonymousClass2 implements Runnable {
public final /* synthetic */ ArrayList val$exitingViews;
public AnonymousClass2(ArrayList arrayList) {
this.val$exitingViews = arrayList;
}
@Override // java.lang.Runnable
public void run() {
FragmentTransition.setViewVisibility(this.val$exitingViews, 4);
}
}
/* renamed from: androidx.fragment.app.FragmentTransition$3 reason: invalid class name */
public class AnonymousClass3 implements Runnable {
public final /* synthetic */ Callback val$callback;
public final /* synthetic */ Fragment val$outFragment;
public final /* synthetic */ CancellationSignal val$signal;
public AnonymousClass3(Callback callback, Fragment fragment, CancellationSignal cancellationSignal) {
this.val$callback = callback;
this.val$outFragment = fragment;
this.val$signal = cancellationSignal;
}
@Override // java.lang.Runnable
public void run() {
this.val$callback.onComplete(this.val$outFragment, this.val$signal);
}
}
/* renamed from: androidx.fragment.app.FragmentTransition$4 reason: invalid class name */
public class AnonymousClass4 implements Runnable {
public final /* synthetic */ Object val$enterTransition;
public final /* synthetic */ ArrayList val$enteringViews;
public final /* synthetic */ Object val$exitTransition;
public final /* synthetic */ ArrayList val$exitingViews;
public final /* synthetic */ FragmentTransitionImpl val$impl;
public final /* synthetic */ Fragment val$inFragment;
public final /* synthetic */ View val$nonExistentView;
public final /* synthetic */ ArrayList val$sharedElementsIn;
public AnonymousClass4(Object obj, FragmentTransitionImpl fragmentTransitionImpl, View view, Fragment fragment, ArrayList arrayList, ArrayList arrayList2, ArrayList arrayList3, Object obj2) {
this.val$enterTransition = obj;
this.val$impl = fragmentTransitionImpl;
this.val$nonExistentView = view;
this.val$inFragment = fragment;
this.val$sharedElementsIn = arrayList;
this.val$enteringViews = arrayList2;
this.val$exitingViews = arrayList3;
this.val$exitTransition = obj2;
}
@Override // java.lang.Runnable
public void run() {
Object obj = this.val$enterTransition;
if (obj != null) {
this.val$impl.removeTarget(obj, this.val$nonExistentView);
this.val$enteringViews.addAll(FragmentTransition.configureEnteringExitingViews(this.val$impl, this.val$enterTransition, this.val$inFragment, this.val$sharedElementsIn, this.val$nonExistentView));
}
if (this.val$exitingViews != null) {
if (this.val$exitTransition != null) {
ArrayList<View> arrayList = new ArrayList<>();
arrayList.add(this.val$nonExistentView);
this.val$impl.replaceTargets(this.val$exitTransition, this.val$exitingViews, arrayList);
}
this.val$exitingViews.clear();
this.val$exitingViews.add(this.val$nonExistentView);
}
}
}
/* renamed from: androidx.fragment.app.FragmentTransition$5 reason: invalid class name */
public class AnonymousClass5 implements Runnable {
public final /* synthetic */ Rect val$epicenter;
public final /* synthetic */ View val$epicenterView;
public final /* synthetic */ FragmentTransitionImpl val$impl;
public final /* synthetic */ Fragment val$inFragment;
public final /* synthetic */ boolean val$inIsPop;
public final /* synthetic */ ArrayMap val$inSharedElements;
public final /* synthetic */ Fragment val$outFragment;
public AnonymousClass5(Fragment fragment, Fragment fragment2, boolean z2, ArrayMap arrayMap, View view, FragmentTransitionImpl fragmentTransitionImpl, Rect rect) {
this.val$inFragment = fragment;
this.val$outFragment = fragment2;
this.val$inIsPop = z2;
this.val$inSharedElements = arrayMap;
this.val$epicenterView = view;
this.val$impl = fragmentTransitionImpl;
this.val$epicenter = rect;
}
@Override // java.lang.Runnable
public void run() {
FragmentTransition.callSharedElementStartEnd(this.val$inFragment, this.val$outFragment, this.val$inIsPop, this.val$inSharedElements, false);
View view = this.val$epicenterView;
if (view != null) {
this.val$impl.getBoundsOnScreen(view, this.val$epicenter);
}
}
}
/* renamed from: androidx.fragment.app.FragmentTransition$6 reason: invalid class name */
public class AnonymousClass6 implements Runnable {
public final /* synthetic */ Object val$enterTransition;
public final /* synthetic */ Object val$finalSharedElementTransition;
public final /* synthetic */ FragmentContainerTransition val$fragments;
public final /* synthetic */ FragmentTransitionImpl val$impl;
public final /* synthetic */ Rect val$inEpicenter;
public final /* synthetic */ Fragment val$inFragment;
public final /* synthetic */ boolean val$inIsPop;
public final /* synthetic */ ArrayMap val$nameOverrides;
public final /* synthetic */ View val$nonExistentView;
public final /* synthetic */ Fragment val$outFragment;
public final /* synthetic */ ArrayList val$sharedElementsIn;
public final /* synthetic */ ArrayList val$sharedElementsOut;
public AnonymousClass6(FragmentTransitionImpl fragmentTransitionImpl, ArrayMap arrayMap, Object obj, FragmentContainerTransition fragmentContainerTransition, ArrayList arrayList, View view, Fragment fragment, Fragment fragment2, boolean z2, ArrayList arrayList2, Object obj2, Rect rect) {
this.val$impl = fragmentTransitionImpl;
this.val$nameOverrides = arrayMap;
this.val$finalSharedElementTransition = obj;
this.val$fragments = fragmentContainerTransition;
this.val$sharedElementsIn = arrayList;
this.val$nonExistentView = view;
this.val$inFragment = fragment;
this.val$outFragment = fragment2;
this.val$inIsPop = z2;
this.val$sharedElementsOut = arrayList2;
this.val$enterTransition = obj2;
this.val$inEpicenter = rect;
}
@Override // java.lang.Runnable
public void run() {
ArrayMap<String, View> captureInSharedElements = FragmentTransition.captureInSharedElements(this.val$impl, this.val$nameOverrides, this.val$finalSharedElementTransition, this.val$fragments);
if (captureInSharedElements != null) {
this.val$sharedElementsIn.addAll(captureInSharedElements.values());
this.val$sharedElementsIn.add(this.val$nonExistentView);
}
FragmentTransition.callSharedElementStartEnd(this.val$inFragment, this.val$outFragment, this.val$inIsPop, captureInSharedElements, false);
Object obj = this.val$finalSharedElementTransition;
if (obj != null) {
this.val$impl.swapSharedElementTargets(obj, this.val$sharedElementsOut, this.val$sharedElementsIn);
View inEpicenterView = FragmentTransition.getInEpicenterView(captureInSharedElements, this.val$fragments, this.val$enterTransition, this.val$inIsPop);
if (inEpicenterView != null) {
this.val$impl.getBoundsOnScreen(inEpicenterView, this.val$inEpicenter);
}
}
}
}
public interface Callback {
void onComplete(@NonNull Fragment fragment, @NonNull CancellationSignal cancellationSignal);
void onStart(@NonNull Fragment fragment, @NonNull CancellationSignal cancellationSignal);
}
public static class FragmentContainerTransition {
public Fragment firstOut;
public boolean firstOutIsPop;
public BackStackRecord firstOutTransaction;
public Fragment lastIn;
public boolean lastInIsPop;
public BackStackRecord lastInTransaction;
}
private FragmentTransition() {
}
private static void addSharedElementsWithMatchingNames(ArrayList<View> arrayList, ArrayMap<String, View> arrayMap, Collection<String> collection) {
for (int size = arrayMap.size() - 1; size >= 0; size--) {
View valueAt = arrayMap.valueAt(size);
if (collection.contains(ViewCompat.getTransitionName(valueAt))) {
arrayList.add(valueAt);
}
}
}
/* JADX WARNING: Code restructure failed: missing block: B:29:0x0039, code lost:
if (r0.mAdded != false) goto L_0x008c;
*/
/* JADX WARNING: Code restructure failed: missing block: B:51:0x006e, code lost:
r9 = true;
*/
/* JADX WARNING: Code restructure failed: missing block: B:63:0x008a, code lost:
if (r0.mHidden == false) goto L_0x008c;
*/
/* JADX WARNING: Code restructure failed: missing block: B:64:0x008c, code lost:
r9 = true;
*/
/* JADX WARNING: Removed duplicated region for block: B:69:0x009a */
/* JADX WARNING: Removed duplicated region for block: B:79:0x00b5 */
/* JADX WARNING: Removed duplicated region for block: B:86:0x00d9 A[ADDED_TO_REGION] */
/* JADX WARNING: Removed duplicated region for block: B:92:? A[ADDED_TO_REGION, RETURN, SYNTHETIC] */
private static void addToFirstInLastOut(BackStackRecord backStackRecord, FragmentTransaction.Op op, SparseArray<FragmentContainerTransition> sparseArray, boolean z2, boolean z3) {
int i;
boolean z4;
boolean z5;
FragmentContainerTransition fragmentContainerTransition;
boolean z6;
Fragment fragment = op.mFragment;
if (fragment != null && (i = fragment.mContainerId) != 0) {
int i2 = z2 ? INVERSE_OPS[op.mCmd] : op.mCmd;
boolean z7 = false;
boolean z8 = true;
if (i2 != 1) {
if (i2 != 3) {
if (i2 != 4) {
if (i2 != 5) {
if (i2 != 6) {
if (i2 != 7) {
z4 = false;
z8 = false;
z5 = false;
fragmentContainerTransition = sparseArray.get(i);
if (z7) {
fragmentContainerTransition = ensureContainer(fragmentContainerTransition, sparseArray, i);
fragmentContainerTransition.lastIn = fragment;
fragmentContainerTransition.lastInIsPop = z2;
fragmentContainerTransition.lastInTransaction = backStackRecord;
}
if (!z3 && z8) {
if (fragmentContainerTransition != null && fragmentContainerTransition.firstOut == fragment) {
fragmentContainerTransition.firstOut = null;
}
if (!backStackRecord.mReorderingAllowed) {
FragmentManager fragmentManager = backStackRecord.mManager;
fragmentManager.getFragmentStore().makeActive(fragmentManager.createOrGetFragmentStateManager(fragment));
fragmentManager.moveToState(fragment);
}
}
if (z5 && (fragmentContainerTransition == null || fragmentContainerTransition.firstOut == null)) {
fragmentContainerTransition = ensureContainer(fragmentContainerTransition, sparseArray, i);
fragmentContainerTransition.firstOut = fragment;
fragmentContainerTransition.firstOutIsPop = z2;
fragmentContainerTransition.firstOutTransaction = backStackRecord;
}
if (z3 && z4 && fragmentContainerTransition != null && fragmentContainerTransition.lastIn == fragment) {
fragmentContainerTransition.lastIn = null;
return;
}
return;
}
}
} else if (z3) {
if (fragment.mHiddenChanged) {
if (!fragment.mHidden) {
}
}
z6 = false;
z7 = z6;
z4 = false;
z5 = false;
fragmentContainerTransition = sparseArray.get(i);
if (z7) {
}
fragmentContainerTransition.firstOut = null;
if (!backStackRecord.mReorderingAllowed) {
}
fragmentContainerTransition = ensureContainer(fragmentContainerTransition, sparseArray, i);
fragmentContainerTransition.firstOut = fragment;
fragmentContainerTransition.firstOutIsPop = z2;
fragmentContainerTransition.firstOutTransaction = backStackRecord;
if (z3) {
return;
}
return;
} else {
z6 = fragment.mHidden;
z7 = z6;
z4 = false;
z5 = false;
fragmentContainerTransition = sparseArray.get(i);
if (z7) {
}
fragmentContainerTransition.firstOut = null;
if (!backStackRecord.mReorderingAllowed) {
}
fragmentContainerTransition = ensureContainer(fragmentContainerTransition, sparseArray, i);
fragmentContainerTransition.firstOut = fragment;
fragmentContainerTransition.firstOutIsPop = z2;
fragmentContainerTransition.firstOutTransaction = backStackRecord;
if (z3) {
}
}
} else if (!z3) {
boolean z9 = false;
z5 = z9;
z4 = true;
z8 = false;
fragmentContainerTransition = sparseArray.get(i);
if (z7) {
}
fragmentContainerTransition.firstOut = null;
if (!backStackRecord.mReorderingAllowed) {
}
fragmentContainerTransition = ensureContainer(fragmentContainerTransition, sparseArray, i);
fragmentContainerTransition.firstOut = fragment;
fragmentContainerTransition.firstOutIsPop = z2;
fragmentContainerTransition.firstOutTransaction = backStackRecord;
if (z3) {
}
} else {
boolean z9 = false;
z5 = z9;
z4 = true;
z8 = false;
fragmentContainerTransition = sparseArray.get(i);
if (z7) {
}
fragmentContainerTransition.firstOut = null;
if (!backStackRecord.mReorderingAllowed) {
}
fragmentContainerTransition = ensureContainer(fragmentContainerTransition, sparseArray, i);
fragmentContainerTransition.firstOut = fragment;
fragmentContainerTransition.firstOutIsPop = z2;
fragmentContainerTransition.firstOutTransaction = backStackRecord;
if (z3) {
}
}
}
if (!z3) {
boolean z9 = false;
z5 = z9;
z4 = true;
z8 = false;
fragmentContainerTransition = sparseArray.get(i);
if (z7) {
}
fragmentContainerTransition.firstOut = null;
if (!backStackRecord.mReorderingAllowed) {
}
fragmentContainerTransition = ensureContainer(fragmentContainerTransition, sparseArray, i);
fragmentContainerTransition.firstOut = fragment;
fragmentContainerTransition.firstOutIsPop = z2;
fragmentContainerTransition.firstOutTransaction = backStackRecord;
if (z3) {
}
} else {
boolean z9 = false;
z5 = z9;
z4 = true;
z8 = false;
fragmentContainerTransition = sparseArray.get(i);
if (z7) {
}
fragmentContainerTransition.firstOut = null;
if (!backStackRecord.mReorderingAllowed) {
}
fragmentContainerTransition = ensureContainer(fragmentContainerTransition, sparseArray, i);
fragmentContainerTransition.firstOut = fragment;
fragmentContainerTransition.firstOutIsPop = z2;
fragmentContainerTransition.firstOutTransaction = backStackRecord;
if (z3) {
}
}
}
if (z3) {
z6 = fragment.mIsNewlyAdded;
z7 = z6;
z4 = false;
z5 = false;
fragmentContainerTransition = sparseArray.get(i);
if (z7) {
}
fragmentContainerTransition.firstOut = null;
if (!backStackRecord.mReorderingAllowed) {
}
fragmentContainerTransition = ensureContainer(fragmentContainerTransition, sparseArray, i);
fragmentContainerTransition.firstOut = fragment;
fragmentContainerTransition.firstOutIsPop = z2;
fragmentContainerTransition.firstOutTransaction = backStackRecord;
if (z3) {
}
} else {
if (!fragment.mAdded) {
}
z6 = false;
z7 = z6;
z4 = false;
z5 = false;
fragmentContainerTransition = sparseArray.get(i);
if (z7) {
}
fragmentContainerTransition.firstOut = null;
if (!backStackRecord.mReorderingAllowed) {
}
fragmentContainerTransition = ensureContainer(fragmentContainerTransition, sparseArray, i);
fragmentContainerTransition.firstOut = fragment;
fragmentContainerTransition.firstOutIsPop = z2;
fragmentContainerTransition.firstOutTransaction = backStackRecord;
if (z3) {
}
}
}
}
public static void calculateFragments(BackStackRecord backStackRecord, SparseArray<FragmentContainerTransition> sparseArray, boolean z2) {
int size = backStackRecord.mOps.size();
for (int i = 0; i < size; i++) {
addToFirstInLastOut(backStackRecord, backStackRecord.mOps.get(i), sparseArray, false, z2);
}
}
private static ArrayMap<String, String> calculateNameOverrides(int i, ArrayList<BackStackRecord> arrayList, ArrayList<Boolean> arrayList2, int i2, int i3) {
ArrayList<String> arrayList3;
ArrayList<String> arrayList4;
ArrayMap<String, String> arrayMap = new ArrayMap<>();
for (int i4 = i3 - 1; i4 >= i2; i4--) {
BackStackRecord backStackRecord = arrayList.get(i4);
if (backStackRecord.interactsWith(i)) {
boolean booleanValue = arrayList2.get(i4).booleanValue();
ArrayList<String> arrayList5 = backStackRecord.mSharedElementSourceNames;
if (arrayList5 != null) {
int size = arrayList5.size();
if (booleanValue) {
arrayList3 = backStackRecord.mSharedElementSourceNames;
arrayList4 = backStackRecord.mSharedElementTargetNames;
} else {
ArrayList<String> arrayList6 = backStackRecord.mSharedElementSourceNames;
arrayList3 = backStackRecord.mSharedElementTargetNames;
arrayList4 = arrayList6;
}
for (int i5 = 0; i5 < size; i5++) {
String str = arrayList4.get(i5);
String str2 = arrayList3.get(i5);
String remove = arrayMap.remove(str2);
if (remove != null) {
arrayMap.put(str, remove);
} else {
arrayMap.put(str, str2);
}
}
}
}
}
return arrayMap;
}
public static void calculatePopFragments(BackStackRecord backStackRecord, SparseArray<FragmentContainerTransition> sparseArray, boolean z2) {
if (backStackRecord.mManager.getContainer().onHasView()) {
for (int size = backStackRecord.mOps.size() - 1; size >= 0; size--) {
addToFirstInLastOut(backStackRecord, backStackRecord.mOps.get(size), sparseArray, true, z2);
}
}
}
public static void callSharedElementStartEnd(Fragment fragment, Fragment fragment2, boolean z2, ArrayMap<String, View> arrayMap, boolean z3) {
SharedElementCallback enterTransitionCallback = z2 ? fragment2.getEnterTransitionCallback() : fragment.getEnterTransitionCallback();
if (enterTransitionCallback != null) {
ArrayList arrayList = new ArrayList();
ArrayList arrayList2 = new ArrayList();
int size = arrayMap == null ? 0 : arrayMap.size();
for (int i = 0; i < size; i++) {
arrayList2.add(arrayMap.keyAt(i));
arrayList.add(arrayMap.valueAt(i));
}
if (z3) {
enterTransitionCallback.onSharedElementStart(arrayList2, arrayList, null);
} else {
enterTransitionCallback.onSharedElementEnd(arrayList2, arrayList, null);
}
}
}
private static boolean canHandleAll(FragmentTransitionImpl fragmentTransitionImpl, List<Object> list) {
int size = list.size();
for (int i = 0; i < size; i++) {
if (!fragmentTransitionImpl.canHandle(list.get(i))) {
return false;
}
}
return true;
}
public static ArrayMap<String, View> captureInSharedElements(FragmentTransitionImpl fragmentTransitionImpl, ArrayMap<String, String> arrayMap, Object obj, FragmentContainerTransition fragmentContainerTransition) {
SharedElementCallback sharedElementCallback;
ArrayList<String> arrayList;
String findKeyForValue;
Fragment fragment = fragmentContainerTransition.lastIn;
View view = fragment.getView();
if (arrayMap.isEmpty() || obj == null || view == null) {
arrayMap.clear();
return null;
}
ArrayMap<String, View> arrayMap2 = new ArrayMap<>();
fragmentTransitionImpl.findNamedViews(arrayMap2, view);
BackStackRecord backStackRecord = fragmentContainerTransition.lastInTransaction;
if (fragmentContainerTransition.lastInIsPop) {
sharedElementCallback = fragment.getExitTransitionCallback();
arrayList = backStackRecord.mSharedElementSourceNames;
} else {
sharedElementCallback = fragment.getEnterTransitionCallback();
arrayList = backStackRecord.mSharedElementTargetNames;
}
if (arrayList != null) {
arrayMap2.retainAll(arrayList);
arrayMap2.retainAll(arrayMap.values());
}
if (sharedElementCallback != null) {
sharedElementCallback.onMapSharedElements(arrayList, arrayMap2);
for (int size = arrayList.size() - 1; size >= 0; size--) {
String str = arrayList.get(size);
View view2 = arrayMap2.get(str);
if (view2 == null) {
String findKeyForValue2 = findKeyForValue(arrayMap, str);
if (findKeyForValue2 != null) {
arrayMap.remove(findKeyForValue2);
}
} else if (!str.equals(ViewCompat.getTransitionName(view2)) && (findKeyForValue = findKeyForValue(arrayMap, str)) != null) {
arrayMap.put(findKeyForValue, ViewCompat.getTransitionName(view2));
}
}
} else {
retainValues(arrayMap, arrayMap2);
}
return arrayMap2;
}
private static ArrayMap<String, View> captureOutSharedElements(FragmentTransitionImpl fragmentTransitionImpl, ArrayMap<String, String> arrayMap, Object obj, FragmentContainerTransition fragmentContainerTransition) {
SharedElementCallback sharedElementCallback;
ArrayList<String> arrayList;
if (arrayMap.isEmpty() || obj == null) {
arrayMap.clear();
return null;
}
Fragment fragment = fragmentContainerTransition.firstOut;
ArrayMap<String, View> arrayMap2 = new ArrayMap<>();
fragmentTransitionImpl.findNamedViews(arrayMap2, fragment.requireView());
BackStackRecord backStackRecord = fragmentContainerTransition.firstOutTransaction;
if (fragmentContainerTransition.firstOutIsPop) {
sharedElementCallback = fragment.getEnterTransitionCallback();
arrayList = backStackRecord.mSharedElementTargetNames;
} else {
sharedElementCallback = fragment.getExitTransitionCallback();
arrayList = backStackRecord.mSharedElementSourceNames;
}
if (arrayList != null) {
arrayMap2.retainAll(arrayList);
}
if (sharedElementCallback != null) {
sharedElementCallback.onMapSharedElements(arrayList, arrayMap2);
for (int size = arrayList.size() - 1; size >= 0; size--) {
String str = arrayList.get(size);
View view = arrayMap2.get(str);
if (view == null) {
arrayMap.remove(str);
} else if (!str.equals(ViewCompat.getTransitionName(view))) {
arrayMap.put(ViewCompat.getTransitionName(view), arrayMap.remove(str));
}
}
} else {
arrayMap.retainAll(arrayMap2.keySet());
}
return arrayMap2;
}
private static FragmentTransitionImpl chooseImpl(Fragment fragment, Fragment fragment2) {
ArrayList arrayList = new ArrayList();
if (fragment != null) {
Object exitTransition = fragment.getExitTransition();
if (exitTransition != null) {
arrayList.add(exitTransition);
}
Object returnTransition = fragment.getReturnTransition();
if (returnTransition != null) {
arrayList.add(returnTransition);
}
Object sharedElementReturnTransition = fragment.getSharedElementReturnTransition();
if (sharedElementReturnTransition != null) {
arrayList.add(sharedElementReturnTransition);
}
}
if (fragment2 != null) {
Object enterTransition = fragment2.getEnterTransition();
if (enterTransition != null) {
arrayList.add(enterTransition);
}
Object reenterTransition = fragment2.getReenterTransition();
if (reenterTransition != null) {
arrayList.add(reenterTransition);
}
Object sharedElementEnterTransition = fragment2.getSharedElementEnterTransition();
if (sharedElementEnterTransition != null) {
arrayList.add(sharedElementEnterTransition);
}
}
if (arrayList.isEmpty()) {
return null;
}
FragmentTransitionImpl fragmentTransitionImpl = PLATFORM_IMPL;
if (fragmentTransitionImpl != null && canHandleAll(fragmentTransitionImpl, arrayList)) {
return fragmentTransitionImpl;
}
FragmentTransitionImpl fragmentTransitionImpl2 = SUPPORT_IMPL;
if (fragmentTransitionImpl2 != null && canHandleAll(fragmentTransitionImpl2, arrayList)) {
return fragmentTransitionImpl2;
}
if (fragmentTransitionImpl == null && fragmentTransitionImpl2 == null) {
return null;
}
throw new IllegalArgumentException("Invalid Transition types");
}
public static ArrayList<View> configureEnteringExitingViews(FragmentTransitionImpl fragmentTransitionImpl, Object obj, Fragment fragment, ArrayList<View> arrayList, View view) {
if (obj == null) {
return null;
}
ArrayList<View> arrayList2 = new ArrayList<>();
View view2 = fragment.getView();
if (view2 != null) {
fragmentTransitionImpl.captureTransitioningViews(arrayList2, view2);
}
if (arrayList != null) {
arrayList2.removeAll(arrayList);
}
if (arrayList2.isEmpty()) {
return arrayList2;
}
arrayList2.add(view);
fragmentTransitionImpl.addTargets(obj, arrayList2);
return arrayList2;
}
private static Object configureSharedElementsOrdered(FragmentTransitionImpl fragmentTransitionImpl, ViewGroup viewGroup, View view, ArrayMap<String, String> arrayMap, FragmentContainerTransition fragmentContainerTransition, ArrayList<View> arrayList, ArrayList<View> arrayList2, Object obj, Object obj2) {
ArrayMap<String, String> arrayMap2;
Object obj3;
Object obj4;
Rect rect;
Fragment fragment = fragmentContainerTransition.lastIn;
Fragment fragment2 = fragmentContainerTransition.firstOut;
if (fragment == null || fragment2 == null) {
return null;
}
boolean z2 = fragmentContainerTransition.lastInIsPop;
if (arrayMap.isEmpty()) {
arrayMap2 = arrayMap;
obj3 = null;
} else {
obj3 = getSharedElementTransition(fragmentTransitionImpl, fragment, fragment2, z2);
arrayMap2 = arrayMap;
}
ArrayMap<String, View> captureOutSharedElements = captureOutSharedElements(fragmentTransitionImpl, arrayMap2, obj3, fragmentContainerTransition);
if (arrayMap.isEmpty()) {
obj4 = null;
} else {
arrayList.addAll(captureOutSharedElements.values());
obj4 = obj3;
}
if (obj == null && obj2 == null && obj4 == null) {
return null;
}
callSharedElementStartEnd(fragment, fragment2, z2, captureOutSharedElements, true);
if (obj4 != null) {
rect = new Rect();
fragmentTransitionImpl.setSharedElementTargets(obj4, view, arrayList);
setOutEpicenter(fragmentTransitionImpl, obj4, obj2, captureOutSharedElements, fragmentContainerTransition.firstOutIsPop, fragmentContainerTransition.firstOutTransaction);
if (obj != null) {
fragmentTransitionImpl.setEpicenter(obj, rect);
}
} else {
rect = null;
}
OneShotPreDrawListener.add(viewGroup, new AnonymousClass6(fragmentTransitionImpl, arrayMap, obj4, fragmentContainerTransition, arrayList2, view, fragment, fragment2, z2, arrayList, obj, rect));
return obj4;
}
private static Object configureSharedElementsReordered(FragmentTransitionImpl fragmentTransitionImpl, ViewGroup viewGroup, View view, ArrayMap<String, String> arrayMap, FragmentContainerTransition fragmentContainerTransition, ArrayList<View> arrayList, ArrayList<View> arrayList2, Object obj, Object obj2) {
Object obj3;
Rect rect;
View view2;
Fragment fragment = fragmentContainerTransition.lastIn;
Fragment fragment2 = fragmentContainerTransition.firstOut;
if (fragment != null) {
fragment.requireView().setVisibility(0);
}
if (fragment == null || fragment2 == null) {
return null;
}
boolean z2 = fragmentContainerTransition.lastInIsPop;
Object sharedElementTransition = arrayMap.isEmpty() ? null : getSharedElementTransition(fragmentTransitionImpl, fragment, fragment2, z2);
ArrayMap<String, View> captureOutSharedElements = captureOutSharedElements(fragmentTransitionImpl, arrayMap, sharedElementTransition, fragmentContainerTransition);
ArrayMap<String, View> captureInSharedElements = captureInSharedElements(fragmentTransitionImpl, arrayMap, sharedElementTransition, fragmentContainerTransition);
if (arrayMap.isEmpty()) {
if (captureOutSharedElements != null) {
captureOutSharedElements.clear();
}
if (captureInSharedElements != null) {
captureInSharedElements.clear();
}
obj3 = null;
} else {
addSharedElementsWithMatchingNames(arrayList, captureOutSharedElements, arrayMap.keySet());
addSharedElementsWithMatchingNames(arrayList2, captureInSharedElements, arrayMap.values());
obj3 = sharedElementTransition;
}
if (obj == null && obj2 == null && obj3 == null) {
return null;
}
callSharedElementStartEnd(fragment, fragment2, z2, captureOutSharedElements, true);
if (obj3 != null) {
arrayList2.add(view);
fragmentTransitionImpl.setSharedElementTargets(obj3, view, arrayList);
setOutEpicenter(fragmentTransitionImpl, obj3, obj2, captureOutSharedElements, fragmentContainerTransition.firstOutIsPop, fragmentContainerTransition.firstOutTransaction);
Rect rect2 = new Rect();
View inEpicenterView = getInEpicenterView(captureInSharedElements, fragmentContainerTransition, obj, z2);
if (inEpicenterView != null) {
fragmentTransitionImpl.setEpicenter(obj, rect2);
}
rect = rect2;
view2 = inEpicenterView;
} else {
view2 = null;
rect = null;
}
OneShotPreDrawListener.add(viewGroup, new AnonymousClass5(fragment, fragment2, z2, captureInSharedElements, view2, fragmentTransitionImpl, rect));
return obj3;
}
private static void configureTransitionsOrdered(@NonNull ViewGroup viewGroup, FragmentContainerTransition fragmentContainerTransition, View view, ArrayMap<String, String> arrayMap, Callback callback) {
Object obj;
Fragment fragment = fragmentContainerTransition.lastIn;
Fragment fragment2 = fragmentContainerTransition.firstOut;
FragmentTransitionImpl chooseImpl = chooseImpl(fragment2, fragment);
if (chooseImpl != null) {
boolean z2 = fragmentContainerTransition.lastInIsPop;
boolean z3 = fragmentContainerTransition.firstOutIsPop;
Object enterTransition = getEnterTransition(chooseImpl, fragment, z2);
Object exitTransition = getExitTransition(chooseImpl, fragment2, z3);
ArrayList arrayList = new ArrayList();
ArrayList<View> arrayList2 = new ArrayList<>();
Object configureSharedElementsOrdered = configureSharedElementsOrdered(chooseImpl, viewGroup, view, arrayMap, fragmentContainerTransition, arrayList, arrayList2, enterTransition, exitTransition);
if (enterTransition == null && configureSharedElementsOrdered == null) {
obj = exitTransition;
if (obj == null) {
return;
}
} else {
obj = exitTransition;
}
ArrayList<View> configureEnteringExitingViews = configureEnteringExitingViews(chooseImpl, obj, fragment2, arrayList, view);
if (configureEnteringExitingViews == null || configureEnteringExitingViews.isEmpty()) {
obj = null;
}
chooseImpl.addTarget(enterTransition, view);
Object mergeTransitions = mergeTransitions(chooseImpl, enterTransition, obj, configureSharedElementsOrdered, fragment, fragmentContainerTransition.lastInIsPop);
if (!(fragment2 == null || configureEnteringExitingViews == null || (configureEnteringExitingViews.size() <= 0 && arrayList.size() <= 0))) {
CancellationSignal cancellationSignal = new CancellationSignal();
callback.onStart(fragment2, cancellationSignal);
chooseImpl.setListenerForTransitionEnd(fragment2, mergeTransitions, cancellationSignal, new AnonymousClass3(callback, fragment2, cancellationSignal));
}
if (mergeTransitions != null) {
ArrayList<View> arrayList3 = new ArrayList<>();
chooseImpl.scheduleRemoveTargets(mergeTransitions, enterTransition, arrayList3, obj, configureEnteringExitingViews, configureSharedElementsOrdered, arrayList2);
scheduleTargetChange(chooseImpl, viewGroup, fragment, view, arrayList2, enterTransition, arrayList3, obj, configureEnteringExitingViews);
chooseImpl.setNameOverridesOrdered(viewGroup, arrayList2, arrayMap);
chooseImpl.beginDelayedTransition(viewGroup, mergeTransitions);
chooseImpl.scheduleNameReset(viewGroup, arrayList2, arrayMap);
}
}
}
private static void configureTransitionsReordered(@NonNull ViewGroup viewGroup, FragmentContainerTransition fragmentContainerTransition, View view, ArrayMap<String, String> arrayMap, Callback callback) {
Object obj;
Fragment fragment = fragmentContainerTransition.lastIn;
Fragment fragment2 = fragmentContainerTransition.firstOut;
FragmentTransitionImpl chooseImpl = chooseImpl(fragment2, fragment);
if (chooseImpl != null) {
boolean z2 = fragmentContainerTransition.lastInIsPop;
boolean z3 = fragmentContainerTransition.firstOutIsPop;
ArrayList<View> arrayList = new ArrayList<>();
ArrayList<View> arrayList2 = new ArrayList<>();
Object enterTransition = getEnterTransition(chooseImpl, fragment, z2);
Object exitTransition = getExitTransition(chooseImpl, fragment2, z3);
Object configureSharedElementsReordered = configureSharedElementsReordered(chooseImpl, viewGroup, view, arrayMap, fragmentContainerTransition, arrayList2, arrayList, enterTransition, exitTransition);
if (enterTransition == null && configureSharedElementsReordered == null) {
obj = exitTransition;
if (obj == null) {
return;
}
} else {
obj = exitTransition;
}
ArrayList<View> configureEnteringExitingViews = configureEnteringExitingViews(chooseImpl, obj, fragment2, arrayList2, view);
ArrayList<View> configureEnteringExitingViews2 = configureEnteringExitingViews(chooseImpl, enterTransition, fragment, arrayList, view);
setViewVisibility(configureEnteringExitingViews2, 4);
Object mergeTransitions = mergeTransitions(chooseImpl, enterTransition, obj, configureSharedElementsReordered, fragment, z2);
if (!(fragment2 == null || configureEnteringExitingViews == null || (configureEnteringExitingViews.size() <= 0 && arrayList2.size() <= 0))) {
CancellationSignal cancellationSignal = new CancellationSignal();
callback.onStart(fragment2, cancellationSignal);
chooseImpl.setListenerForTransitionEnd(fragment2, mergeTransitions, cancellationSignal, new AnonymousClass1(callback, fragment2, cancellationSignal));
}
if (mergeTransitions != null) {
replaceHide(chooseImpl, obj, fragment2, configureEnteringExitingViews);
ArrayList<String> prepareSetNameOverridesReordered = chooseImpl.prepareSetNameOverridesReordered(arrayList);
chooseImpl.scheduleRemoveTargets(mergeTransitions, enterTransition, configureEnteringExitingViews2, obj, configureEnteringExitingViews, configureSharedElementsReordered, arrayList);
chooseImpl.beginDelayedTransition(viewGroup, mergeTransitions);
chooseImpl.setNameOverridesReordered(viewGroup, arrayList2, arrayList, prepareSetNameOverridesReordered, arrayMap);
setViewVisibility(configureEnteringExitingViews2, 0);
chooseImpl.swapSharedElementTargets(configureSharedElementsReordered, arrayList2, arrayList);
}
}
}
private static FragmentContainerTransition ensureContainer(FragmentContainerTransition fragmentContainerTransition, SparseArray<FragmentContainerTransition> sparseArray, int i) {
if (fragmentContainerTransition != null) {
return fragmentContainerTransition;
}
FragmentContainerTransition fragmentContainerTransition2 = new FragmentContainerTransition();
sparseArray.put(i, fragmentContainerTransition2);
return fragmentContainerTransition2;
}
public static String findKeyForValue(ArrayMap<String, String> arrayMap, String str) {
int size = arrayMap.size();
for (int i = 0; i < size; i++) {
if (str.equals(arrayMap.valueAt(i))) {
return arrayMap.keyAt(i);
}
}
return null;
}
private static Object getEnterTransition(FragmentTransitionImpl fragmentTransitionImpl, Fragment fragment, boolean z2) {
if (fragment == null) {
return null;
}
return fragmentTransitionImpl.cloneTransition(z2 ? fragment.getReenterTransition() : fragment.getEnterTransition());
}
private static Object getExitTransition(FragmentTransitionImpl fragmentTransitionImpl, Fragment fragment, boolean z2) {
if (fragment == null) {
return null;
}
return fragmentTransitionImpl.cloneTransition(z2 ? fragment.getReturnTransition() : fragment.getExitTransition());
}
public static View getInEpicenterView(ArrayMap<String, View> arrayMap, FragmentContainerTransition fragmentContainerTransition, Object obj, boolean z2) {
ArrayList<String> arrayList;
BackStackRecord backStackRecord = fragmentContainerTransition.lastInTransaction;
if (obj == null || arrayMap == null || (arrayList = backStackRecord.mSharedElementSourceNames) == null || arrayList.isEmpty()) {
return null;
}
return arrayMap.get(z2 ? backStackRecord.mSharedElementSourceNames.get(0) : backStackRecord.mSharedElementTargetNames.get(0));
}
private static Object getSharedElementTransition(FragmentTransitionImpl fragmentTransitionImpl, Fragment fragment, Fragment fragment2, boolean z2) {
if (fragment == null || fragment2 == null) {
return null;
}
return fragmentTransitionImpl.wrapTransitionInSet(fragmentTransitionImpl.cloneTransition(z2 ? fragment2.getSharedElementReturnTransition() : fragment.getSharedElementEnterTransition()));
}
private static Object mergeTransitions(FragmentTransitionImpl fragmentTransitionImpl, Object obj, Object obj2, Object obj3, Fragment fragment, boolean z2) {
return (obj == null || obj2 == null || fragment == null) ? true : z2 ? fragment.getAllowReturnTransitionOverlap() : fragment.getAllowEnterTransitionOverlap() ? fragmentTransitionImpl.mergeTransitionsTogether(obj2, obj, obj3) : fragmentTransitionImpl.mergeTransitionsInSequence(obj2, obj, obj3);
}
private static void replaceHide(FragmentTransitionImpl fragmentTransitionImpl, Object obj, Fragment fragment, ArrayList<View> arrayList) {
if (fragment != null && obj != null && fragment.mAdded && fragment.mHidden && fragment.mHiddenChanged) {
fragment.setHideReplaced(true);
fragmentTransitionImpl.scheduleHideFragmentView(obj, fragment.getView(), arrayList);
OneShotPreDrawListener.add(fragment.mContainer, new AnonymousClass2(arrayList));
}
}
private static FragmentTransitionImpl resolveSupportImpl() {
try {
return (FragmentTransitionImpl) Class.forName("androidx.transition.FragmentTransitionSupport").getDeclaredConstructor(new Class[0]).newInstance(new Object[0]);
} catch (Exception unused) {
return null;
}
}
public static void retainValues(@NonNull ArrayMap<String, String> arrayMap, @NonNull ArrayMap<String, View> arrayMap2) {
for (int size = arrayMap.size() - 1; size >= 0; size--) {
if (!arrayMap2.containsKey(arrayMap.valueAt(size))) {
arrayMap.removeAt(size);
}
}
}
private static void scheduleTargetChange(FragmentTransitionImpl fragmentTransitionImpl, ViewGroup viewGroup, Fragment fragment, View view, ArrayList<View> arrayList, Object obj, ArrayList<View> arrayList2, Object obj2, ArrayList<View> arrayList3) {
OneShotPreDrawListener.add(viewGroup, new AnonymousClass4(obj, fragmentTransitionImpl, view, fragment, arrayList, arrayList2, arrayList3, obj2));
}
private static void setOutEpicenter(FragmentTransitionImpl fragmentTransitionImpl, Object obj, Object obj2, ArrayMap<String, View> arrayMap, boolean z2, BackStackRecord backStackRecord) {
ArrayList<String> arrayList = backStackRecord.mSharedElementSourceNames;
if (arrayList != null && !arrayList.isEmpty()) {
View view = arrayMap.get(z2 ? backStackRecord.mSharedElementTargetNames.get(0) : backStackRecord.mSharedElementSourceNames.get(0));
fragmentTransitionImpl.setEpicenter(obj, view);
if (obj2 != null) {
fragmentTransitionImpl.setEpicenter(obj2, view);
}
}
}
public static void setViewVisibility(ArrayList<View> arrayList, int i) {
if (arrayList != null) {
for (int size = arrayList.size() - 1; size >= 0; size--) {
arrayList.get(size).setVisibility(i);
}
}
}
public static void startTransitions(@NonNull Context context, @NonNull FragmentContainer fragmentContainer, ArrayList<BackStackRecord> arrayList, ArrayList<Boolean> arrayList2, int i, int i2, boolean z2, Callback callback) {
ViewGroup viewGroup;
SparseArray sparseArray = new SparseArray();
for (int i3 = i; i3 < i2; i3++) {
BackStackRecord backStackRecord = arrayList.get(i3);
if (arrayList2.get(i3).booleanValue()) {
calculatePopFragments(backStackRecord, sparseArray, z2);
} else {
calculateFragments(backStackRecord, sparseArray, z2);
}
}
if (sparseArray.size() != 0) {
View view = new View(context);
int size = sparseArray.size();
for (int i4 = 0; i4 < size; i4++) {
int keyAt = sparseArray.keyAt(i4);
ArrayMap<String, String> calculateNameOverrides = calculateNameOverrides(keyAt, arrayList, arrayList2, i, i2);
FragmentContainerTransition fragmentContainerTransition = (FragmentContainerTransition) sparseArray.valueAt(i4);
if (fragmentContainer.onHasView() && (viewGroup = (ViewGroup) fragmentContainer.onFindViewById(keyAt)) != null) {
if (z2) {
configureTransitionsReordered(viewGroup, fragmentContainerTransition, view, calculateNameOverrides, callback);
} else {
configureTransitionsOrdered(viewGroup, fragmentContainerTransition, view, calculateNameOverrides, callback);
}
}
}
}
}
public static boolean supportsTransition() {
return (PLATFORM_IMPL == null && SUPPORT_IMPL == null) ? false : true;
}
}