jimu-decompiled/sources/androidx/fragment/app/FragmentState.java
2025-05-13 19:24:51 +02:00

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();
}
}