package androidx.fragment.app; import android.app.Activity; import android.content.res.Resources; import android.os.Bundle; import android.os.Parcelable; import android.util.SparseArray; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.view.ViewParent; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.core.view.ViewCompat; import androidx.fragment.R; import androidx.fragment.app.Fragment; import androidx.fragment.app.SpecialEffectsController; import androidx.fragment.app.strictmode.FragmentStrictMode; import androidx.lifecycle.Lifecycle; import androidx.lifecycle.ViewModelStoreOwner; import com.facebook.internal.AnalyticsEvents; import com.ironsource.v8; /* loaded from: classes.dex */ class FragmentStateManager { private static final String TAG = "FragmentManager"; private static final String TARGET_REQUEST_CODE_STATE_TAG = "android:target_req_state"; private static final String TARGET_STATE_TAG = "android:target_state"; private static final String USER_VISIBLE_HINT_TAG = "android:user_visible_hint"; private static final String VIEW_REGISTRY_STATE_TAG = "android:view_registry_state"; private static final String VIEW_STATE_TAG = "android:view_state"; private final FragmentLifecycleCallbacksDispatcher mDispatcher; @NonNull private final Fragment mFragment; private final FragmentStore mFragmentStore; private boolean mMovingToState = false; private int mFragmentManagerState = -1; @NonNull public Fragment getFragment() { return this.mFragment; } public void setFragmentManagerState(int i) { this.mFragmentManagerState = i; } public FragmentStateManager(@NonNull FragmentLifecycleCallbacksDispatcher fragmentLifecycleCallbacksDispatcher, @NonNull FragmentStore fragmentStore, @NonNull Fragment fragment) { this.mDispatcher = fragmentLifecycleCallbacksDispatcher; this.mFragmentStore = fragmentStore; this.mFragment = fragment; } public FragmentStateManager(@NonNull FragmentLifecycleCallbacksDispatcher fragmentLifecycleCallbacksDispatcher, @NonNull FragmentStore fragmentStore, @NonNull ClassLoader classLoader, @NonNull FragmentFactory fragmentFactory, @NonNull FragmentState fragmentState) { this.mDispatcher = fragmentLifecycleCallbacksDispatcher; this.mFragmentStore = fragmentStore; Fragment instantiate = fragmentState.instantiate(fragmentFactory, classLoader); this.mFragment = instantiate; if (FragmentManager.isLoggingEnabled(2)) { StringBuilder sb = new StringBuilder(); sb.append("Instantiated fragment "); sb.append(instantiate); } } public FragmentStateManager(@NonNull FragmentLifecycleCallbacksDispatcher fragmentLifecycleCallbacksDispatcher, @NonNull FragmentStore fragmentStore, @NonNull Fragment fragment, @NonNull FragmentState fragmentState) { this.mDispatcher = fragmentLifecycleCallbacksDispatcher; this.mFragmentStore = fragmentStore; this.mFragment = fragment; fragment.mSavedViewState = null; fragment.mSavedViewRegistryState = null; fragment.mBackStackNesting = 0; fragment.mInLayout = false; fragment.mAdded = false; Fragment fragment2 = fragment.mTarget; fragment.mTargetWho = fragment2 != null ? fragment2.mWho : null; fragment.mTarget = null; Bundle bundle = fragmentState.mSavedFragmentState; if (bundle != null) { fragment.mSavedFragmentState = bundle; } else { fragment.mSavedFragmentState = new Bundle(); } } public int computeExpectedState() { Fragment fragment = this.mFragment; if (fragment.mFragmentManager == null) { return fragment.mState; } int i = this.mFragmentManagerState; int i2 = AnonymousClass2.$SwitchMap$androidx$lifecycle$Lifecycle$State[fragment.mMaxState.ordinal()]; if (i2 != 1) { if (i2 == 2) { i = Math.min(i, 5); } else if (i2 == 3) { i = Math.min(i, 1); } else if (i2 == 4) { i = Math.min(i, 0); } else { i = Math.min(i, -1); } } Fragment fragment2 = this.mFragment; if (fragment2.mFromLayout) { if (fragment2.mInLayout) { i = Math.max(this.mFragmentManagerState, 2); View view = this.mFragment.mView; if (view != null && view.getParent() == null) { i = Math.min(i, 2); } } else { i = this.mFragmentManagerState < 4 ? Math.min(i, fragment2.mState) : Math.min(i, 1); } } if (!this.mFragment.mAdded) { i = Math.min(i, 1); } Fragment fragment3 = this.mFragment; ViewGroup viewGroup = fragment3.mContainer; SpecialEffectsController.Operation.LifecycleImpact awaitingCompletionLifecycleImpact = viewGroup != null ? SpecialEffectsController.getOrCreateController(viewGroup, fragment3.getParentFragmentManager()).getAwaitingCompletionLifecycleImpact(this) : null; if (awaitingCompletionLifecycleImpact == SpecialEffectsController.Operation.LifecycleImpact.ADDING) { i = Math.min(i, 6); } else if (awaitingCompletionLifecycleImpact == SpecialEffectsController.Operation.LifecycleImpact.REMOVING) { i = Math.max(i, 3); } else { Fragment fragment4 = this.mFragment; if (fragment4.mRemoving) { if (fragment4.isInBackStack()) { i = Math.min(i, 1); } else { i = Math.min(i, -1); } } } Fragment fragment5 = this.mFragment; if (fragment5.mDeferStart && fragment5.mState < 5) { i = Math.min(i, 4); } if (FragmentManager.isLoggingEnabled(2)) { StringBuilder sb = new StringBuilder(); sb.append("computeExpectedState() of "); sb.append(i); sb.append(" for "); sb.append(this.mFragment); } return i; } /* renamed from: androidx.fragment.app.FragmentStateManager$2, reason: invalid class name */ public static /* synthetic */ class AnonymousClass2 { static final /* synthetic */ int[] $SwitchMap$androidx$lifecycle$Lifecycle$State; static { int[] iArr = new int[Lifecycle.State.values().length]; $SwitchMap$androidx$lifecycle$Lifecycle$State = iArr; try { iArr[Lifecycle.State.RESUMED.ordinal()] = 1; } catch (NoSuchFieldError unused) { } try { $SwitchMap$androidx$lifecycle$Lifecycle$State[Lifecycle.State.STARTED.ordinal()] = 2; } catch (NoSuchFieldError unused2) { } try { $SwitchMap$androidx$lifecycle$Lifecycle$State[Lifecycle.State.CREATED.ordinal()] = 3; } catch (NoSuchFieldError unused3) { } try { $SwitchMap$androidx$lifecycle$Lifecycle$State[Lifecycle.State.INITIALIZED.ordinal()] = 4; } catch (NoSuchFieldError unused4) { } } } public void moveToExpectedState() { ViewGroup viewGroup; ViewGroup viewGroup2; ViewGroup viewGroup3; if (this.mMovingToState) { if (FragmentManager.isLoggingEnabled(2)) { StringBuilder sb = new StringBuilder(); sb.append("Ignoring re-entrant call to moveToExpectedState() for "); sb.append(getFragment()); return; } return; } try { this.mMovingToState = true; boolean z = false; while (true) { int computeExpectedState = computeExpectedState(); Fragment fragment = this.mFragment; int i = fragment.mState; if (computeExpectedState == i) { if (!z && i == -1 && fragment.mRemoving && !fragment.isInBackStack() && !this.mFragment.mBeingSaved) { if (FragmentManager.isLoggingEnabled(3)) { StringBuilder sb2 = new StringBuilder(); sb2.append("Cleaning up state of never attached fragment: "); sb2.append(this.mFragment); } this.mFragmentStore.getNonConfig().clearNonConfigState(this.mFragment); this.mFragmentStore.makeInactive(this); if (FragmentManager.isLoggingEnabled(3)) { StringBuilder sb3 = new StringBuilder(); sb3.append("initState called for fragment: "); sb3.append(this.mFragment); } this.mFragment.initState(); } Fragment fragment2 = this.mFragment; if (fragment2.mHiddenChanged) { if (fragment2.mView != null && (viewGroup = fragment2.mContainer) != null) { SpecialEffectsController orCreateController = SpecialEffectsController.getOrCreateController(viewGroup, fragment2.getParentFragmentManager()); if (this.mFragment.mHidden) { orCreateController.enqueueHide(this); } else { orCreateController.enqueueShow(this); } } Fragment fragment3 = this.mFragment; FragmentManager fragmentManager = fragment3.mFragmentManager; if (fragmentManager != null) { fragmentManager.invalidateMenuForFragment(fragment3); } Fragment fragment4 = this.mFragment; fragment4.mHiddenChanged = false; fragment4.onHiddenChanged(fragment4.mHidden); this.mFragment.mChildFragmentManager.dispatchOnHiddenChanged(); } this.mMovingToState = false; return; } if (computeExpectedState > i) { switch (i + 1) { case 0: attach(); break; case 1: create(); break; case 2: ensureInflatedView(); createView(); break; case 3: activityCreated(); break; case 4: if (fragment.mView != null && (viewGroup3 = fragment.mContainer) != null) { SpecialEffectsController.getOrCreateController(viewGroup3, fragment.getParentFragmentManager()).enqueueAdd(SpecialEffectsController.Operation.State.from(this.mFragment.mView.getVisibility()), this); } this.mFragment.mState = 4; break; case 5: start(); break; case 6: fragment.mState = 6; break; case 7: resume(); break; } } else { switch (i - 1) { case -1: detach(); break; case 0: if (fragment.mBeingSaved && this.mFragmentStore.getSavedState(fragment.mWho) == null) { saveState(); } destroy(); break; case 1: destroyFragmentView(); this.mFragment.mState = 1; break; case 2: fragment.mInLayout = false; fragment.mState = 2; break; case 3: if (FragmentManager.isLoggingEnabled(3)) { StringBuilder sb4 = new StringBuilder(); sb4.append("movefrom ACTIVITY_CREATED: "); sb4.append(this.mFragment); } Fragment fragment5 = this.mFragment; if (fragment5.mBeingSaved) { saveState(); } else if (fragment5.mView != null && fragment5.mSavedViewState == null) { saveViewState(); } Fragment fragment6 = this.mFragment; if (fragment6.mView != null && (viewGroup2 = fragment6.mContainer) != null) { SpecialEffectsController.getOrCreateController(viewGroup2, fragment6.getParentFragmentManager()).enqueueRemove(this); } this.mFragment.mState = 3; break; case 4: stop(); break; case 5: fragment.mState = 5; break; case 6: pause(); break; } } z = true; } } catch (Throwable th) { this.mMovingToState = false; throw th; } } public void ensureInflatedView() { Fragment fragment = this.mFragment; if (fragment.mFromLayout && fragment.mInLayout && !fragment.mPerformedCreateView) { if (FragmentManager.isLoggingEnabled(3)) { StringBuilder sb = new StringBuilder(); sb.append("moveto CREATE_VIEW: "); sb.append(this.mFragment); } Fragment fragment2 = this.mFragment; fragment2.performCreateView(fragment2.performGetLayoutInflater(fragment2.mSavedFragmentState), null, this.mFragment.mSavedFragmentState); View view = this.mFragment.mView; if (view != null) { view.setSaveFromParentEnabled(false); Fragment fragment3 = this.mFragment; fragment3.mView.setTag(R.id.fragment_container_view_tag, fragment3); Fragment fragment4 = this.mFragment; if (fragment4.mHidden) { fragment4.mView.setVisibility(8); } this.mFragment.performViewCreated(); FragmentLifecycleCallbacksDispatcher fragmentLifecycleCallbacksDispatcher = this.mDispatcher; Fragment fragment5 = this.mFragment; fragmentLifecycleCallbacksDispatcher.dispatchOnFragmentViewCreated(fragment5, fragment5.mView, fragment5.mSavedFragmentState, false); this.mFragment.mState = 2; } } } public void restoreState(@NonNull ClassLoader classLoader) { Bundle bundle = this.mFragment.mSavedFragmentState; if (bundle == null) { return; } bundle.setClassLoader(classLoader); Fragment fragment = this.mFragment; fragment.mSavedViewState = fragment.mSavedFragmentState.getSparseParcelableArray(VIEW_STATE_TAG); Fragment fragment2 = this.mFragment; fragment2.mSavedViewRegistryState = fragment2.mSavedFragmentState.getBundle(VIEW_REGISTRY_STATE_TAG); Fragment fragment3 = this.mFragment; fragment3.mTargetWho = fragment3.mSavedFragmentState.getString(TARGET_STATE_TAG); Fragment fragment4 = this.mFragment; if (fragment4.mTargetWho != null) { fragment4.mTargetRequestCode = fragment4.mSavedFragmentState.getInt(TARGET_REQUEST_CODE_STATE_TAG, 0); } Fragment fragment5 = this.mFragment; Boolean bool = fragment5.mSavedUserVisibleHint; if (bool != null) { fragment5.mUserVisibleHint = bool.booleanValue(); this.mFragment.mSavedUserVisibleHint = null; } else { fragment5.mUserVisibleHint = fragment5.mSavedFragmentState.getBoolean(USER_VISIBLE_HINT_TAG, true); } Fragment fragment6 = this.mFragment; if (fragment6.mUserVisibleHint) { return; } fragment6.mDeferStart = true; } public void attach() { if (FragmentManager.isLoggingEnabled(3)) { StringBuilder sb = new StringBuilder(); sb.append("moveto ATTACHED: "); sb.append(this.mFragment); } Fragment fragment = this.mFragment; Fragment fragment2 = fragment.mTarget; FragmentStateManager fragmentStateManager = null; if (fragment2 != null) { FragmentStateManager fragmentStateManager2 = this.mFragmentStore.getFragmentStateManager(fragment2.mWho); if (fragmentStateManager2 == null) { throw new IllegalStateException("Fragment " + this.mFragment + " declared target fragment " + this.mFragment.mTarget + " that does not belong to this FragmentManager!"); } Fragment fragment3 = this.mFragment; fragment3.mTargetWho = fragment3.mTarget.mWho; fragment3.mTarget = null; fragmentStateManager = fragmentStateManager2; } else { String str = fragment.mTargetWho; if (str != null && (fragmentStateManager = this.mFragmentStore.getFragmentStateManager(str)) == null) { throw new IllegalStateException("Fragment " + this.mFragment + " declared target fragment " + this.mFragment.mTargetWho + " that does not belong to this FragmentManager!"); } } if (fragmentStateManager != null) { fragmentStateManager.moveToExpectedState(); } Fragment fragment4 = this.mFragment; fragment4.mHost = fragment4.mFragmentManager.getHost(); Fragment fragment5 = this.mFragment; fragment5.mParentFragment = fragment5.mFragmentManager.getParent(); this.mDispatcher.dispatchOnFragmentPreAttached(this.mFragment, false); this.mFragment.performAttach(); this.mDispatcher.dispatchOnFragmentAttached(this.mFragment, false); } public void create() { if (FragmentManager.isLoggingEnabled(3)) { StringBuilder sb = new StringBuilder(); sb.append("moveto CREATED: "); sb.append(this.mFragment); } Fragment fragment = this.mFragment; if (!fragment.mIsCreated) { this.mDispatcher.dispatchOnFragmentPreCreated(fragment, fragment.mSavedFragmentState, false); Fragment fragment2 = this.mFragment; fragment2.performCreate(fragment2.mSavedFragmentState); FragmentLifecycleCallbacksDispatcher fragmentLifecycleCallbacksDispatcher = this.mDispatcher; Fragment fragment3 = this.mFragment; fragmentLifecycleCallbacksDispatcher.dispatchOnFragmentCreated(fragment3, fragment3.mSavedFragmentState, false); return; } fragment.restoreChildFragmentState(fragment.mSavedFragmentState); this.mFragment.mState = 1; } public void createView() { String str; if (this.mFragment.mFromLayout) { return; } if (FragmentManager.isLoggingEnabled(3)) { StringBuilder sb = new StringBuilder(); sb.append("moveto CREATE_VIEW: "); sb.append(this.mFragment); } Fragment fragment = this.mFragment; LayoutInflater performGetLayoutInflater = fragment.performGetLayoutInflater(fragment.mSavedFragmentState); Fragment fragment2 = this.mFragment; ViewGroup viewGroup = fragment2.mContainer; if (viewGroup == null) { int i = fragment2.mContainerId; if (i == 0) { viewGroup = null; } else { if (i == -1) { throw new IllegalArgumentException("Cannot create fragment " + this.mFragment + " for a container view with no id"); } viewGroup = (ViewGroup) fragment2.mFragmentManager.getContainer().onFindViewById(this.mFragment.mContainerId); if (viewGroup == null) { Fragment fragment3 = this.mFragment; if (!fragment3.mRestored) { try { str = fragment3.getResources().getResourceName(this.mFragment.mContainerId); } catch (Resources.NotFoundException unused) { str = "unknown"; } throw new IllegalArgumentException("No view found for id 0x" + Integer.toHexString(this.mFragment.mContainerId) + " (" + str + ") for fragment " + this.mFragment); } } else if (!(viewGroup instanceof FragmentContainerView)) { FragmentStrictMode.onWrongFragmentContainer(this.mFragment, viewGroup); } } } Fragment fragment4 = this.mFragment; fragment4.mContainer = viewGroup; fragment4.performCreateView(performGetLayoutInflater, viewGroup, fragment4.mSavedFragmentState); View view = this.mFragment.mView; if (view != null) { view.setSaveFromParentEnabled(false); Fragment fragment5 = this.mFragment; fragment5.mView.setTag(R.id.fragment_container_view_tag, fragment5); if (viewGroup != null) { addViewToContainer(); } Fragment fragment6 = this.mFragment; if (fragment6.mHidden) { fragment6.mView.setVisibility(8); } if (ViewCompat.isAttachedToWindow(this.mFragment.mView)) { ViewCompat.requestApplyInsets(this.mFragment.mView); } else { final View view2 = this.mFragment.mView; view2.addOnAttachStateChangeListener(new View.OnAttachStateChangeListener() { // from class: androidx.fragment.app.FragmentStateManager.1 @Override // android.view.View.OnAttachStateChangeListener public void onViewDetachedFromWindow(View view3) { } @Override // android.view.View.OnAttachStateChangeListener public void onViewAttachedToWindow(View view3) { view2.removeOnAttachStateChangeListener(this); ViewCompat.requestApplyInsets(view2); } }); } this.mFragment.performViewCreated(); FragmentLifecycleCallbacksDispatcher fragmentLifecycleCallbacksDispatcher = this.mDispatcher; Fragment fragment7 = this.mFragment; fragmentLifecycleCallbacksDispatcher.dispatchOnFragmentViewCreated(fragment7, fragment7.mView, fragment7.mSavedFragmentState, false); int visibility = this.mFragment.mView.getVisibility(); this.mFragment.setPostOnViewCreatedAlpha(this.mFragment.mView.getAlpha()); Fragment fragment8 = this.mFragment; if (fragment8.mContainer != null && visibility == 0) { View findFocus = fragment8.mView.findFocus(); if (findFocus != null) { this.mFragment.setFocusedView(findFocus); if (FragmentManager.isLoggingEnabled(2)) { StringBuilder sb2 = new StringBuilder(); sb2.append("requestFocus: Saved focused view "); sb2.append(findFocus); sb2.append(" for Fragment "); sb2.append(this.mFragment); } } this.mFragment.mView.setAlpha(0.0f); } } this.mFragment.mState = 2; } public void activityCreated() { if (FragmentManager.isLoggingEnabled(3)) { StringBuilder sb = new StringBuilder(); sb.append("moveto ACTIVITY_CREATED: "); sb.append(this.mFragment); } Fragment fragment = this.mFragment; fragment.performActivityCreated(fragment.mSavedFragmentState); FragmentLifecycleCallbacksDispatcher fragmentLifecycleCallbacksDispatcher = this.mDispatcher; Fragment fragment2 = this.mFragment; fragmentLifecycleCallbacksDispatcher.dispatchOnFragmentActivityCreated(fragment2, fragment2.mSavedFragmentState, false); } public void start() { if (FragmentManager.isLoggingEnabled(3)) { StringBuilder sb = new StringBuilder(); sb.append("moveto STARTED: "); sb.append(this.mFragment); } this.mFragment.performStart(); this.mDispatcher.dispatchOnFragmentStarted(this.mFragment, false); } public void resume() { if (FragmentManager.isLoggingEnabled(3)) { StringBuilder sb = new StringBuilder(); sb.append("moveto RESUMED: "); sb.append(this.mFragment); } View focusedView = this.mFragment.getFocusedView(); if (focusedView != null && isFragmentViewChild(focusedView)) { boolean requestFocus = focusedView.requestFocus(); if (FragmentManager.isLoggingEnabled(2)) { StringBuilder sb2 = new StringBuilder(); sb2.append("requestFocus: Restoring focused view "); sb2.append(focusedView); sb2.append(" "); sb2.append(requestFocus ? AnalyticsEvents.PARAMETER_SHARE_OUTCOME_SUCCEEDED : v8.h.t); sb2.append(" on Fragment "); sb2.append(this.mFragment); sb2.append(" resulting in focused view "); sb2.append(this.mFragment.mView.findFocus()); } } this.mFragment.setFocusedView(null); this.mFragment.performResume(); this.mDispatcher.dispatchOnFragmentResumed(this.mFragment, false); Fragment fragment = this.mFragment; fragment.mSavedFragmentState = null; fragment.mSavedViewState = null; fragment.mSavedViewRegistryState = null; } private boolean isFragmentViewChild(@NonNull View view) { if (view == this.mFragment.mView) { return true; } for (ViewParent parent = view.getParent(); parent != null; parent = parent.getParent()) { if (parent == this.mFragment.mView) { return true; } } return false; } public void pause() { if (FragmentManager.isLoggingEnabled(3)) { StringBuilder sb = new StringBuilder(); sb.append("movefrom RESUMED: "); sb.append(this.mFragment); } this.mFragment.performPause(); this.mDispatcher.dispatchOnFragmentPaused(this.mFragment, false); } public void stop() { if (FragmentManager.isLoggingEnabled(3)) { StringBuilder sb = new StringBuilder(); sb.append("movefrom STARTED: "); sb.append(this.mFragment); } this.mFragment.performStop(); this.mDispatcher.dispatchOnFragmentStopped(this.mFragment, false); } public void saveState() { FragmentState fragmentState = new FragmentState(this.mFragment); Fragment fragment = this.mFragment; if (fragment.mState > -1 && fragmentState.mSavedFragmentState == null) { Bundle saveBasicState = saveBasicState(); fragmentState.mSavedFragmentState = saveBasicState; if (this.mFragment.mTargetWho != null) { if (saveBasicState == null) { fragmentState.mSavedFragmentState = new Bundle(); } fragmentState.mSavedFragmentState.putString(TARGET_STATE_TAG, this.mFragment.mTargetWho); int i = this.mFragment.mTargetRequestCode; if (i != 0) { fragmentState.mSavedFragmentState.putInt(TARGET_REQUEST_CODE_STATE_TAG, i); } } } else { fragmentState.mSavedFragmentState = fragment.mSavedFragmentState; } this.mFragmentStore.setSavedState(this.mFragment.mWho, fragmentState); } @Nullable public Fragment.SavedState saveInstanceState() { Bundle saveBasicState; if (this.mFragment.mState <= -1 || (saveBasicState = saveBasicState()) == null) { return null; } return new Fragment.SavedState(saveBasicState); } private Bundle saveBasicState() { Bundle bundle = new Bundle(); this.mFragment.performSaveInstanceState(bundle); this.mDispatcher.dispatchOnFragmentSaveInstanceState(this.mFragment, bundle, false); if (bundle.isEmpty()) { bundle = null; } if (this.mFragment.mView != null) { saveViewState(); } if (this.mFragment.mSavedViewState != null) { if (bundle == null) { bundle = new Bundle(); } bundle.putSparseParcelableArray(VIEW_STATE_TAG, this.mFragment.mSavedViewState); } if (this.mFragment.mSavedViewRegistryState != null) { if (bundle == null) { bundle = new Bundle(); } bundle.putBundle(VIEW_REGISTRY_STATE_TAG, this.mFragment.mSavedViewRegistryState); } if (!this.mFragment.mUserVisibleHint) { if (bundle == null) { bundle = new Bundle(); } bundle.putBoolean(USER_VISIBLE_HINT_TAG, this.mFragment.mUserVisibleHint); } return bundle; } public void saveViewState() { if (this.mFragment.mView == null) { return; } if (FragmentManager.isLoggingEnabled(2)) { StringBuilder sb = new StringBuilder(); sb.append("Saving view state for fragment "); sb.append(this.mFragment); sb.append(" with view "); sb.append(this.mFragment.mView); } SparseArray sparseArray = new SparseArray<>(); this.mFragment.mView.saveHierarchyState(sparseArray); if (sparseArray.size() > 0) { this.mFragment.mSavedViewState = sparseArray; } Bundle bundle = new Bundle(); this.mFragment.mViewLifecycleOwner.performSave(bundle); if (bundle.isEmpty()) { return; } this.mFragment.mSavedViewRegistryState = bundle; } public void destroyFragmentView() { View view; if (FragmentManager.isLoggingEnabled(3)) { StringBuilder sb = new StringBuilder(); sb.append("movefrom CREATE_VIEW: "); sb.append(this.mFragment); } Fragment fragment = this.mFragment; ViewGroup viewGroup = fragment.mContainer; if (viewGroup != null && (view = fragment.mView) != null) { viewGroup.removeView(view); } this.mFragment.performDestroyView(); this.mDispatcher.dispatchOnFragmentViewDestroyed(this.mFragment, false); Fragment fragment2 = this.mFragment; fragment2.mContainer = null; fragment2.mView = null; fragment2.mViewLifecycleOwner = null; fragment2.mViewLifecycleOwnerLiveData.setValue(null); this.mFragment.mInLayout = false; } public void destroy() { Fragment findActiveFragment; if (FragmentManager.isLoggingEnabled(3)) { StringBuilder sb = new StringBuilder(); sb.append("movefrom CREATED: "); sb.append(this.mFragment); } Fragment fragment = this.mFragment; boolean z = true; boolean z2 = fragment.mRemoving && !fragment.isInBackStack(); if (z2) { Fragment fragment2 = this.mFragment; if (!fragment2.mBeingSaved) { this.mFragmentStore.setSavedState(fragment2.mWho, null); } } if (z2 || this.mFragmentStore.getNonConfig().shouldDestroy(this.mFragment)) { FragmentHostCallback fragmentHostCallback = this.mFragment.mHost; if (fragmentHostCallback instanceof ViewModelStoreOwner) { z = this.mFragmentStore.getNonConfig().isCleared(); } else if (fragmentHostCallback.getContext() instanceof Activity) { z = true ^ ((Activity) fragmentHostCallback.getContext()).isChangingConfigurations(); } if ((z2 && !this.mFragment.mBeingSaved) || z) { this.mFragmentStore.getNonConfig().clearNonConfigState(this.mFragment); } this.mFragment.performDestroy(); this.mDispatcher.dispatchOnFragmentDestroyed(this.mFragment, false); for (FragmentStateManager fragmentStateManager : this.mFragmentStore.getActiveFragmentStateManagers()) { if (fragmentStateManager != null) { Fragment fragment3 = fragmentStateManager.getFragment(); if (this.mFragment.mWho.equals(fragment3.mTargetWho)) { fragment3.mTarget = this.mFragment; fragment3.mTargetWho = null; } } } Fragment fragment4 = this.mFragment; String str = fragment4.mTargetWho; if (str != null) { fragment4.mTarget = this.mFragmentStore.findActiveFragment(str); } this.mFragmentStore.makeInactive(this); return; } String str2 = this.mFragment.mTargetWho; if (str2 != null && (findActiveFragment = this.mFragmentStore.findActiveFragment(str2)) != null && findActiveFragment.mRetainInstance) { this.mFragment.mTarget = findActiveFragment; } this.mFragment.mState = 0; } public void detach() { if (FragmentManager.isLoggingEnabled(3)) { StringBuilder sb = new StringBuilder(); sb.append("movefrom ATTACHED: "); sb.append(this.mFragment); } this.mFragment.performDetach(); this.mDispatcher.dispatchOnFragmentDetached(this.mFragment, false); Fragment fragment = this.mFragment; fragment.mState = -1; fragment.mHost = null; fragment.mParentFragment = null; fragment.mFragmentManager = null; if ((!fragment.mRemoving || fragment.isInBackStack()) && !this.mFragmentStore.getNonConfig().shouldDestroy(this.mFragment)) { return; } if (FragmentManager.isLoggingEnabled(3)) { StringBuilder sb2 = new StringBuilder(); sb2.append("initState called for fragment: "); sb2.append(this.mFragment); } this.mFragment.initState(); } public void addViewToContainer() { int findFragmentIndexInContainer = this.mFragmentStore.findFragmentIndexInContainer(this.mFragment); Fragment fragment = this.mFragment; fragment.mContainer.addView(fragment.mView, findFragmentIndexInContainer); } }