- Added realracing3-community.apk (71.57 MB) - Removed 32-bit support (armeabi-v7a) - Only includes arm64-v8a libraries - Decompiled source code included - Added README-community.md with analysis
217 lines
9.5 KiB
Java
217 lines
9.5 KiB
Java
package androidx.fragment.app;
|
|
|
|
import android.annotation.SuppressLint;
|
|
import android.os.Parcel;
|
|
import android.os.Parcelable;
|
|
import android.text.TextUtils;
|
|
import androidx.annotation.NonNull;
|
|
import androidx.fragment.app.FragmentTransaction;
|
|
import androidx.lifecycle.Lifecycle;
|
|
import java.util.ArrayList;
|
|
import java.util.Map;
|
|
|
|
@SuppressLint({"BanParcelableUsage"})
|
|
/* loaded from: classes.dex */
|
|
final class BackStackRecordState implements Parcelable {
|
|
public static final Parcelable.Creator<BackStackRecordState> CREATOR = new Parcelable.Creator<BackStackRecordState>() { // from class: androidx.fragment.app.BackStackRecordState.1
|
|
/* JADX WARN: Can't rename method to resolve collision */
|
|
@Override // android.os.Parcelable.Creator
|
|
public BackStackRecordState createFromParcel(Parcel parcel) {
|
|
return new BackStackRecordState(parcel);
|
|
}
|
|
|
|
/* JADX WARN: Can't rename method to resolve collision */
|
|
@Override // android.os.Parcelable.Creator
|
|
public BackStackRecordState[] newArray(int i) {
|
|
return new BackStackRecordState[i];
|
|
}
|
|
};
|
|
private static final String TAG = "FragmentManager";
|
|
final int mBreadCrumbShortTitleRes;
|
|
final CharSequence mBreadCrumbShortTitleText;
|
|
final int mBreadCrumbTitleRes;
|
|
final CharSequence mBreadCrumbTitleText;
|
|
final int[] mCurrentMaxLifecycleStates;
|
|
final ArrayList<String> mFragmentWhos;
|
|
final int mIndex;
|
|
final String mName;
|
|
final int[] mOldMaxLifecycleStates;
|
|
final int[] mOps;
|
|
final boolean mReorderingAllowed;
|
|
final ArrayList<String> mSharedElementSourceNames;
|
|
final ArrayList<String> mSharedElementTargetNames;
|
|
final int mTransition;
|
|
|
|
@Override // android.os.Parcelable
|
|
public int describeContents() {
|
|
return 0;
|
|
}
|
|
|
|
public BackStackRecordState(BackStackRecord backStackRecord) {
|
|
int size = backStackRecord.mOps.size();
|
|
this.mOps = new int[size * 6];
|
|
if (!backStackRecord.mAddToBackStack) {
|
|
throw new IllegalStateException("Not on back stack");
|
|
}
|
|
this.mFragmentWhos = new ArrayList<>(size);
|
|
this.mOldMaxLifecycleStates = new int[size];
|
|
this.mCurrentMaxLifecycleStates = new int[size];
|
|
int i = 0;
|
|
for (int i2 = 0; i2 < size; i2++) {
|
|
FragmentTransaction.Op op = backStackRecord.mOps.get(i2);
|
|
int i3 = i + 1;
|
|
this.mOps[i] = op.mCmd;
|
|
ArrayList<String> arrayList = this.mFragmentWhos;
|
|
Fragment fragment = op.mFragment;
|
|
arrayList.add(fragment != null ? fragment.mWho : null);
|
|
int[] iArr = this.mOps;
|
|
iArr[i3] = op.mFromExpandedOp ? 1 : 0;
|
|
iArr[i + 2] = op.mEnterAnim;
|
|
iArr[i + 3] = op.mExitAnim;
|
|
int i4 = i + 5;
|
|
iArr[i + 4] = op.mPopEnterAnim;
|
|
i += 6;
|
|
iArr[i4] = op.mPopExitAnim;
|
|
this.mOldMaxLifecycleStates[i2] = op.mOldMaxState.ordinal();
|
|
this.mCurrentMaxLifecycleStates[i2] = op.mCurrentMaxState.ordinal();
|
|
}
|
|
this.mTransition = backStackRecord.mTransition;
|
|
this.mName = backStackRecord.mName;
|
|
this.mIndex = backStackRecord.mIndex;
|
|
this.mBreadCrumbTitleRes = backStackRecord.mBreadCrumbTitleRes;
|
|
this.mBreadCrumbTitleText = backStackRecord.mBreadCrumbTitleText;
|
|
this.mBreadCrumbShortTitleRes = backStackRecord.mBreadCrumbShortTitleRes;
|
|
this.mBreadCrumbShortTitleText = backStackRecord.mBreadCrumbShortTitleText;
|
|
this.mSharedElementSourceNames = backStackRecord.mSharedElementSourceNames;
|
|
this.mSharedElementTargetNames = backStackRecord.mSharedElementTargetNames;
|
|
this.mReorderingAllowed = backStackRecord.mReorderingAllowed;
|
|
}
|
|
|
|
public BackStackRecordState(Parcel parcel) {
|
|
this.mOps = parcel.createIntArray();
|
|
this.mFragmentWhos = parcel.createStringArrayList();
|
|
this.mOldMaxLifecycleStates = parcel.createIntArray();
|
|
this.mCurrentMaxLifecycleStates = parcel.createIntArray();
|
|
this.mTransition = parcel.readInt();
|
|
this.mName = parcel.readString();
|
|
this.mIndex = parcel.readInt();
|
|
this.mBreadCrumbTitleRes = parcel.readInt();
|
|
Parcelable.Creator creator = TextUtils.CHAR_SEQUENCE_CREATOR;
|
|
this.mBreadCrumbTitleText = (CharSequence) creator.createFromParcel(parcel);
|
|
this.mBreadCrumbShortTitleRes = parcel.readInt();
|
|
this.mBreadCrumbShortTitleText = (CharSequence) creator.createFromParcel(parcel);
|
|
this.mSharedElementSourceNames = parcel.createStringArrayList();
|
|
this.mSharedElementTargetNames = parcel.createStringArrayList();
|
|
this.mReorderingAllowed = parcel.readInt() != 0;
|
|
}
|
|
|
|
@NonNull
|
|
public BackStackRecord instantiate(@NonNull FragmentManager fragmentManager) {
|
|
BackStackRecord backStackRecord = new BackStackRecord(fragmentManager);
|
|
fillInBackStackRecord(backStackRecord);
|
|
backStackRecord.mIndex = this.mIndex;
|
|
for (int i = 0; i < this.mFragmentWhos.size(); i++) {
|
|
String str = this.mFragmentWhos.get(i);
|
|
if (str != null) {
|
|
backStackRecord.mOps.get(i).mFragment = fragmentManager.findActiveFragment(str);
|
|
}
|
|
}
|
|
backStackRecord.bumpBackStackNesting(1);
|
|
return backStackRecord;
|
|
}
|
|
|
|
@NonNull
|
|
public BackStackRecord instantiate(@NonNull FragmentManager fragmentManager, @NonNull Map<String, Fragment> map) {
|
|
BackStackRecord backStackRecord = new BackStackRecord(fragmentManager);
|
|
fillInBackStackRecord(backStackRecord);
|
|
for (int i = 0; i < this.mFragmentWhos.size(); i++) {
|
|
String str = this.mFragmentWhos.get(i);
|
|
if (str != null) {
|
|
Fragment fragment = map.get(str);
|
|
if (fragment != null) {
|
|
backStackRecord.mOps.get(i).mFragment = fragment;
|
|
} else {
|
|
throw new IllegalStateException("Restoring FragmentTransaction " + this.mName + " failed due to missing saved state for Fragment (" + str + ")");
|
|
}
|
|
}
|
|
}
|
|
return backStackRecord;
|
|
}
|
|
|
|
private void fillInBackStackRecord(@NonNull BackStackRecord backStackRecord) {
|
|
int i = 0;
|
|
int i2 = 0;
|
|
while (true) {
|
|
boolean z = true;
|
|
if (i < this.mOps.length) {
|
|
FragmentTransaction.Op op = new FragmentTransaction.Op();
|
|
int i3 = i + 1;
|
|
op.mCmd = this.mOps[i];
|
|
if (FragmentManager.isLoggingEnabled(2)) {
|
|
StringBuilder sb = new StringBuilder();
|
|
sb.append("Instantiate ");
|
|
sb.append(backStackRecord);
|
|
sb.append(" op #");
|
|
sb.append(i2);
|
|
sb.append(" base fragment #");
|
|
sb.append(this.mOps[i3]);
|
|
}
|
|
op.mOldMaxState = Lifecycle.State.values()[this.mOldMaxLifecycleStates[i2]];
|
|
op.mCurrentMaxState = Lifecycle.State.values()[this.mCurrentMaxLifecycleStates[i2]];
|
|
int[] iArr = this.mOps;
|
|
int i4 = i + 2;
|
|
if (iArr[i3] == 0) {
|
|
z = false;
|
|
}
|
|
op.mFromExpandedOp = z;
|
|
int i5 = iArr[i4];
|
|
op.mEnterAnim = i5;
|
|
int i6 = iArr[i + 3];
|
|
op.mExitAnim = i6;
|
|
int i7 = i + 5;
|
|
int i8 = iArr[i + 4];
|
|
op.mPopEnterAnim = i8;
|
|
i += 6;
|
|
int i9 = iArr[i7];
|
|
op.mPopExitAnim = i9;
|
|
backStackRecord.mEnterAnim = i5;
|
|
backStackRecord.mExitAnim = i6;
|
|
backStackRecord.mPopEnterAnim = i8;
|
|
backStackRecord.mPopExitAnim = i9;
|
|
backStackRecord.addOp(op);
|
|
i2++;
|
|
} else {
|
|
backStackRecord.mTransition = this.mTransition;
|
|
backStackRecord.mName = this.mName;
|
|
backStackRecord.mAddToBackStack = true;
|
|
backStackRecord.mBreadCrumbTitleRes = this.mBreadCrumbTitleRes;
|
|
backStackRecord.mBreadCrumbTitleText = this.mBreadCrumbTitleText;
|
|
backStackRecord.mBreadCrumbShortTitleRes = this.mBreadCrumbShortTitleRes;
|
|
backStackRecord.mBreadCrumbShortTitleText = this.mBreadCrumbShortTitleText;
|
|
backStackRecord.mSharedElementSourceNames = this.mSharedElementSourceNames;
|
|
backStackRecord.mSharedElementTargetNames = this.mSharedElementTargetNames;
|
|
backStackRecord.mReorderingAllowed = this.mReorderingAllowed;
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
|
|
@Override // android.os.Parcelable
|
|
public void writeToParcel(Parcel parcel, int i) {
|
|
parcel.writeIntArray(this.mOps);
|
|
parcel.writeStringList(this.mFragmentWhos);
|
|
parcel.writeIntArray(this.mOldMaxLifecycleStates);
|
|
parcel.writeIntArray(this.mCurrentMaxLifecycleStates);
|
|
parcel.writeInt(this.mTransition);
|
|
parcel.writeString(this.mName);
|
|
parcel.writeInt(this.mIndex);
|
|
parcel.writeInt(this.mBreadCrumbTitleRes);
|
|
TextUtils.writeToParcel(this.mBreadCrumbTitleText, parcel, 0);
|
|
parcel.writeInt(this.mBreadCrumbShortTitleRes);
|
|
TextUtils.writeToParcel(this.mBreadCrumbShortTitleText, parcel, 0);
|
|
parcel.writeStringList(this.mSharedElementSourceNames);
|
|
parcel.writeStringList(this.mSharedElementTargetNames);
|
|
parcel.writeInt(this.mReorderingAllowed ? 1 : 0);
|
|
}
|
|
}
|