package androidx.fragment.app; import android.animation.Animator; import android.annotation.SuppressLint; import android.app.Activity; import android.app.Application; import android.content.ComponentCallbacks; import android.content.Context; import android.content.ContextWrapper; import android.content.Intent; import android.content.IntentSender; import android.content.res.Configuration; import android.content.res.Resources; import android.os.Bundle; import android.os.Handler; import android.os.Looper; import android.os.Parcel; import android.os.Parcelable; import android.util.AttributeSet; import android.util.SparseArray; import android.view.ContextMenu; import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; import android.view.animation.Animation; import androidx.activity.result.ActivityResultCallback; import androidx.activity.result.ActivityResultCaller; import androidx.activity.result.ActivityResultLauncher; import androidx.activity.result.ActivityResultRegistry; import androidx.activity.result.ActivityResultRegistryOwner; import androidx.activity.result.contract.ActivityResultContract; import androidx.annotation.AnimRes; import androidx.annotation.CallSuper; import androidx.annotation.ContentView; import androidx.annotation.LayoutRes; import androidx.annotation.MainThread; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.annotation.RequiresApi; import androidx.annotation.RestrictTo; import androidx.annotation.StringRes; import androidx.annotation.UiThread; import androidx.arch.core.util.Function; import androidx.core.app.ActivityOptionsCompat; import androidx.core.app.SharedElementCallback; import androidx.core.view.LayoutInflaterCompat; import androidx.fragment.app.strictmode.FragmentStrictMode; import androidx.lifecycle.HasDefaultViewModelProviderFactory; import androidx.lifecycle.Lifecycle; import androidx.lifecycle.LifecycleEventObserver; import androidx.lifecycle.LifecycleOwner; import androidx.lifecycle.LifecycleRegistry; import androidx.lifecycle.LiveData; import androidx.lifecycle.MutableLiveData; import androidx.lifecycle.SavedStateHandleSupport; import androidx.lifecycle.SavedStateViewModelFactory; import androidx.lifecycle.ViewModelProvider; import androidx.lifecycle.ViewModelStore; import androidx.lifecycle.ViewModelStoreOwner; import androidx.lifecycle.ViewTreeLifecycleOwner; import androidx.lifecycle.ViewTreeViewModelStoreOwner; import androidx.lifecycle.viewmodel.CreationExtras; import androidx.lifecycle.viewmodel.MutableCreationExtras; import androidx.loader.app.LoaderManager; import androidx.savedstate.SavedStateRegistry; import androidx.savedstate.SavedStateRegistryController; import androidx.savedstate.SavedStateRegistryOwner; import androidx.savedstate.ViewTreeSavedStateRegistryOwner; import com.facebook.internal.security.CertificateUtil; import java.io.FileDescriptor; import java.io.PrintWriter; import java.lang.reflect.InvocationTargetException; import java.util.ArrayList; import java.util.Iterator; import java.util.UUID; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicReference; /* loaded from: classes.dex */ public class Fragment implements ComponentCallbacks, View.OnCreateContextMenuListener, LifecycleOwner, ViewModelStoreOwner, HasDefaultViewModelProviderFactory, SavedStateRegistryOwner, ActivityResultCaller { static final int ACTIVITY_CREATED = 4; static final int ATTACHED = 0; static final int AWAITING_ENTER_EFFECTS = 6; static final int AWAITING_EXIT_EFFECTS = 3; static final int CREATED = 1; static final int INITIALIZING = -1; static final int RESUMED = 7; static final int STARTED = 5; static final Object USE_DEFAULT_TRANSITION = new Object(); static final int VIEW_CREATED = 2; boolean mAdded; AnimationInfo mAnimationInfo; Bundle mArguments; int mBackStackNesting; boolean mBeingSaved; private boolean mCalled; @NonNull FragmentManager mChildFragmentManager; ViewGroup mContainer; int mContainerId; @LayoutRes private int mContentLayoutId; ViewModelProvider.Factory mDefaultFactory; boolean mDeferStart; boolean mDetached; int mFragmentId; FragmentManager mFragmentManager; boolean mFromLayout; boolean mHasMenu; boolean mHidden; boolean mHiddenChanged; FragmentHostCallback mHost; boolean mInLayout; boolean mIsCreated; private Boolean mIsPrimaryNavigationFragment; LayoutInflater mLayoutInflater; LifecycleRegistry mLifecycleRegistry; Lifecycle.State mMaxState; boolean mMenuVisible; private final AtomicInteger mNextLocalRequestCode; private final ArrayList mOnPreAttachedListeners; Fragment mParentFragment; boolean mPerformedCreateView; Runnable mPostponedDurationRunnable; Handler mPostponedHandler; @Nullable @RestrictTo({RestrictTo.Scope.LIBRARY}) public String mPreviousWho; boolean mRemoving; boolean mRestored; boolean mRetainInstance; boolean mRetainInstanceChangedWhileDetached; Bundle mSavedFragmentState; private final OnPreAttachedListener mSavedStateAttachListener; SavedStateRegistryController mSavedStateRegistryController; @Nullable Boolean mSavedUserVisibleHint; Bundle mSavedViewRegistryState; SparseArray mSavedViewState; int mState; String mTag; Fragment mTarget; int mTargetRequestCode; String mTargetWho; boolean mUserVisibleHint; View mView; @Nullable FragmentViewLifecycleOwner mViewLifecycleOwner; MutableLiveData mViewLifecycleOwnerLiveData; @NonNull String mWho; @Nullable public final Bundle getArguments() { return this.mArguments; } @Nullable @Deprecated public final FragmentManager getFragmentManager() { return this.mFragmentManager; } public final int getId() { return this.mFragmentId; } @Override // androidx.lifecycle.LifecycleOwner @NonNull public Lifecycle getLifecycle() { return this.mLifecycleRegistry; } @Nullable public final Fragment getParentFragment() { return this.mParentFragment; } @Nullable public final String getTag() { return this.mTag; } @Deprecated public boolean getUserVisibleHint() { return this.mUserVisibleHint; } @Nullable public View getView() { return this.mView; } @NonNull public LiveData getViewLifecycleOwnerLiveData() { return this.mViewLifecycleOwnerLiveData; } @SuppressLint({"KotlinPropertyAccess"}) @RestrictTo({RestrictTo.Scope.LIBRARY_GROUP_PREFIX}) public final boolean hasOptionsMenu() { return this.mHasMenu; } public final boolean isAdded() { return this.mHost != null && this.mAdded; } public final boolean isDetached() { return this.mDetached; } public final boolean isInBackStack() { return this.mBackStackNesting > 0; } public final boolean isInLayout() { return this.mInLayout; } public final boolean isRemoving() { return this.mRemoving; } public final boolean isResumed() { return this.mState >= 7; } @CallSuper @MainThread @Deprecated public void onActivityCreated(@Nullable Bundle bundle) { this.mCalled = true; } @CallSuper @MainThread @Deprecated public void onAttach(@NonNull Activity activity) { this.mCalled = true; } @MainThread @Deprecated public void onAttachFragment(@NonNull Fragment fragment) { } @Override // android.content.ComponentCallbacks @CallSuper public void onConfigurationChanged(@NonNull Configuration configuration) { this.mCalled = true; } @MainThread public boolean onContextItemSelected(@NonNull MenuItem menuItem) { return false; } @Nullable @MainThread public Animation onCreateAnimation(int i, boolean z, int i2) { return null; } @Nullable @MainThread public Animator onCreateAnimator(int i, boolean z, int i2) { return null; } @MainThread @Deprecated public void onCreateOptionsMenu(@NonNull Menu menu, @NonNull MenuInflater menuInflater) { } @CallSuper @MainThread public void onDestroy() { this.mCalled = true; } @MainThread @Deprecated public void onDestroyOptionsMenu() { } @CallSuper @MainThread public void onDestroyView() { this.mCalled = true; } @CallSuper @MainThread public void onDetach() { this.mCalled = true; } @MainThread public void onHiddenChanged(boolean z) { } @CallSuper @UiThread @Deprecated public void onInflate(@NonNull Activity activity, @NonNull AttributeSet attributeSet, @Nullable Bundle bundle) { this.mCalled = true; } @Override // android.content.ComponentCallbacks @CallSuper @MainThread public void onLowMemory() { this.mCalled = true; } public void onMultiWindowModeChanged(boolean z) { } @MainThread @Deprecated public boolean onOptionsItemSelected(@NonNull MenuItem menuItem) { return false; } @MainThread @Deprecated public void onOptionsMenuClosed(@NonNull Menu menu) { } @CallSuper @MainThread public void onPause() { this.mCalled = true; } public void onPictureInPictureModeChanged(boolean z) { } @MainThread @Deprecated public void onPrepareOptionsMenu(@NonNull Menu menu) { } @MainThread public void onPrimaryNavigationFragmentChanged(boolean z) { } @Deprecated public void onRequestPermissionsResult(int i, @NonNull String[] strArr, @NonNull int[] iArr) { } @CallSuper @MainThread public void onResume() { this.mCalled = true; } @MainThread public void onSaveInstanceState(@NonNull Bundle bundle) { } @CallSuper @MainThread public void onStart() { this.mCalled = true; } @CallSuper @MainThread public void onStop() { this.mCalled = true; } @MainThread public void onViewCreated(@NonNull View view, @Nullable Bundle bundle) { } @CallSuper @MainThread public void onViewStateRestored(@Nullable Bundle bundle) { this.mCalled = true; } public static abstract class OnPreAttachedListener { public abstract void onPreAttached(); private OnPreAttachedListener() { } } @NonNull @MainThread public LifecycleOwner getViewLifecycleOwner() { FragmentViewLifecycleOwner fragmentViewLifecycleOwner = this.mViewLifecycleOwner; if (fragmentViewLifecycleOwner != null) { return fragmentViewLifecycleOwner; } throw new IllegalStateException("Can't access the Fragment View's LifecycleOwner when getView() is null i.e., before onCreateView() or after onDestroyView()"); } @Override // androidx.lifecycle.ViewModelStoreOwner @NonNull public ViewModelStore getViewModelStore() { if (this.mFragmentManager == null) { throw new IllegalStateException("Can't access ViewModels from detached fragment"); } if (getMinimumMaxLifecycleState() == Lifecycle.State.INITIALIZED.ordinal()) { throw new IllegalStateException("Calling getViewModelStore() before a Fragment reaches onCreate() when using setMaxLifecycle(INITIALIZED) is not supported"); } return this.mFragmentManager.getViewModelStore(this); } private int getMinimumMaxLifecycleState() { Lifecycle.State state = this.mMaxState; if (state == Lifecycle.State.INITIALIZED || this.mParentFragment == null) { return state.ordinal(); } return Math.min(state.ordinal(), this.mParentFragment.getMinimumMaxLifecycleState()); } @Override // androidx.lifecycle.HasDefaultViewModelProviderFactory @NonNull public ViewModelProvider.Factory getDefaultViewModelProviderFactory() { Application application; if (this.mFragmentManager == null) { throw new IllegalStateException("Can't access ViewModels from detached fragment"); } if (this.mDefaultFactory == null) { Context applicationContext = requireContext().getApplicationContext(); while (true) { if (!(applicationContext instanceof ContextWrapper)) { application = null; break; } if (applicationContext instanceof Application) { application = (Application) applicationContext; break; } applicationContext = ((ContextWrapper) applicationContext).getBaseContext(); } if (application == null && FragmentManager.isLoggingEnabled(3)) { StringBuilder sb = new StringBuilder(); sb.append("Could not find Application instance from Context "); sb.append(requireContext().getApplicationContext()); sb.append(", you will need CreationExtras to use AndroidViewModel with the default ViewModelProvider.Factory"); } this.mDefaultFactory = new SavedStateViewModelFactory(application, this, getArguments()); } return this.mDefaultFactory; } @Override // androidx.lifecycle.HasDefaultViewModelProviderFactory @NonNull @CallSuper public CreationExtras getDefaultViewModelCreationExtras() { Application application; Context applicationContext = requireContext().getApplicationContext(); while (true) { if (!(applicationContext instanceof ContextWrapper)) { application = null; break; } if (applicationContext instanceof Application) { application = (Application) applicationContext; break; } applicationContext = ((ContextWrapper) applicationContext).getBaseContext(); } if (application == null && FragmentManager.isLoggingEnabled(3)) { StringBuilder sb = new StringBuilder(); sb.append("Could not find Application instance from Context "); sb.append(requireContext().getApplicationContext()); sb.append(", you will not be able to use AndroidViewModel with the default ViewModelProvider.Factory"); } MutableCreationExtras mutableCreationExtras = new MutableCreationExtras(); if (application != null) { mutableCreationExtras.set(ViewModelProvider.AndroidViewModelFactory.APPLICATION_KEY, application); } mutableCreationExtras.set(SavedStateHandleSupport.SAVED_STATE_REGISTRY_OWNER_KEY, this); mutableCreationExtras.set(SavedStateHandleSupport.VIEW_MODEL_STORE_OWNER_KEY, this); if (getArguments() != null) { mutableCreationExtras.set(SavedStateHandleSupport.DEFAULT_ARGS_KEY, getArguments()); } return mutableCreationExtras; } @Override // androidx.savedstate.SavedStateRegistryOwner @NonNull public final SavedStateRegistry getSavedStateRegistry() { return this.mSavedStateRegistryController.getSavedStateRegistry(); } @SuppressLint({"BanParcelableUsage, ParcelClassLoader"}) public static class SavedState implements Parcelable { @NonNull public static final Parcelable.Creator CREATOR = new Parcelable.ClassLoaderCreator() { // from class: androidx.fragment.app.Fragment.SavedState.1 @Override // android.os.Parcelable.Creator public SavedState createFromParcel(Parcel parcel) { return new SavedState(parcel, null); } /* JADX WARN: Can't rename method to resolve collision */ @Override // android.os.Parcelable.ClassLoaderCreator public SavedState createFromParcel(Parcel parcel, ClassLoader classLoader) { return new SavedState(parcel, classLoader); } @Override // android.os.Parcelable.Creator public SavedState[] newArray(int i) { return new SavedState[i]; } }; final Bundle mState; @Override // android.os.Parcelable public int describeContents() { return 0; } public SavedState(Bundle bundle) { this.mState = bundle; } public SavedState(@NonNull Parcel parcel, @Nullable ClassLoader classLoader) { Bundle readBundle = parcel.readBundle(); this.mState = readBundle; if (classLoader == null || readBundle == null) { return; } readBundle.setClassLoader(classLoader); } @Override // android.os.Parcelable public void writeToParcel(@NonNull Parcel parcel, int i) { parcel.writeBundle(this.mState); } } public static class InstantiationException extends RuntimeException { public InstantiationException(@NonNull String str, @Nullable Exception exc) { super(str, exc); } } public Fragment() { this.mState = -1; this.mWho = UUID.randomUUID().toString(); this.mTargetWho = null; this.mIsPrimaryNavigationFragment = null; this.mChildFragmentManager = new FragmentManagerImpl(); this.mMenuVisible = true; this.mUserVisibleHint = true; this.mPostponedDurationRunnable = new Runnable() { // from class: androidx.fragment.app.Fragment.1 @Override // java.lang.Runnable public void run() { Fragment.this.startPostponedEnterTransition(); } }; this.mMaxState = Lifecycle.State.RESUMED; this.mViewLifecycleOwnerLiveData = new MutableLiveData<>(); this.mNextLocalRequestCode = new AtomicInteger(); this.mOnPreAttachedListeners = new ArrayList<>(); this.mSavedStateAttachListener = new OnPreAttachedListener() { // from class: androidx.fragment.app.Fragment.2 @Override // androidx.fragment.app.Fragment.OnPreAttachedListener public void onPreAttached() { Fragment.this.mSavedStateRegistryController.performAttach(); SavedStateHandleSupport.enableSavedStateHandles(Fragment.this); } }; initLifecycle(); } @ContentView public Fragment(@LayoutRes int i) { this(); this.mContentLayoutId = i; } private void initLifecycle() { this.mLifecycleRegistry = new LifecycleRegistry(this); this.mSavedStateRegistryController = SavedStateRegistryController.create(this); this.mDefaultFactory = null; if (this.mOnPreAttachedListeners.contains(this.mSavedStateAttachListener)) { return; } registerOnPreAttachListener(this.mSavedStateAttachListener); } @NonNull @Deprecated public static Fragment instantiate(@NonNull Context context, @NonNull String str) { return instantiate(context, str, null); } @NonNull @Deprecated public static Fragment instantiate(@NonNull Context context, @NonNull String str, @Nullable Bundle bundle) { try { Fragment newInstance = FragmentFactory.loadFragmentClass(context.getClassLoader(), str).getConstructor(new Class[0]).newInstance(new Object[0]); if (bundle != null) { bundle.setClassLoader(newInstance.getClass().getClassLoader()); newInstance.setArguments(bundle); } return newInstance; } catch (IllegalAccessException e) { throw new InstantiationException("Unable to instantiate fragment " + str + ": make sure class name exists, is public, and has an empty constructor that is public", e); } catch (java.lang.InstantiationException e2) { throw new InstantiationException("Unable to instantiate fragment " + str + ": make sure class name exists, is public, and has an empty constructor that is public", e2); } catch (NoSuchMethodException e3) { throw new InstantiationException("Unable to instantiate fragment " + str + ": could not find Fragment constructor", e3); } catch (InvocationTargetException e4) { throw new InstantiationException("Unable to instantiate fragment " + str + ": calling Fragment constructor caused an exception", e4); } } public final void restoreViewState(Bundle bundle) { SparseArray sparseArray = this.mSavedViewState; if (sparseArray != null) { this.mView.restoreHierarchyState(sparseArray); this.mSavedViewState = null; } if (this.mView != null) { this.mViewLifecycleOwner.performRestore(this.mSavedViewRegistryState); this.mSavedViewRegistryState = null; } this.mCalled = false; onViewStateRestored(bundle); if (this.mCalled) { if (this.mView != null) { this.mViewLifecycleOwner.handleLifecycleEvent(Lifecycle.Event.ON_CREATE); } } else { throw new SuperNotCalledException("Fragment " + this + " did not call through to super.onViewStateRestored()"); } } public final boolean equals(@Nullable Object obj) { return super.equals(obj); } public final int hashCode() { return super.hashCode(); } @NonNull public String toString() { StringBuilder sb = new StringBuilder(128); sb.append(getClass().getSimpleName()); sb.append("{"); sb.append(Integer.toHexString(System.identityHashCode(this))); sb.append("}"); sb.append(" ("); sb.append(this.mWho); if (this.mFragmentId != 0) { sb.append(" id=0x"); sb.append(Integer.toHexString(this.mFragmentId)); } if (this.mTag != null) { sb.append(" tag="); sb.append(this.mTag); } sb.append(")"); return sb.toString(); } public void setArguments(@Nullable Bundle bundle) { if (this.mFragmentManager != null && isStateSaved()) { throw new IllegalStateException("Fragment already added and state has been saved"); } this.mArguments = bundle; } @NonNull public final Bundle requireArguments() { Bundle arguments = getArguments(); if (arguments != null) { return arguments; } throw new IllegalStateException("Fragment " + this + " does not have any arguments."); } public final boolean isStateSaved() { FragmentManager fragmentManager = this.mFragmentManager; if (fragmentManager == null) { return false; } return fragmentManager.isStateSaved(); } public void setInitialSavedState(@Nullable SavedState savedState) { Bundle bundle; if (this.mFragmentManager != null) { throw new IllegalStateException("Fragment already added"); } if (savedState == null || (bundle = savedState.mState) == null) { bundle = null; } this.mSavedFragmentState = bundle; } @Deprecated public void setTargetFragment(@Nullable Fragment fragment, int i) { if (fragment != null) { FragmentStrictMode.onSetTargetFragmentUsage(this, fragment, i); } FragmentManager fragmentManager = this.mFragmentManager; FragmentManager fragmentManager2 = fragment != null ? fragment.mFragmentManager : null; if (fragmentManager != null && fragmentManager2 != null && fragmentManager != fragmentManager2) { throw new IllegalArgumentException("Fragment " + fragment + " must share the same FragmentManager to be set as a target fragment"); } for (Fragment fragment2 = fragment; fragment2 != null; fragment2 = fragment2.getTargetFragment(false)) { if (fragment2.equals(this)) { throw new IllegalArgumentException("Setting " + fragment + " as the target of " + this + " would create a target cycle"); } } if (fragment == null) { this.mTargetWho = null; this.mTarget = null; } else if (this.mFragmentManager == null || fragment.mFragmentManager == null) { this.mTargetWho = null; this.mTarget = fragment; } else { this.mTargetWho = fragment.mWho; this.mTarget = null; } this.mTargetRequestCode = i; } @Nullable @Deprecated public final Fragment getTargetFragment() { return getTargetFragment(true); } @Nullable private Fragment getTargetFragment(boolean z) { String str; if (z) { FragmentStrictMode.onGetTargetFragmentUsage(this); } Fragment fragment = this.mTarget; if (fragment != null) { return fragment; } FragmentManager fragmentManager = this.mFragmentManager; if (fragmentManager == null || (str = this.mTargetWho) == null) { return null; } return fragmentManager.findActiveFragment(str); } @Deprecated public final int getTargetRequestCode() { FragmentStrictMode.onGetTargetFragmentRequestCodeUsage(this); return this.mTargetRequestCode; } @Nullable public Context getContext() { FragmentHostCallback fragmentHostCallback = this.mHost; if (fragmentHostCallback == null) { return null; } return fragmentHostCallback.getContext(); } @NonNull public final Context requireContext() { Context context = getContext(); if (context != null) { return context; } throw new IllegalStateException("Fragment " + this + " not attached to a context."); } @Nullable public final FragmentActivity getActivity() { FragmentHostCallback fragmentHostCallback = this.mHost; if (fragmentHostCallback == null) { return null; } return (FragmentActivity) fragmentHostCallback.getActivity(); } @NonNull public final FragmentActivity requireActivity() { FragmentActivity activity = getActivity(); if (activity != null) { return activity; } throw new IllegalStateException("Fragment " + this + " not attached to an activity."); } @Nullable public final Object getHost() { FragmentHostCallback fragmentHostCallback = this.mHost; if (fragmentHostCallback == null) { return null; } return fragmentHostCallback.onGetHost(); } @NonNull public final Object requireHost() { Object host = getHost(); if (host != null) { return host; } throw new IllegalStateException("Fragment " + this + " not attached to a host."); } @NonNull public final Resources getResources() { return requireContext().getResources(); } @NonNull public final CharSequence getText(@StringRes int i) { return getResources().getText(i); } @NonNull public final String getString(@StringRes int i) { return getResources().getString(i); } @NonNull public final String getString(@StringRes int i, @Nullable Object... objArr) { return getResources().getString(i, objArr); } @NonNull public final FragmentManager getParentFragmentManager() { FragmentManager fragmentManager = this.mFragmentManager; if (fragmentManager != null) { return fragmentManager; } throw new IllegalStateException("Fragment " + this + " not associated with a fragment manager."); } @NonNull @Deprecated public final FragmentManager requireFragmentManager() { return getParentFragmentManager(); } @NonNull public final FragmentManager getChildFragmentManager() { if (this.mHost != null) { return this.mChildFragmentManager; } throw new IllegalStateException("Fragment " + this + " has not been attached yet."); } @NonNull public final Fragment requireParentFragment() { Fragment parentFragment = getParentFragment(); if (parentFragment != null) { return parentFragment; } if (getContext() == null) { throw new IllegalStateException("Fragment " + this + " is not attached to any Fragment or host"); } throw new IllegalStateException("Fragment " + this + " is not a child Fragment, it is directly attached to " + getContext()); } public final boolean isVisible() { View view; return (!isAdded() || isHidden() || (view = this.mView) == null || view.getWindowToken() == null || this.mView.getVisibility() != 0) ? false : true; } public final boolean isHidden() { FragmentManager fragmentManager; return this.mHidden || ((fragmentManager = this.mFragmentManager) != null && fragmentManager.isParentHidden(this.mParentFragment)); } @RestrictTo({RestrictTo.Scope.LIBRARY_GROUP_PREFIX}) public final boolean isMenuVisible() { FragmentManager fragmentManager; return this.mMenuVisible && ((fragmentManager = this.mFragmentManager) == null || fragmentManager.isParentMenuVisible(this.mParentFragment)); } @Deprecated public void setRetainInstance(boolean z) { FragmentStrictMode.onSetRetainInstanceUsage(this); this.mRetainInstance = z; FragmentManager fragmentManager = this.mFragmentManager; if (fragmentManager == null) { this.mRetainInstanceChangedWhileDetached = true; } else if (z) { fragmentManager.addRetainedFragment(this); } else { fragmentManager.removeRetainedFragment(this); } } @Deprecated public final boolean getRetainInstance() { FragmentStrictMode.onGetRetainInstanceUsage(this); return this.mRetainInstance; } @Deprecated public void setHasOptionsMenu(boolean z) { if (this.mHasMenu != z) { this.mHasMenu = z; if (!isAdded() || isHidden()) { return; } this.mHost.onSupportInvalidateOptionsMenu(); } } public void setMenuVisibility(boolean z) { if (this.mMenuVisible != z) { this.mMenuVisible = z; if (this.mHasMenu && isAdded() && !isHidden()) { this.mHost.onSupportInvalidateOptionsMenu(); } } } @Deprecated public void setUserVisibleHint(boolean z) { FragmentStrictMode.onSetUserVisibleHint(this, z); if (!this.mUserVisibleHint && z && this.mState < 5 && this.mFragmentManager != null && isAdded() && this.mIsCreated) { FragmentManager fragmentManager = this.mFragmentManager; fragmentManager.performPendingDeferredStart(fragmentManager.createOrGetFragmentStateManager(this)); } this.mUserVisibleHint = z; this.mDeferStart = this.mState < 5 && !z; if (this.mSavedFragmentState != null) { this.mSavedUserVisibleHint = Boolean.valueOf(z); } } @NonNull @Deprecated public LoaderManager getLoaderManager() { return LoaderManager.getInstance(this); } public void startActivity(@SuppressLint({"UnknownNullness"}) Intent intent) { startActivity(intent, null); } public void startActivity(@SuppressLint({"UnknownNullness"}) Intent intent, @Nullable Bundle bundle) { FragmentHostCallback fragmentHostCallback = this.mHost; if (fragmentHostCallback == null) { throw new IllegalStateException("Fragment " + this + " not attached to Activity"); } fragmentHostCallback.onStartActivityFromFragment(this, intent, -1, bundle); } @Deprecated public void startActivityForResult(@SuppressLint({"UnknownNullness"}) Intent intent, int i) { startActivityForResult(intent, i, null); } @Deprecated public void startActivityForResult(@SuppressLint({"UnknownNullness"}) Intent intent, int i, @Nullable Bundle bundle) { if (this.mHost == null) { throw new IllegalStateException("Fragment " + this + " not attached to Activity"); } getParentFragmentManager().launchStartActivityForResult(this, intent, i, bundle); } @Deprecated public void startIntentSenderForResult(@SuppressLint({"UnknownNullness"}) IntentSender intentSender, int i, @Nullable Intent intent, int i2, int i3, int i4, @Nullable Bundle bundle) throws IntentSender.SendIntentException { if (this.mHost == null) { throw new IllegalStateException("Fragment " + this + " not attached to Activity"); } if (FragmentManager.isLoggingEnabled(2)) { StringBuilder sb = new StringBuilder(); sb.append("Fragment "); sb.append(this); sb.append(" received the following in startIntentSenderForResult() requestCode: "); sb.append(i); sb.append(" IntentSender: "); sb.append(intentSender); sb.append(" fillInIntent: "); sb.append(intent); sb.append(" options: "); sb.append(bundle); } getParentFragmentManager().launchStartIntentSenderForResult(this, intentSender, i, intent, i2, i3, i4, bundle); } @Deprecated public void onActivityResult(int i, int i2, @Nullable Intent intent) { if (FragmentManager.isLoggingEnabled(2)) { StringBuilder sb = new StringBuilder(); sb.append("Fragment "); sb.append(this); sb.append(" received the following in onActivityResult(): requestCode: "); sb.append(i); sb.append(" resultCode: "); sb.append(i2); sb.append(" data: "); sb.append(intent); } } @Deprecated public final void requestPermissions(@NonNull String[] strArr, int i) { if (this.mHost == null) { throw new IllegalStateException("Fragment " + this + " not attached to Activity"); } getParentFragmentManager().launchRequestPermissions(this, strArr, i); } public boolean shouldShowRequestPermissionRationale(@NonNull String str) { FragmentHostCallback fragmentHostCallback = this.mHost; if (fragmentHostCallback != null) { return fragmentHostCallback.onShouldShowRequestPermissionRationale(str); } return false; } @NonNull public LayoutInflater onGetLayoutInflater(@Nullable Bundle bundle) { return getLayoutInflater(bundle); } @NonNull public final LayoutInflater getLayoutInflater() { LayoutInflater layoutInflater = this.mLayoutInflater; return layoutInflater == null ? performGetLayoutInflater(null) : layoutInflater; } @NonNull public LayoutInflater performGetLayoutInflater(@Nullable Bundle bundle) { LayoutInflater onGetLayoutInflater = onGetLayoutInflater(bundle); this.mLayoutInflater = onGetLayoutInflater; return onGetLayoutInflater; } @NonNull @RestrictTo({RestrictTo.Scope.LIBRARY_GROUP_PREFIX}) @Deprecated public LayoutInflater getLayoutInflater(@Nullable Bundle bundle) { FragmentHostCallback fragmentHostCallback = this.mHost; if (fragmentHostCallback == null) { throw new IllegalStateException("onGetLayoutInflater() cannot be executed until the Fragment is attached to the FragmentManager."); } LayoutInflater onGetLayoutInflater = fragmentHostCallback.onGetLayoutInflater(); LayoutInflaterCompat.setFactory2(onGetLayoutInflater, this.mChildFragmentManager.getLayoutInflaterFactory()); return onGetLayoutInflater; } @CallSuper @UiThread public void onInflate(@NonNull Context context, @NonNull AttributeSet attributeSet, @Nullable Bundle bundle) { this.mCalled = true; FragmentHostCallback fragmentHostCallback = this.mHost; Activity activity = fragmentHostCallback == null ? null : fragmentHostCallback.getActivity(); if (activity != null) { this.mCalled = false; onInflate(activity, attributeSet, bundle); } } @CallSuper @MainThread public void onAttach(@NonNull Context context) { this.mCalled = true; FragmentHostCallback fragmentHostCallback = this.mHost; Activity activity = fragmentHostCallback == null ? null : fragmentHostCallback.getActivity(); if (activity != null) { this.mCalled = false; onAttach(activity); } } @CallSuper @MainThread public void onCreate(@Nullable Bundle bundle) { this.mCalled = true; restoreChildFragmentState(bundle); if (this.mChildFragmentManager.isStateAtLeast(1)) { return; } this.mChildFragmentManager.dispatchCreate(); } public void restoreChildFragmentState(@Nullable Bundle bundle) { Parcelable parcelable; if (bundle == null || (parcelable = bundle.getParcelable("android:support:fragments")) == null) { return; } this.mChildFragmentManager.restoreSaveStateInternal(parcelable); this.mChildFragmentManager.dispatchCreate(); } @Nullable @MainThread public View onCreateView(@NonNull LayoutInflater layoutInflater, @Nullable ViewGroup viewGroup, @Nullable Bundle bundle) { int i = this.mContentLayoutId; if (i != 0) { return layoutInflater.inflate(i, viewGroup, false); } return null; } @NonNull public final View requireView() { View view = getView(); if (view != null) { return view; } throw new IllegalStateException("Fragment " + this + " did not return a View from onCreateView() or this was called before onCreateView()."); } public void initState() { initLifecycle(); this.mPreviousWho = this.mWho; this.mWho = UUID.randomUUID().toString(); this.mAdded = false; this.mRemoving = false; this.mFromLayout = false; this.mInLayout = false; this.mRestored = false; this.mBackStackNesting = 0; this.mFragmentManager = null; this.mChildFragmentManager = new FragmentManagerImpl(); this.mHost = null; this.mFragmentId = 0; this.mContainerId = 0; this.mTag = null; this.mHidden = false; this.mDetached = false; } @Override // android.view.View.OnCreateContextMenuListener @MainThread public void onCreateContextMenu(@NonNull ContextMenu contextMenu, @NonNull View view, @Nullable ContextMenu.ContextMenuInfo contextMenuInfo) { requireActivity().onCreateContextMenu(contextMenu, view, contextMenuInfo); } public void registerForContextMenu(@NonNull View view) { view.setOnCreateContextMenuListener(this); } public void unregisterForContextMenu(@NonNull View view) { view.setOnCreateContextMenuListener(null); } public void setEnterSharedElementCallback(@Nullable SharedElementCallback sharedElementCallback) { ensureAnimationInfo().mEnterTransitionCallback = sharedElementCallback; } public void setExitSharedElementCallback(@Nullable SharedElementCallback sharedElementCallback) { ensureAnimationInfo().mExitTransitionCallback = sharedElementCallback; } public void setEnterTransition(@Nullable Object obj) { ensureAnimationInfo().mEnterTransition = obj; } @Nullable public Object getEnterTransition() { AnimationInfo animationInfo = this.mAnimationInfo; if (animationInfo == null) { return null; } return animationInfo.mEnterTransition; } public void setReturnTransition(@Nullable Object obj) { ensureAnimationInfo().mReturnTransition = obj; } @Nullable public Object getReturnTransition() { AnimationInfo animationInfo = this.mAnimationInfo; if (animationInfo == null) { return null; } Object obj = animationInfo.mReturnTransition; return obj == USE_DEFAULT_TRANSITION ? getEnterTransition() : obj; } public void setExitTransition(@Nullable Object obj) { ensureAnimationInfo().mExitTransition = obj; } @Nullable public Object getExitTransition() { AnimationInfo animationInfo = this.mAnimationInfo; if (animationInfo == null) { return null; } return animationInfo.mExitTransition; } public void setReenterTransition(@Nullable Object obj) { ensureAnimationInfo().mReenterTransition = obj; } @Nullable public Object getReenterTransition() { AnimationInfo animationInfo = this.mAnimationInfo; if (animationInfo == null) { return null; } Object obj = animationInfo.mReenterTransition; return obj == USE_DEFAULT_TRANSITION ? getExitTransition() : obj; } public void setSharedElementEnterTransition(@Nullable Object obj) { ensureAnimationInfo().mSharedElementEnterTransition = obj; } @Nullable public Object getSharedElementEnterTransition() { AnimationInfo animationInfo = this.mAnimationInfo; if (animationInfo == null) { return null; } return animationInfo.mSharedElementEnterTransition; } public void setSharedElementReturnTransition(@Nullable Object obj) { ensureAnimationInfo().mSharedElementReturnTransition = obj; } @Nullable public Object getSharedElementReturnTransition() { AnimationInfo animationInfo = this.mAnimationInfo; if (animationInfo == null) { return null; } Object obj = animationInfo.mSharedElementReturnTransition; return obj == USE_DEFAULT_TRANSITION ? getSharedElementEnterTransition() : obj; } public void setAllowEnterTransitionOverlap(boolean z) { ensureAnimationInfo().mAllowEnterTransitionOverlap = Boolean.valueOf(z); } public boolean getAllowEnterTransitionOverlap() { Boolean bool; AnimationInfo animationInfo = this.mAnimationInfo; if (animationInfo == null || (bool = animationInfo.mAllowEnterTransitionOverlap) == null) { return true; } return bool.booleanValue(); } public void setAllowReturnTransitionOverlap(boolean z) { ensureAnimationInfo().mAllowReturnTransitionOverlap = Boolean.valueOf(z); } public boolean getAllowReturnTransitionOverlap() { Boolean bool; AnimationInfo animationInfo = this.mAnimationInfo; if (animationInfo == null || (bool = animationInfo.mAllowReturnTransitionOverlap) == null) { return true; } return bool.booleanValue(); } public void postponeEnterTransition() { ensureAnimationInfo().mEnterTransitionPostponed = true; } public final void postponeEnterTransition(long j, @NonNull TimeUnit timeUnit) { ensureAnimationInfo().mEnterTransitionPostponed = true; Handler handler = this.mPostponedHandler; if (handler != null) { handler.removeCallbacks(this.mPostponedDurationRunnable); } FragmentManager fragmentManager = this.mFragmentManager; if (fragmentManager != null) { this.mPostponedHandler = fragmentManager.getHost().getHandler(); } else { this.mPostponedHandler = new Handler(Looper.getMainLooper()); } this.mPostponedHandler.removeCallbacks(this.mPostponedDurationRunnable); this.mPostponedHandler.postDelayed(this.mPostponedDurationRunnable, timeUnit.toMillis(j)); } public void startPostponedEnterTransition() { if (this.mAnimationInfo == null || !ensureAnimationInfo().mEnterTransitionPostponed) { return; } if (this.mHost == null) { ensureAnimationInfo().mEnterTransitionPostponed = false; } else if (Looper.myLooper() != this.mHost.getHandler().getLooper()) { this.mHost.getHandler().postAtFrontOfQueue(new Runnable() { // from class: androidx.fragment.app.Fragment.3 @Override // java.lang.Runnable public void run() { Fragment.this.callStartTransitionListener(false); } }); } else { callStartTransitionListener(true); } } public void callStartTransitionListener(boolean z) { ViewGroup viewGroup; FragmentManager fragmentManager; AnimationInfo animationInfo = this.mAnimationInfo; if (animationInfo != null) { animationInfo.mEnterTransitionPostponed = false; } if (this.mView == null || (viewGroup = this.mContainer) == null || (fragmentManager = this.mFragmentManager) == null) { return; } final SpecialEffectsController orCreateController = SpecialEffectsController.getOrCreateController(viewGroup, fragmentManager); orCreateController.markPostponedState(); if (z) { this.mHost.getHandler().post(new Runnable() { // from class: androidx.fragment.app.Fragment.4 @Override // java.lang.Runnable public void run() { orCreateController.executePendingOperations(); } }); } else { orCreateController.executePendingOperations(); } Handler handler = this.mPostponedHandler; if (handler != null) { handler.removeCallbacks(this.mPostponedDurationRunnable); this.mPostponedHandler = null; } } public void dump(@NonNull String str, @Nullable FileDescriptor fileDescriptor, @NonNull PrintWriter printWriter, @Nullable String[] strArr) { printWriter.print(str); printWriter.print("mFragmentId=#"); printWriter.print(Integer.toHexString(this.mFragmentId)); printWriter.print(" mContainerId=#"); printWriter.print(Integer.toHexString(this.mContainerId)); printWriter.print(" mTag="); printWriter.println(this.mTag); printWriter.print(str); printWriter.print("mState="); printWriter.print(this.mState); printWriter.print(" mWho="); printWriter.print(this.mWho); printWriter.print(" mBackStackNesting="); printWriter.println(this.mBackStackNesting); printWriter.print(str); printWriter.print("mAdded="); printWriter.print(this.mAdded); printWriter.print(" mRemoving="); printWriter.print(this.mRemoving); printWriter.print(" mFromLayout="); printWriter.print(this.mFromLayout); printWriter.print(" mInLayout="); printWriter.println(this.mInLayout); printWriter.print(str); printWriter.print("mHidden="); printWriter.print(this.mHidden); printWriter.print(" mDetached="); printWriter.print(this.mDetached); printWriter.print(" mMenuVisible="); printWriter.print(this.mMenuVisible); printWriter.print(" mHasMenu="); printWriter.println(this.mHasMenu); printWriter.print(str); printWriter.print("mRetainInstance="); printWriter.print(this.mRetainInstance); printWriter.print(" mUserVisibleHint="); printWriter.println(this.mUserVisibleHint); if (this.mFragmentManager != null) { printWriter.print(str); printWriter.print("mFragmentManager="); printWriter.println(this.mFragmentManager); } if (this.mHost != null) { printWriter.print(str); printWriter.print("mHost="); printWriter.println(this.mHost); } if (this.mParentFragment != null) { printWriter.print(str); printWriter.print("mParentFragment="); printWriter.println(this.mParentFragment); } if (this.mArguments != null) { printWriter.print(str); printWriter.print("mArguments="); printWriter.println(this.mArguments); } if (this.mSavedFragmentState != null) { printWriter.print(str); printWriter.print("mSavedFragmentState="); printWriter.println(this.mSavedFragmentState); } if (this.mSavedViewState != null) { printWriter.print(str); printWriter.print("mSavedViewState="); printWriter.println(this.mSavedViewState); } if (this.mSavedViewRegistryState != null) { printWriter.print(str); printWriter.print("mSavedViewRegistryState="); printWriter.println(this.mSavedViewRegistryState); } Fragment targetFragment = getTargetFragment(false); if (targetFragment != null) { printWriter.print(str); printWriter.print("mTarget="); printWriter.print(targetFragment); printWriter.print(" mTargetRequestCode="); printWriter.println(this.mTargetRequestCode); } printWriter.print(str); printWriter.print("mPopDirection="); printWriter.println(getPopDirection()); if (getEnterAnim() != 0) { printWriter.print(str); printWriter.print("getEnterAnim="); printWriter.println(getEnterAnim()); } if (getExitAnim() != 0) { printWriter.print(str); printWriter.print("getExitAnim="); printWriter.println(getExitAnim()); } if (getPopEnterAnim() != 0) { printWriter.print(str); printWriter.print("getPopEnterAnim="); printWriter.println(getPopEnterAnim()); } if (getPopExitAnim() != 0) { printWriter.print(str); printWriter.print("getPopExitAnim="); printWriter.println(getPopExitAnim()); } if (this.mContainer != null) { printWriter.print(str); printWriter.print("mContainer="); printWriter.println(this.mContainer); } if (this.mView != null) { printWriter.print(str); printWriter.print("mView="); printWriter.println(this.mView); } if (getAnimatingAway() != null) { printWriter.print(str); printWriter.print("mAnimatingAway="); printWriter.println(getAnimatingAway()); } if (getContext() != null) { LoaderManager.getInstance(this).dump(str, fileDescriptor, printWriter, strArr); } printWriter.print(str); printWriter.println("Child " + this.mChildFragmentManager + CertificateUtil.DELIMITER); this.mChildFragmentManager.dump(str + " ", fileDescriptor, printWriter, strArr); } @Nullable public Fragment findFragmentByWho(@NonNull String str) { return str.equals(this.mWho) ? this : this.mChildFragmentManager.findFragmentByWho(str); } @NonNull public FragmentContainer createFragmentContainer() { return new FragmentContainer() { // from class: androidx.fragment.app.Fragment.5 @Override // androidx.fragment.app.FragmentContainer @Nullable public View onFindViewById(int i) { View view = Fragment.this.mView; if (view == null) { throw new IllegalStateException("Fragment " + Fragment.this + " does not have a view"); } return view.findViewById(i); } @Override // androidx.fragment.app.FragmentContainer public boolean onHasView() { return Fragment.this.mView != null; } }; } public void performAttach() { Iterator it = this.mOnPreAttachedListeners.iterator(); while (it.hasNext()) { it.next().onPreAttached(); } this.mOnPreAttachedListeners.clear(); this.mChildFragmentManager.attachController(this.mHost, createFragmentContainer(), this); this.mState = 0; this.mCalled = false; onAttach(this.mHost.getContext()); if (!this.mCalled) { throw new SuperNotCalledException("Fragment " + this + " did not call through to super.onAttach()"); } this.mFragmentManager.dispatchOnAttachFragment(this); this.mChildFragmentManager.dispatchAttach(); } public void performCreate(Bundle bundle) { this.mChildFragmentManager.noteStateNotSaved(); this.mState = 1; this.mCalled = false; this.mLifecycleRegistry.addObserver(new LifecycleEventObserver() { // from class: androidx.fragment.app.Fragment.6 @Override // androidx.lifecycle.LifecycleEventObserver public void onStateChanged(@NonNull LifecycleOwner lifecycleOwner, @NonNull Lifecycle.Event event) { View view; if (event != Lifecycle.Event.ON_STOP || (view = Fragment.this.mView) == null) { return; } Api19Impl.cancelPendingInputEvents(view); } }); this.mSavedStateRegistryController.performRestore(bundle); onCreate(bundle); this.mIsCreated = true; if (!this.mCalled) { throw new SuperNotCalledException("Fragment " + this + " did not call through to super.onCreate()"); } this.mLifecycleRegistry.handleLifecycleEvent(Lifecycle.Event.ON_CREATE); } public void performCreateView(@NonNull LayoutInflater layoutInflater, @Nullable ViewGroup viewGroup, @Nullable Bundle bundle) { this.mChildFragmentManager.noteStateNotSaved(); this.mPerformedCreateView = true; this.mViewLifecycleOwner = new FragmentViewLifecycleOwner(this, getViewModelStore()); View onCreateView = onCreateView(layoutInflater, viewGroup, bundle); this.mView = onCreateView; if (onCreateView != null) { this.mViewLifecycleOwner.initialize(); ViewTreeLifecycleOwner.set(this.mView, this.mViewLifecycleOwner); ViewTreeViewModelStoreOwner.set(this.mView, this.mViewLifecycleOwner); ViewTreeSavedStateRegistryOwner.set(this.mView, this.mViewLifecycleOwner); this.mViewLifecycleOwnerLiveData.setValue(this.mViewLifecycleOwner); return; } if (this.mViewLifecycleOwner.isInitialized()) { throw new IllegalStateException("Called getViewLifecycleOwner() but onCreateView() returned null"); } this.mViewLifecycleOwner = null; } public void performViewCreated() { onViewCreated(this.mView, this.mSavedFragmentState); this.mChildFragmentManager.dispatchViewCreated(); } public void performActivityCreated(Bundle bundle) { this.mChildFragmentManager.noteStateNotSaved(); this.mState = 3; this.mCalled = false; onActivityCreated(bundle); if (!this.mCalled) { throw new SuperNotCalledException("Fragment " + this + " did not call through to super.onActivityCreated()"); } restoreViewState(); this.mChildFragmentManager.dispatchActivityCreated(); } private void restoreViewState() { if (FragmentManager.isLoggingEnabled(3)) { StringBuilder sb = new StringBuilder(); sb.append("moveto RESTORE_VIEW_STATE: "); sb.append(this); } if (this.mView != null) { restoreViewState(this.mSavedFragmentState); } this.mSavedFragmentState = null; } public void performStart() { this.mChildFragmentManager.noteStateNotSaved(); this.mChildFragmentManager.execPendingActions(true); this.mState = 5; this.mCalled = false; onStart(); if (!this.mCalled) { throw new SuperNotCalledException("Fragment " + this + " did not call through to super.onStart()"); } LifecycleRegistry lifecycleRegistry = this.mLifecycleRegistry; Lifecycle.Event event = Lifecycle.Event.ON_START; lifecycleRegistry.handleLifecycleEvent(event); if (this.mView != null) { this.mViewLifecycleOwner.handleLifecycleEvent(event); } this.mChildFragmentManager.dispatchStart(); } public void performResume() { this.mChildFragmentManager.noteStateNotSaved(); this.mChildFragmentManager.execPendingActions(true); this.mState = 7; this.mCalled = false; onResume(); if (!this.mCalled) { throw new SuperNotCalledException("Fragment " + this + " did not call through to super.onResume()"); } LifecycleRegistry lifecycleRegistry = this.mLifecycleRegistry; Lifecycle.Event event = Lifecycle.Event.ON_RESUME; lifecycleRegistry.handleLifecycleEvent(event); if (this.mView != null) { this.mViewLifecycleOwner.handleLifecycleEvent(event); } this.mChildFragmentManager.dispatchResume(); } public void noteStateNotSaved() { this.mChildFragmentManager.noteStateNotSaved(); } public void performPrimaryNavigationFragmentChanged() { boolean isPrimaryNavigation = this.mFragmentManager.isPrimaryNavigation(this); Boolean bool = this.mIsPrimaryNavigationFragment; if (bool == null || bool.booleanValue() != isPrimaryNavigation) { this.mIsPrimaryNavigationFragment = Boolean.valueOf(isPrimaryNavigation); onPrimaryNavigationFragmentChanged(isPrimaryNavigation); this.mChildFragmentManager.dispatchPrimaryNavigationFragmentChanged(); } } public void performMultiWindowModeChanged(boolean z) { onMultiWindowModeChanged(z); } public void performPictureInPictureModeChanged(boolean z) { onPictureInPictureModeChanged(z); } public void performConfigurationChanged(@NonNull Configuration configuration) { onConfigurationChanged(configuration); } public void performLowMemory() { onLowMemory(); } public boolean performCreateOptionsMenu(@NonNull Menu menu, @NonNull MenuInflater menuInflater) { boolean z = false; if (this.mHidden) { return false; } if (this.mHasMenu && this.mMenuVisible) { onCreateOptionsMenu(menu, menuInflater); z = true; } return z | this.mChildFragmentManager.dispatchCreateOptionsMenu(menu, menuInflater); } public boolean performPrepareOptionsMenu(@NonNull Menu menu) { boolean z = false; if (this.mHidden) { return false; } if (this.mHasMenu && this.mMenuVisible) { onPrepareOptionsMenu(menu); z = true; } return z | this.mChildFragmentManager.dispatchPrepareOptionsMenu(menu); } public boolean performOptionsItemSelected(@NonNull MenuItem menuItem) { if (this.mHidden) { return false; } if (this.mHasMenu && this.mMenuVisible && onOptionsItemSelected(menuItem)) { return true; } return this.mChildFragmentManager.dispatchOptionsItemSelected(menuItem); } public boolean performContextItemSelected(@NonNull MenuItem menuItem) { if (this.mHidden) { return false; } if (onContextItemSelected(menuItem)) { return true; } return this.mChildFragmentManager.dispatchContextItemSelected(menuItem); } public void performOptionsMenuClosed(@NonNull Menu menu) { if (this.mHidden) { return; } if (this.mHasMenu && this.mMenuVisible) { onOptionsMenuClosed(menu); } this.mChildFragmentManager.dispatchOptionsMenuClosed(menu); } public void performSaveInstanceState(Bundle bundle) { onSaveInstanceState(bundle); this.mSavedStateRegistryController.performSave(bundle); Bundle lambda$attachController$4 = this.mChildFragmentManager.lambda$attachController$4(); if (lambda$attachController$4 != null) { bundle.putParcelable("android:support:fragments", lambda$attachController$4); } } public void performPause() { this.mChildFragmentManager.dispatchPause(); if (this.mView != null) { this.mViewLifecycleOwner.handleLifecycleEvent(Lifecycle.Event.ON_PAUSE); } this.mLifecycleRegistry.handleLifecycleEvent(Lifecycle.Event.ON_PAUSE); this.mState = 6; this.mCalled = false; onPause(); if (this.mCalled) { return; } throw new SuperNotCalledException("Fragment " + this + " did not call through to super.onPause()"); } public void performStop() { this.mChildFragmentManager.dispatchStop(); if (this.mView != null) { this.mViewLifecycleOwner.handleLifecycleEvent(Lifecycle.Event.ON_STOP); } this.mLifecycleRegistry.handleLifecycleEvent(Lifecycle.Event.ON_STOP); this.mState = 4; this.mCalled = false; onStop(); if (this.mCalled) { return; } throw new SuperNotCalledException("Fragment " + this + " did not call through to super.onStop()"); } public void performDestroyView() { this.mChildFragmentManager.dispatchDestroyView(); if (this.mView != null && this.mViewLifecycleOwner.getLifecycle().getCurrentState().isAtLeast(Lifecycle.State.CREATED)) { this.mViewLifecycleOwner.handleLifecycleEvent(Lifecycle.Event.ON_DESTROY); } this.mState = 1; this.mCalled = false; onDestroyView(); if (!this.mCalled) { throw new SuperNotCalledException("Fragment " + this + " did not call through to super.onDestroyView()"); } LoaderManager.getInstance(this).markForRedelivery(); this.mPerformedCreateView = false; } public void performDestroy() { this.mChildFragmentManager.dispatchDestroy(); this.mLifecycleRegistry.handleLifecycleEvent(Lifecycle.Event.ON_DESTROY); this.mState = 0; this.mCalled = false; this.mIsCreated = false; onDestroy(); if (this.mCalled) { return; } throw new SuperNotCalledException("Fragment " + this + " did not call through to super.onDestroy()"); } public void performDetach() { this.mState = -1; this.mCalled = false; onDetach(); this.mLayoutInflater = null; if (!this.mCalled) { throw new SuperNotCalledException("Fragment " + this + " did not call through to super.onDetach()"); } if (this.mChildFragmentManager.isDestroyed()) { return; } this.mChildFragmentManager.dispatchDestroy(); this.mChildFragmentManager = new FragmentManagerImpl(); } private AnimationInfo ensureAnimationInfo() { if (this.mAnimationInfo == null) { this.mAnimationInfo = new AnimationInfo(); } return this.mAnimationInfo; } public void setAnimations(@AnimRes int i, @AnimRes int i2, @AnimRes int i3, @AnimRes int i4) { if (this.mAnimationInfo == null && i == 0 && i2 == 0 && i3 == 0 && i4 == 0) { return; } ensureAnimationInfo().mEnterAnim = i; ensureAnimationInfo().mExitAnim = i2; ensureAnimationInfo().mPopEnterAnim = i3; ensureAnimationInfo().mPopExitAnim = i4; } @AnimRes public int getEnterAnim() { AnimationInfo animationInfo = this.mAnimationInfo; if (animationInfo == null) { return 0; } return animationInfo.mEnterAnim; } @AnimRes public int getExitAnim() { AnimationInfo animationInfo = this.mAnimationInfo; if (animationInfo == null) { return 0; } return animationInfo.mExitAnim; } @AnimRes public int getPopEnterAnim() { AnimationInfo animationInfo = this.mAnimationInfo; if (animationInfo == null) { return 0; } return animationInfo.mPopEnterAnim; } @AnimRes public int getPopExitAnim() { AnimationInfo animationInfo = this.mAnimationInfo; if (animationInfo == null) { return 0; } return animationInfo.mPopExitAnim; } public boolean getPopDirection() { AnimationInfo animationInfo = this.mAnimationInfo; if (animationInfo == null) { return false; } return animationInfo.mIsPop; } public void setPopDirection(boolean z) { if (this.mAnimationInfo == null) { return; } ensureAnimationInfo().mIsPop = z; } public int getNextTransition() { AnimationInfo animationInfo = this.mAnimationInfo; if (animationInfo == null) { return 0; } return animationInfo.mNextTransition; } public void setNextTransition(int i) { if (this.mAnimationInfo == null && i == 0) { return; } ensureAnimationInfo(); this.mAnimationInfo.mNextTransition = i; } @NonNull public ArrayList getSharedElementSourceNames() { ArrayList arrayList; AnimationInfo animationInfo = this.mAnimationInfo; return (animationInfo == null || (arrayList = animationInfo.mSharedElementSourceNames) == null) ? new ArrayList<>() : arrayList; } @NonNull public ArrayList getSharedElementTargetNames() { ArrayList arrayList; AnimationInfo animationInfo = this.mAnimationInfo; return (animationInfo == null || (arrayList = animationInfo.mSharedElementTargetNames) == null) ? new ArrayList<>() : arrayList; } public void setSharedElementNames(@Nullable ArrayList arrayList, @Nullable ArrayList arrayList2) { ensureAnimationInfo(); AnimationInfo animationInfo = this.mAnimationInfo; animationInfo.mSharedElementSourceNames = arrayList; animationInfo.mSharedElementTargetNames = arrayList2; } public SharedElementCallback getEnterTransitionCallback() { AnimationInfo animationInfo = this.mAnimationInfo; if (animationInfo == null) { return null; } return animationInfo.mEnterTransitionCallback; } public SharedElementCallback getExitTransitionCallback() { AnimationInfo animationInfo = this.mAnimationInfo; if (animationInfo == null) { return null; } return animationInfo.mExitTransitionCallback; } public View getAnimatingAway() { AnimationInfo animationInfo = this.mAnimationInfo; if (animationInfo == null) { return null; } return animationInfo.mAnimatingAway; } public void setPostOnViewCreatedAlpha(float f) { ensureAnimationInfo().mPostOnViewCreatedAlpha = f; } public float getPostOnViewCreatedAlpha() { AnimationInfo animationInfo = this.mAnimationInfo; if (animationInfo == null) { return 1.0f; } return animationInfo.mPostOnViewCreatedAlpha; } public void setFocusedView(View view) { ensureAnimationInfo().mFocusedView = view; } public View getFocusedView() { AnimationInfo animationInfo = this.mAnimationInfo; if (animationInfo == null) { return null; } return animationInfo.mFocusedView; } public boolean isPostponed() { AnimationInfo animationInfo = this.mAnimationInfo; if (animationInfo == null) { return false; } return animationInfo.mEnterTransitionPostponed; } @Override // androidx.activity.result.ActivityResultCaller @NonNull @MainThread public final ActivityResultLauncher registerForActivityResult(@NonNull ActivityResultContract activityResultContract, @NonNull ActivityResultCallback activityResultCallback) { return prepareCallInternal(activityResultContract, new Function() { // from class: androidx.fragment.app.Fragment.7 @Override // androidx.arch.core.util.Function public ActivityResultRegistry apply(Void r3) { Fragment fragment = Fragment.this; Object obj = fragment.mHost; if (obj instanceof ActivityResultRegistryOwner) { return ((ActivityResultRegistryOwner) obj).getActivityResultRegistry(); } return fragment.requireActivity().getActivityResultRegistry(); } }, activityResultCallback); } @Override // androidx.activity.result.ActivityResultCaller @NonNull @MainThread public final ActivityResultLauncher registerForActivityResult(@NonNull ActivityResultContract activityResultContract, @NonNull final ActivityResultRegistry activityResultRegistry, @NonNull ActivityResultCallback activityResultCallback) { return prepareCallInternal(activityResultContract, new Function() { // from class: androidx.fragment.app.Fragment.8 @Override // androidx.arch.core.util.Function public ActivityResultRegistry apply(Void r1) { return activityResultRegistry; } }, activityResultCallback); } @NonNull private ActivityResultLauncher prepareCallInternal(@NonNull final ActivityResultContract activityResultContract, @NonNull final Function function, @NonNull final ActivityResultCallback activityResultCallback) { if (this.mState > 1) { throw new IllegalStateException("Fragment " + this + " is attempting to registerForActivityResult after being created. Fragments must call registerForActivityResult() before they are created (i.e. initialization, onAttach(), or onCreate())."); } final AtomicReference atomicReference = new AtomicReference(); registerOnPreAttachListener(new OnPreAttachedListener() { // from class: androidx.fragment.app.Fragment.9 /* JADX WARN: 'super' call moved to the top of the method (can break code semantics) */ { super(); } @Override // androidx.fragment.app.Fragment.OnPreAttachedListener public void onPreAttached() { String generateActivityResultKey = Fragment.this.generateActivityResultKey(); atomicReference.set(((ActivityResultRegistry) function.apply(null)).register(generateActivityResultKey, Fragment.this, activityResultContract, activityResultCallback)); } }); return new ActivityResultLauncher() { // from class: androidx.fragment.app.Fragment.10 @Override // androidx.activity.result.ActivityResultLauncher @NonNull public ActivityResultContract getContract() { return activityResultContract; } @Override // androidx.activity.result.ActivityResultLauncher public void launch(I i, @Nullable ActivityOptionsCompat activityOptionsCompat) { ActivityResultLauncher activityResultLauncher = (ActivityResultLauncher) atomicReference.get(); if (activityResultLauncher == null) { throw new IllegalStateException("Operation cannot be started before fragment is in created state"); } activityResultLauncher.launch(i, activityOptionsCompat); } @Override // androidx.activity.result.ActivityResultLauncher public void unregister() { ActivityResultLauncher activityResultLauncher = (ActivityResultLauncher) atomicReference.getAndSet(null); if (activityResultLauncher != null) { activityResultLauncher.unregister(); } } }; } private void registerOnPreAttachListener(@NonNull OnPreAttachedListener onPreAttachedListener) { if (this.mState >= 0) { onPreAttachedListener.onPreAttached(); } else { this.mOnPreAttachedListeners.add(onPreAttachedListener); } } @NonNull public String generateActivityResultKey() { return "fragment_" + this.mWho + "_rq#" + this.mNextLocalRequestCode.getAndIncrement(); } public static class AnimationInfo { Boolean mAllowEnterTransitionOverlap; Boolean mAllowReturnTransitionOverlap; View mAnimatingAway; @AnimRes int mEnterAnim; Object mEnterTransition = null; SharedElementCallback mEnterTransitionCallback; boolean mEnterTransitionPostponed; @AnimRes int mExitAnim; Object mExitTransition; SharedElementCallback mExitTransitionCallback; View mFocusedView; boolean mIsPop; int mNextTransition; @AnimRes int mPopEnterAnim; @AnimRes int mPopExitAnim; float mPostOnViewCreatedAlpha; Object mReenterTransition; Object mReturnTransition; Object mSharedElementEnterTransition; Object mSharedElementReturnTransition; ArrayList mSharedElementSourceNames; ArrayList mSharedElementTargetNames; public AnimationInfo() { Object obj = Fragment.USE_DEFAULT_TRANSITION; this.mReturnTransition = obj; this.mExitTransition = null; this.mReenterTransition = obj; this.mSharedElementEnterTransition = null; this.mSharedElementReturnTransition = obj; this.mEnterTransitionCallback = null; this.mExitTransitionCallback = null; this.mPostOnViewCreatedAlpha = 1.0f; this.mFocusedView = null; } } @RequiresApi(19) public static class Api19Impl { private Api19Impl() { } public static void cancelPendingInputEvents(@NonNull View view) { view.cancelPendingInputEvents(); } } }