123 lines
4.8 KiB
Java
123 lines
4.8 KiB
Java
package androidx.fragment.app;
|
|
|
|
import android.content.Context;
|
|
import android.os.Bundle;
|
|
import android.os.Parcel;
|
|
import android.os.Parcelable;
|
|
import android.util.Log;
|
|
import androidx.lifecycle.ViewModelStore;
|
|
|
|
/* loaded from: classes.dex */
|
|
final class FragmentState implements Parcelable {
|
|
public static final Parcelable.Creator<FragmentState> CREATOR = new Parcelable.Creator<FragmentState>() { // from class: androidx.fragment.app.FragmentState.1
|
|
/* JADX WARN: Can't rename method to resolve collision */
|
|
@Override // android.os.Parcelable.Creator
|
|
public FragmentState createFromParcel(Parcel parcel) {
|
|
return new FragmentState(parcel);
|
|
}
|
|
|
|
/* JADX WARN: Can't rename method to resolve collision */
|
|
@Override // android.os.Parcelable.Creator
|
|
public FragmentState[] newArray(int i) {
|
|
return new FragmentState[i];
|
|
}
|
|
};
|
|
final Bundle mArguments;
|
|
final String mClassName;
|
|
final int mContainerId;
|
|
final boolean mDetached;
|
|
final int mFragmentId;
|
|
final boolean mFromLayout;
|
|
final boolean mHidden;
|
|
final int mIndex;
|
|
Fragment mInstance;
|
|
final boolean mRetainInstance;
|
|
Bundle mSavedFragmentState;
|
|
final String mTag;
|
|
|
|
FragmentState(Fragment fragment) {
|
|
this.mClassName = fragment.getClass().getName();
|
|
this.mIndex = fragment.mIndex;
|
|
this.mFromLayout = fragment.mFromLayout;
|
|
this.mFragmentId = fragment.mFragmentId;
|
|
this.mContainerId = fragment.mContainerId;
|
|
this.mTag = fragment.mTag;
|
|
this.mRetainInstance = fragment.mRetainInstance;
|
|
this.mDetached = fragment.mDetached;
|
|
this.mArguments = fragment.mArguments;
|
|
this.mHidden = fragment.mHidden;
|
|
}
|
|
|
|
@Override // android.os.Parcelable
|
|
public int describeContents() {
|
|
return 0;
|
|
}
|
|
|
|
public Fragment instantiate(FragmentHostCallback fragmentHostCallback, FragmentContainer fragmentContainer, Fragment fragment, FragmentManagerNonConfig fragmentManagerNonConfig, ViewModelStore viewModelStore) {
|
|
if (this.mInstance == null) {
|
|
Context c = fragmentHostCallback.c();
|
|
Bundle bundle = this.mArguments;
|
|
if (bundle != null) {
|
|
bundle.setClassLoader(c.getClassLoader());
|
|
}
|
|
if (fragmentContainer != null) {
|
|
this.mInstance = fragmentContainer.a(c, this.mClassName, this.mArguments);
|
|
} else {
|
|
this.mInstance = Fragment.instantiate(c, this.mClassName, this.mArguments);
|
|
}
|
|
Bundle bundle2 = this.mSavedFragmentState;
|
|
if (bundle2 != null) {
|
|
bundle2.setClassLoader(c.getClassLoader());
|
|
this.mInstance.mSavedFragmentState = this.mSavedFragmentState;
|
|
}
|
|
this.mInstance.setIndex(this.mIndex, fragment);
|
|
Fragment fragment2 = this.mInstance;
|
|
fragment2.mFromLayout = this.mFromLayout;
|
|
fragment2.mRestored = true;
|
|
fragment2.mFragmentId = this.mFragmentId;
|
|
fragment2.mContainerId = this.mContainerId;
|
|
fragment2.mTag = this.mTag;
|
|
fragment2.mRetainInstance = this.mRetainInstance;
|
|
fragment2.mDetached = this.mDetached;
|
|
fragment2.mHidden = this.mHidden;
|
|
fragment2.mFragmentManager = fragmentHostCallback.d;
|
|
if (FragmentManagerImpl.F) {
|
|
Log.v("FragmentManager", "Instantiated fragment " + this.mInstance);
|
|
}
|
|
}
|
|
Fragment fragment3 = this.mInstance;
|
|
fragment3.mChildNonConfig = fragmentManagerNonConfig;
|
|
fragment3.mViewModelStore = viewModelStore;
|
|
return fragment3;
|
|
}
|
|
|
|
@Override // android.os.Parcelable
|
|
public void writeToParcel(Parcel parcel, int i) {
|
|
parcel.writeString(this.mClassName);
|
|
parcel.writeInt(this.mIndex);
|
|
parcel.writeInt(this.mFromLayout ? 1 : 0);
|
|
parcel.writeInt(this.mFragmentId);
|
|
parcel.writeInt(this.mContainerId);
|
|
parcel.writeString(this.mTag);
|
|
parcel.writeInt(this.mRetainInstance ? 1 : 0);
|
|
parcel.writeInt(this.mDetached ? 1 : 0);
|
|
parcel.writeBundle(this.mArguments);
|
|
parcel.writeInt(this.mHidden ? 1 : 0);
|
|
parcel.writeBundle(this.mSavedFragmentState);
|
|
}
|
|
|
|
FragmentState(Parcel parcel) {
|
|
this.mClassName = parcel.readString();
|
|
this.mIndex = parcel.readInt();
|
|
this.mFromLayout = parcel.readInt() != 0;
|
|
this.mFragmentId = parcel.readInt();
|
|
this.mContainerId = parcel.readInt();
|
|
this.mTag = parcel.readString();
|
|
this.mRetainInstance = parcel.readInt() != 0;
|
|
this.mDetached = parcel.readInt() != 0;
|
|
this.mArguments = parcel.readBundle();
|
|
this.mHidden = parcel.readInt() != 0;
|
|
this.mSavedFragmentState = parcel.readBundle();
|
|
}
|
|
}
|