165 lines
		
	
	
		
			7.5 KiB
		
	
	
	
		
			Java
		
	
	
	
	
	
			
		
		
	
	
			165 lines
		
	
	
		
			7.5 KiB
		
	
	
	
		
			Java
		
	
	
	
	
	
| package androidx.fragment.app;
 | |
| 
 | |
| import android.os.Parcel;
 | |
| import android.os.Parcelable;
 | |
| import android.text.TextUtils;
 | |
| import android.util.Log;
 | |
| import androidx.fragment.app.FragmentTransaction;
 | |
| import androidx.lifecycle.Lifecycle;
 | |
| import java.util.ArrayList;
 | |
| 
 | |
| /* loaded from: classes.dex */
 | |
| final class BackStackState implements Parcelable {
 | |
|     public static final Parcelable.Creator<BackStackState> CREATOR = new Parcelable.Creator<BackStackState>() { // from class: androidx.fragment.app.BackStackState.1
 | |
|         /* JADX WARN: Can't rename method to resolve collision */
 | |
|         @Override // android.os.Parcelable.Creator
 | |
|         public BackStackState createFromParcel(Parcel parcel) {
 | |
|             return new BackStackState(parcel);
 | |
|         }
 | |
| 
 | |
|         /* JADX WARN: Can't rename method to resolve collision */
 | |
|         @Override // android.os.Parcelable.Creator
 | |
|         public BackStackState[] newArray(int i) {
 | |
|             return new BackStackState[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 BackStackState(BackStackRecord backStackRecord) {
 | |
|         int size = backStackRecord.mOps.size();
 | |
|         this.mOps = new int[size * 5];
 | |
|         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;
 | |
|             this.mFragmentWhos.add(op.mFragment != null ? op.mFragment.mWho : null);
 | |
|             this.mOps[i3] = op.mEnterAnim;
 | |
|             this.mOps[i + 2] = op.mExitAnim;
 | |
|             int i4 = i + 4;
 | |
|             this.mOps[i + 3] = op.mPopEnterAnim;
 | |
|             i += 5;
 | |
|             this.mOps[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 BackStackState(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();
 | |
|         this.mBreadCrumbTitleText = (CharSequence) TextUtils.CHAR_SEQUENCE_CREATOR.createFromParcel(parcel);
 | |
|         this.mBreadCrumbShortTitleRes = parcel.readInt();
 | |
|         this.mBreadCrumbShortTitleText = (CharSequence) TextUtils.CHAR_SEQUENCE_CREATOR.createFromParcel(parcel);
 | |
|         this.mSharedElementSourceNames = parcel.createStringArrayList();
 | |
|         this.mSharedElementTargetNames = parcel.createStringArrayList();
 | |
|         this.mReorderingAllowed = parcel.readInt() != 0;
 | |
|     }
 | |
| 
 | |
|     public BackStackRecord instantiate(FragmentManager fragmentManager) {
 | |
|         BackStackRecord backStackRecord = new BackStackRecord(fragmentManager);
 | |
|         int i = 0;
 | |
|         int i2 = 0;
 | |
|         while (i < this.mOps.length) {
 | |
|             FragmentTransaction.Op op = new FragmentTransaction.Op();
 | |
|             int i3 = i + 1;
 | |
|             op.mCmd = this.mOps[i];
 | |
|             if (FragmentManager.isLoggingEnabled(2)) {
 | |
|                 Log.v(TAG, "Instantiate " + backStackRecord + " op #" + i2 + " base fragment #" + this.mOps[i3]);
 | |
|             }
 | |
|             String str = this.mFragmentWhos.get(i2);
 | |
|             if (str != null) {
 | |
|                 op.mFragment = fragmentManager.findActiveFragment(str);
 | |
|             } else {
 | |
|                 op.mFragment = null;
 | |
|             }
 | |
|             op.mOldMaxState = Lifecycle.State.values()[this.mOldMaxLifecycleStates[i2]];
 | |
|             op.mCurrentMaxState = Lifecycle.State.values()[this.mCurrentMaxLifecycleStates[i2]];
 | |
|             op.mEnterAnim = this.mOps[i3];
 | |
|             op.mExitAnim = this.mOps[i + 2];
 | |
|             int i4 = i + 4;
 | |
|             op.mPopEnterAnim = this.mOps[i + 3];
 | |
|             i += 5;
 | |
|             op.mPopExitAnim = this.mOps[i4];
 | |
|             backStackRecord.mEnterAnim = op.mEnterAnim;
 | |
|             backStackRecord.mExitAnim = op.mExitAnim;
 | |
|             backStackRecord.mPopEnterAnim = op.mPopEnterAnim;
 | |
|             backStackRecord.mPopExitAnim = op.mPopExitAnim;
 | |
|             backStackRecord.addOp(op);
 | |
|             i2++;
 | |
|         }
 | |
|         backStackRecord.mTransition = this.mTransition;
 | |
|         backStackRecord.mName = this.mName;
 | |
|         backStackRecord.mIndex = this.mIndex;
 | |
|         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;
 | |
|         backStackRecord.bumpBackStackNesting(1);
 | |
|         return backStackRecord;
 | |
|     }
 | |
| 
 | |
|     @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);
 | |
|     }
 | |
| }
 |