ADD week 5
This commit is contained in:
		
							
								
								
									
										164
									
								
								02-Easy5/E5/sources/androidx/fragment/app/BackStackState.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										164
									
								
								02-Easy5/E5/sources/androidx/fragment/app/BackStackState.java
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,164 @@ | ||||
| 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); | ||||
|     } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user