diff options
author | android-build-prod (mdb) <android-build-team-robot@google.com> | 2019-07-12 21:19:55 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2019-07-12 21:19:55 +0000 |
commit | 1dc5a76c199110b874ecc2bbb2ae6ca7efe52fa8 (patch) | |
tree | 6fb031ea8410c14607f56d488cf29d06e5e71456 | |
parent | 6c84554825c8ddb322cebd4250f6c234b8097ecf (diff) | |
parent | 0b9d63fa8d515417800145bb17c32773887f16be (diff) | |
download | support-sparse-5725306-L12900000340242788.tar.gz |
Merge "Merge cherrypicks of [1014805, 1014806] into androidx-fragment-release" into androidx-fragment-releasesparse-5725306-L68300000340612953sparse-5725306-L66700000340521750sparse-5725306-L61000000340826972sparse-5725306-L59600000340617296sparse-5725306-L47700000340723649sparse-5725306-L39400000340788693sparse-5725306-L12900000340242788sparse-5725306-L03200000340230365
12 files changed, 528 insertions, 3 deletions
diff --git a/buildSrc/src/main/kotlin/androidx/build/LibraryVersions.kt b/buildSrc/src/main/kotlin/androidx/build/LibraryVersions.kt index 8af3468fc5a..de4641b759d 100644 --- a/buildSrc/src/main/kotlin/androidx/build/LibraryVersions.kt +++ b/buildSrc/src/main/kotlin/androidx/build/LibraryVersions.kt @@ -54,7 +54,7 @@ object LibraryVersions { val EMOJI = Version("1.1.0-alpha01") val ENTERPRISE = Version("1.0.0-alpha03") val EXIFINTERFACE = Version("1.1.0-alpha02") - val FRAGMENT = Version("1.1.0-rc01") + val FRAGMENT = Version("1.1.0-rc02") val FUTURES = Version("1.0.0-beta02") val GRIDLAYOUT = Version("1.1.0-alpha01") val HEIFWRITER = Version("1.1.0-alpha01") diff --git a/fragment/fragment-ktx/api/1.1.0-rc02.txt b/fragment/fragment-ktx/api/1.1.0-rc02.txt new file mode 100644 index 00000000000..3436d70a4bc --- /dev/null +++ b/fragment/fragment-ktx/api/1.1.0-rc02.txt @@ -0,0 +1,19 @@ +// Signature format: 3.0 +package androidx.fragment.app { + + public final class FragmentManagerKt { + ctor public FragmentManagerKt(); + method public static inline void commit(androidx.fragment.app.FragmentManager, boolean allowStateLoss = false, kotlin.jvm.functions.Function1<? super androidx.fragment.app.FragmentTransaction,kotlin.Unit> body); + method public static inline void commitNow(androidx.fragment.app.FragmentManager, boolean allowStateLoss = false, kotlin.jvm.functions.Function1<? super androidx.fragment.app.FragmentTransaction,kotlin.Unit> body); + method @Deprecated public static inline void transaction(androidx.fragment.app.FragmentManager, boolean now = false, boolean allowStateLoss = false, kotlin.jvm.functions.Function1<? super androidx.fragment.app.FragmentTransaction,kotlin.Unit> body); + } + + public final class FragmentViewModelLazyKt { + ctor public FragmentViewModelLazyKt(); + method @MainThread public static inline <reified VM extends androidx.lifecycle.ViewModel> kotlin.Lazy<VM> activityViewModels(androidx.fragment.app.Fragment, kotlin.jvm.functions.Function0<? extends androidx.lifecycle.ViewModelProvider.Factory>? factoryProducer = null); + method @MainThread public static <VM extends androidx.lifecycle.ViewModel> kotlin.Lazy<VM> createViewModelLazy(androidx.fragment.app.Fragment, kotlin.reflect.KClass<VM> viewModelClass, kotlin.jvm.functions.Function0<? extends androidx.lifecycle.ViewModelStore> storeProducer, kotlin.jvm.functions.Function0<? extends androidx.lifecycle.ViewModelProvider.Factory>? factoryProducer = null); + method @MainThread public static inline <reified VM extends androidx.lifecycle.ViewModel> kotlin.Lazy<VM> viewModels(androidx.fragment.app.Fragment, kotlin.jvm.functions.Function0<? extends androidx.lifecycle.ViewModelStoreOwner> ownerProducer = { this }, kotlin.jvm.functions.Function0<? extends androidx.lifecycle.ViewModelProvider.Factory>? factoryProducer = null); + } + +} + diff --git a/fragment/fragment-ktx/api/res-1.1.0-rc02.txt b/fragment/fragment-ktx/api/res-1.1.0-rc02.txt new file mode 100644 index 00000000000..e69de29bb2d --- /dev/null +++ b/fragment/fragment-ktx/api/res-1.1.0-rc02.txt diff --git a/fragment/fragment-ktx/api/restricted_1.1.0-rc02.txt b/fragment/fragment-ktx/api/restricted_1.1.0-rc02.txt new file mode 100644 index 00000000000..da4f6cc18fe --- /dev/null +++ b/fragment/fragment-ktx/api/restricted_1.1.0-rc02.txt @@ -0,0 +1 @@ +// Signature format: 3.0 diff --git a/fragment/fragment-testing/api/1.1.0-rc02.txt b/fragment/fragment-testing/api/1.1.0-rc02.txt new file mode 100644 index 00000000000..873d5c840f8 --- /dev/null +++ b/fragment/fragment-testing/api/1.1.0-rc02.txt @@ -0,0 +1,31 @@ +// Signature format: 3.0 +package androidx.fragment.app.testing { + + public final class FragmentScenario<F extends androidx.fragment.app.Fragment> { + method public static <F extends androidx.fragment.app.Fragment> androidx.fragment.app.testing.FragmentScenario<F!> launch(Class<F!>); + method public static <F extends androidx.fragment.app.Fragment> androidx.fragment.app.testing.FragmentScenario<F!> launch(Class<F!>, android.os.Bundle?); + method public static <F extends androidx.fragment.app.Fragment> androidx.fragment.app.testing.FragmentScenario<F!> launch(Class<F!>, android.os.Bundle?, androidx.fragment.app.FragmentFactory?); + method public static <F extends androidx.fragment.app.Fragment> androidx.fragment.app.testing.FragmentScenario<F!> launch(Class<F!>, android.os.Bundle?, @StyleRes int, androidx.fragment.app.FragmentFactory?); + method public static <F extends androidx.fragment.app.Fragment> androidx.fragment.app.testing.FragmentScenario<F!> launchInContainer(Class<F!>); + method public static <F extends androidx.fragment.app.Fragment> androidx.fragment.app.testing.FragmentScenario<F!> launchInContainer(Class<F!>, android.os.Bundle?); + method public static <F extends androidx.fragment.app.Fragment> androidx.fragment.app.testing.FragmentScenario<F!> launchInContainer(Class<F!>, android.os.Bundle?, androidx.fragment.app.FragmentFactory?); + method public static <F extends androidx.fragment.app.Fragment> androidx.fragment.app.testing.FragmentScenario<F!> launchInContainer(Class<F!>, android.os.Bundle?, @StyleRes int, androidx.fragment.app.FragmentFactory?); + method public androidx.fragment.app.testing.FragmentScenario<F!> moveToState(androidx.lifecycle.Lifecycle.State); + method public androidx.fragment.app.testing.FragmentScenario<F!> onFragment(androidx.fragment.app.testing.FragmentScenario.FragmentAction<F!>); + method public androidx.fragment.app.testing.FragmentScenario<F!> recreate(); + } + + public static interface FragmentScenario.FragmentAction<F extends androidx.fragment.app.Fragment> { + method public void perform(F); + } + + public final class FragmentScenarioKt { + ctor public FragmentScenarioKt(); + method public static inline <reified F extends androidx.fragment.app.Fragment> androidx.fragment.app.testing.FragmentScenario<F> launchFragment(android.os.Bundle? fragmentArgs = null, @StyleRes int themeResId = R.style.FragmentScenarioEmptyFragmentActivityTheme, androidx.fragment.app.FragmentFactory? factory = null); + method public static inline <reified F extends androidx.fragment.app.Fragment> androidx.fragment.app.testing.FragmentScenario<F> launchFragment(android.os.Bundle? fragmentArgs = null, @StyleRes int themeResId = R.style.FragmentScenarioEmptyFragmentActivityTheme, kotlin.jvm.functions.Function0<? extends F> instantiate); + method public static inline <reified F extends androidx.fragment.app.Fragment> androidx.fragment.app.testing.FragmentScenario<F> launchFragmentInContainer(android.os.Bundle? fragmentArgs = null, @StyleRes int themeResId = R.style.FragmentScenarioEmptyFragmentActivityTheme, androidx.fragment.app.FragmentFactory? factory = null); + method public static inline <reified F extends androidx.fragment.app.Fragment> androidx.fragment.app.testing.FragmentScenario<F> launchFragmentInContainer(android.os.Bundle? fragmentArgs = null, @StyleRes int themeResId = R.style.FragmentScenarioEmptyFragmentActivityTheme, kotlin.jvm.functions.Function0<? extends F> instantiate); + } + +} + diff --git a/fragment/fragment-testing/api/res-1.1.0-rc02.txt b/fragment/fragment-testing/api/res-1.1.0-rc02.txt new file mode 100644 index 00000000000..e69de29bb2d --- /dev/null +++ b/fragment/fragment-testing/api/res-1.1.0-rc02.txt diff --git a/fragment/fragment-testing/api/restricted_1.1.0-rc02.txt b/fragment/fragment-testing/api/restricted_1.1.0-rc02.txt new file mode 100644 index 00000000000..6415760cc0a --- /dev/null +++ b/fragment/fragment-testing/api/restricted_1.1.0-rc02.txt @@ -0,0 +1,7 @@ +// Signature format: 3.0 +package androidx.fragment.app.testing { + + + +} + diff --git a/fragment/fragment/api/1.1.0-rc02.txt b/fragment/fragment/api/1.1.0-rc02.txt new file mode 100644 index 00000000000..8b7696b6a12 --- /dev/null +++ b/fragment/fragment/api/1.1.0-rc02.txt @@ -0,0 +1,412 @@ +// Signature format: 3.0 +package androidx.fragment.app { + + public class DialogFragment extends androidx.fragment.app.Fragment implements android.content.DialogInterface.OnCancelListener android.content.DialogInterface.OnDismissListener { + ctor public DialogFragment(); + method public void dismiss(); + method public void dismissAllowingStateLoss(); + method public android.app.Dialog? getDialog(); + method public boolean getShowsDialog(); + method @StyleRes public int getTheme(); + method public boolean isCancelable(); + method public void onCancel(android.content.DialogInterface); + method public android.app.Dialog onCreateDialog(android.os.Bundle?); + method public void onDismiss(android.content.DialogInterface); + method public final android.app.Dialog requireDialog(); + method public void setCancelable(boolean); + method public void setShowsDialog(boolean); + method public void setStyle(int, @StyleRes int); + method public void show(androidx.fragment.app.FragmentManager, String?); + method public int show(androidx.fragment.app.FragmentTransaction, String?); + method public void showNow(androidx.fragment.app.FragmentManager, String?); + field public static final int STYLE_NORMAL = 0; // 0x0 + field public static final int STYLE_NO_FRAME = 2; // 0x2 + field public static final int STYLE_NO_INPUT = 3; // 0x3 + field public static final int STYLE_NO_TITLE = 1; // 0x1 + } + + public class Fragment implements android.content.ComponentCallbacks androidx.lifecycle.LifecycleOwner androidx.savedstate.SavedStateRegistryOwner android.view.View.OnCreateContextMenuListener androidx.lifecycle.ViewModelStoreOwner { + ctor public Fragment(); + ctor @ContentView public Fragment(@LayoutRes int); + method public void dump(String, java.io.FileDescriptor?, java.io.PrintWriter, String![]?); + method public final boolean equals(Object?); + method public final androidx.fragment.app.FragmentActivity? getActivity(); + method public boolean getAllowEnterTransitionOverlap(); + method public boolean getAllowReturnTransitionOverlap(); + method public final android.os.Bundle? getArguments(); + method public final androidx.fragment.app.FragmentManager getChildFragmentManager(); + method public android.content.Context? getContext(); + method public Object? getEnterTransition(); + method public Object? getExitTransition(); + method public final androidx.fragment.app.FragmentManager? getFragmentManager(); + method public final Object? getHost(); + method public final int getId(); + method public final android.view.LayoutInflater getLayoutInflater(); + method public androidx.lifecycle.Lifecycle getLifecycle(); + method @Deprecated public androidx.loader.app.LoaderManager getLoaderManager(); + method public final androidx.fragment.app.Fragment? getParentFragment(); + method public Object? getReenterTransition(); + method public final android.content.res.Resources getResources(); + method public final boolean getRetainInstance(); + method public Object? getReturnTransition(); + method public final androidx.savedstate.SavedStateRegistry getSavedStateRegistry(); + method public Object? getSharedElementEnterTransition(); + method public Object? getSharedElementReturnTransition(); + method public final String getString(@StringRes int); + method public final String getString(@StringRes int, java.lang.Object!...); + method public final String? getTag(); + method public final androidx.fragment.app.Fragment? getTargetFragment(); + method public final int getTargetRequestCode(); + method public final CharSequence getText(@StringRes int); + method @Deprecated public boolean getUserVisibleHint(); + method public android.view.View? getView(); + method @MainThread public androidx.lifecycle.LifecycleOwner getViewLifecycleOwner(); + method public androidx.lifecycle.LiveData<androidx.lifecycle.LifecycleOwner!> getViewLifecycleOwnerLiveData(); + method public androidx.lifecycle.ViewModelStore getViewModelStore(); + method public final int hashCode(); + method @Deprecated public static androidx.fragment.app.Fragment instantiate(android.content.Context, String); + method @Deprecated public static androidx.fragment.app.Fragment instantiate(android.content.Context, String, android.os.Bundle?); + method public final boolean isAdded(); + method public final boolean isDetached(); + method public final boolean isHidden(); + method public final boolean isInLayout(); + method public final boolean isRemoving(); + method public final boolean isResumed(); + method public final boolean isStateSaved(); + method public final boolean isVisible(); + method @CallSuper public void onActivityCreated(android.os.Bundle?); + method public void onActivityResult(int, int, android.content.Intent?); + method @CallSuper public void onAttach(android.content.Context); + method @Deprecated @CallSuper public void onAttach(android.app.Activity); + method public void onAttachFragment(androidx.fragment.app.Fragment); + method @CallSuper public void onConfigurationChanged(android.content.res.Configuration); + method public boolean onContextItemSelected(android.view.MenuItem); + method @CallSuper public void onCreate(android.os.Bundle?); + method public android.view.animation.Animation? onCreateAnimation(int, boolean, int); + method public android.animation.Animator? onCreateAnimator(int, boolean, int); + method public void onCreateContextMenu(android.view.ContextMenu, android.view.View, android.view.ContextMenu.ContextMenuInfo?); + method public void onCreateOptionsMenu(android.view.Menu, android.view.MenuInflater); + method public android.view.View? onCreateView(android.view.LayoutInflater, android.view.ViewGroup?, android.os.Bundle?); + method @CallSuper public void onDestroy(); + method public void onDestroyOptionsMenu(); + method @CallSuper public void onDestroyView(); + method @CallSuper public void onDetach(); + method public android.view.LayoutInflater onGetLayoutInflater(android.os.Bundle?); + method public void onHiddenChanged(boolean); + method @CallSuper public void onInflate(android.content.Context, android.util.AttributeSet, android.os.Bundle?); + method @Deprecated @CallSuper public void onInflate(android.app.Activity, android.util.AttributeSet, android.os.Bundle?); + method @CallSuper public void onLowMemory(); + method public void onMultiWindowModeChanged(boolean); + method public boolean onOptionsItemSelected(android.view.MenuItem); + method public void onOptionsMenuClosed(android.view.Menu); + method @CallSuper public void onPause(); + method public void onPictureInPictureModeChanged(boolean); + method public void onPrepareOptionsMenu(android.view.Menu); + method public void onPrimaryNavigationFragmentChanged(boolean); + method public void onRequestPermissionsResult(int, String![], int[]); + method @CallSuper public void onResume(); + method public void onSaveInstanceState(android.os.Bundle); + method @CallSuper public void onStart(); + method @CallSuper public void onStop(); + method public void onViewCreated(android.view.View, android.os.Bundle?); + method @CallSuper public void onViewStateRestored(android.os.Bundle?); + method public void postponeEnterTransition(); + method public final void postponeEnterTransition(long, java.util.concurrent.TimeUnit); + method public void registerForContextMenu(android.view.View); + method public final void requestPermissions(String![], int); + method public final androidx.fragment.app.FragmentActivity requireActivity(); + method public final android.os.Bundle requireArguments(); + method public final android.content.Context requireContext(); + method public final androidx.fragment.app.FragmentManager requireFragmentManager(); + method public final Object requireHost(); + method public final androidx.fragment.app.Fragment requireParentFragment(); + method public final android.view.View requireView(); + method public void setAllowEnterTransitionOverlap(boolean); + method public void setAllowReturnTransitionOverlap(boolean); + method public void setArguments(android.os.Bundle?); + method public void setEnterSharedElementCallback(androidx.core.app.SharedElementCallback?); + method public void setEnterTransition(Object?); + method public void setExitSharedElementCallback(androidx.core.app.SharedElementCallback?); + method public void setExitTransition(Object?); + method public void setHasOptionsMenu(boolean); + method public void setInitialSavedState(androidx.fragment.app.Fragment.SavedState?); + method public void setMenuVisibility(boolean); + method public void setReenterTransition(Object?); + method public void setRetainInstance(boolean); + method public void setReturnTransition(Object?); + method public void setSharedElementEnterTransition(Object?); + method public void setSharedElementReturnTransition(Object?); + method public void setTargetFragment(androidx.fragment.app.Fragment?, int); + method @Deprecated public void setUserVisibleHint(boolean); + method public boolean shouldShowRequestPermissionRationale(String); + method public void startActivity(android.content.Intent!); + method public void startActivity(android.content.Intent!, android.os.Bundle?); + method public void startActivityForResult(android.content.Intent!, int); + method public void startActivityForResult(android.content.Intent!, int, android.os.Bundle?); + method public void startIntentSenderForResult(android.content.IntentSender!, int, android.content.Intent?, int, int, int, android.os.Bundle?) throws android.content.IntentSender.SendIntentException; + method public void startPostponedEnterTransition(); + method public void unregisterForContextMenu(android.view.View); + } + + public static class Fragment.InstantiationException extends java.lang.RuntimeException { + ctor public Fragment.InstantiationException(String, Exception?); + } + + public static class Fragment.SavedState implements android.os.Parcelable { + method public int describeContents(); + method public void writeToParcel(android.os.Parcel, int); + field public static final android.os.Parcelable.Creator<androidx.fragment.app.Fragment.SavedState!> CREATOR; + } + + public class FragmentActivity extends androidx.activity.ComponentActivity implements androidx.core.app.ActivityCompat.OnRequestPermissionsResultCallback androidx.core.app.ActivityCompat.RequestPermissionsRequestCodeValidator { + ctor public FragmentActivity(); + ctor @ContentView public FragmentActivity(@LayoutRes int); + method public androidx.fragment.app.FragmentManager getSupportFragmentManager(); + method @Deprecated public androidx.loader.app.LoaderManager getSupportLoaderManager(); + method public void onAttachFragment(androidx.fragment.app.Fragment); + method @CallSuper public void onMultiWindowModeChanged(boolean); + method @CallSuper public void onPictureInPictureModeChanged(boolean); + method protected void onResumeFragments(); + method public void onStateNotSaved(); + method public void setEnterSharedElementCallback(androidx.core.app.SharedElementCallback?); + method public void setExitSharedElementCallback(androidx.core.app.SharedElementCallback?); + method public void startActivityFromFragment(androidx.fragment.app.Fragment, android.content.Intent!, int); + method public void startActivityFromFragment(androidx.fragment.app.Fragment, android.content.Intent!, int, android.os.Bundle?); + method public void startIntentSenderFromFragment(androidx.fragment.app.Fragment, android.content.IntentSender!, int, android.content.Intent?, int, int, int, android.os.Bundle?) throws android.content.IntentSender.SendIntentException; + method public void supportFinishAfterTransition(); + method @Deprecated public void supportInvalidateOptionsMenu(); + method public void supportPostponeEnterTransition(); + method public void supportStartPostponedEnterTransition(); + method public final void validateRequestPermissionsRequestCode(int); + } + + public abstract class FragmentContainer { + ctor public FragmentContainer(); + method @Deprecated public androidx.fragment.app.Fragment instantiate(android.content.Context, String, android.os.Bundle?); + method public abstract android.view.View? onFindViewById(@IdRes int); + method public abstract boolean onHasView(); + } + + public class FragmentController { + method public void attachHost(androidx.fragment.app.Fragment?); + method public static androidx.fragment.app.FragmentController createController(androidx.fragment.app.FragmentHostCallback<?>); + method public void dispatchActivityCreated(); + method public void dispatchConfigurationChanged(android.content.res.Configuration); + method public boolean dispatchContextItemSelected(android.view.MenuItem); + method public void dispatchCreate(); + method public boolean dispatchCreateOptionsMenu(android.view.Menu, android.view.MenuInflater); + method public void dispatchDestroy(); + method public void dispatchDestroyView(); + method public void dispatchLowMemory(); + method public void dispatchMultiWindowModeChanged(boolean); + method public boolean dispatchOptionsItemSelected(android.view.MenuItem); + method public void dispatchOptionsMenuClosed(android.view.Menu); + method public void dispatchPause(); + method public void dispatchPictureInPictureModeChanged(boolean); + method public boolean dispatchPrepareOptionsMenu(android.view.Menu); + method @Deprecated public void dispatchReallyStop(); + method public void dispatchResume(); + method public void dispatchStart(); + method public void dispatchStop(); + method @Deprecated public void doLoaderDestroy(); + method @Deprecated public void doLoaderRetain(); + method @Deprecated public void doLoaderStart(); + method @Deprecated public void doLoaderStop(boolean); + method @Deprecated public void dumpLoaders(String, java.io.FileDescriptor?, java.io.PrintWriter, String![]?); + method public boolean execPendingActions(); + method public androidx.fragment.app.Fragment? findFragmentByWho(String); + method public java.util.List<androidx.fragment.app.Fragment!> getActiveFragments(java.util.List<androidx.fragment.app.Fragment!>!); + method public int getActiveFragmentsCount(); + method public androidx.fragment.app.FragmentManager getSupportFragmentManager(); + method @Deprecated public androidx.loader.app.LoaderManager! getSupportLoaderManager(); + method public void noteStateNotSaved(); + method public android.view.View? onCreateView(android.view.View?, String, android.content.Context, android.util.AttributeSet); + method @Deprecated public void reportLoaderStart(); + method @Deprecated public void restoreAllState(android.os.Parcelable?, java.util.List<androidx.fragment.app.Fragment!>?); + method @Deprecated public void restoreAllState(android.os.Parcelable?, androidx.fragment.app.FragmentManagerNonConfig?); + method @Deprecated public void restoreLoaderNonConfig(androidx.collection.SimpleArrayMap<java.lang.String!,androidx.loader.app.LoaderManager!>!); + method public void restoreSaveState(android.os.Parcelable?); + method @Deprecated public androidx.collection.SimpleArrayMap<java.lang.String!,androidx.loader.app.LoaderManager!>? retainLoaderNonConfig(); + method @Deprecated public androidx.fragment.app.FragmentManagerNonConfig? retainNestedNonConfig(); + method @Deprecated public java.util.List<androidx.fragment.app.Fragment!>? retainNonConfig(); + method public android.os.Parcelable? saveAllState(); + } + + public class FragmentFactory { + ctor public FragmentFactory(); + method public androidx.fragment.app.Fragment instantiate(ClassLoader, String); + method public static Class<? extends androidx.fragment.app.Fragment> loadFragmentClass(ClassLoader, String); + } + + public abstract class FragmentHostCallback<E> extends androidx.fragment.app.FragmentContainer { + ctor public FragmentHostCallback(android.content.Context, android.os.Handler, int); + method public void onDump(String, java.io.FileDescriptor?, java.io.PrintWriter, String![]?); + method public android.view.View? onFindViewById(int); + method public abstract E? onGetHost(); + method public android.view.LayoutInflater onGetLayoutInflater(); + method public int onGetWindowAnimations(); + method public boolean onHasView(); + method public boolean onHasWindowAnimations(); + method public void onRequestPermissionsFromFragment(androidx.fragment.app.Fragment, String![], int); + method public boolean onShouldSaveFragmentState(androidx.fragment.app.Fragment); + method public boolean onShouldShowRequestPermissionRationale(String); + method public void onStartActivityFromFragment(androidx.fragment.app.Fragment, android.content.Intent!, int); + method public void onStartActivityFromFragment(androidx.fragment.app.Fragment, android.content.Intent!, int, android.os.Bundle?); + method public void onStartIntentSenderFromFragment(androidx.fragment.app.Fragment, android.content.IntentSender!, int, android.content.Intent?, int, int, int, android.os.Bundle?) throws android.content.IntentSender.SendIntentException; + method public void onSupportInvalidateOptionsMenu(); + } + + public abstract class FragmentManager { + ctor public FragmentManager(); + method public abstract void addOnBackStackChangedListener(androidx.fragment.app.FragmentManager.OnBackStackChangedListener); + method public abstract androidx.fragment.app.FragmentTransaction beginTransaction(); + method public abstract void dump(String, java.io.FileDescriptor?, java.io.PrintWriter, String![]?); + method public static void enableDebugLogging(boolean); + method public abstract boolean executePendingTransactions(); + method public abstract androidx.fragment.app.Fragment? findFragmentById(@IdRes int); + method public abstract androidx.fragment.app.Fragment? findFragmentByTag(String?); + method public abstract androidx.fragment.app.FragmentManager.BackStackEntry getBackStackEntryAt(int); + method public abstract int getBackStackEntryCount(); + method public abstract androidx.fragment.app.Fragment? getFragment(android.os.Bundle, String); + method public androidx.fragment.app.FragmentFactory getFragmentFactory(); + method public abstract java.util.List<androidx.fragment.app.Fragment!> getFragments(); + method public abstract androidx.fragment.app.Fragment? getPrimaryNavigationFragment(); + method public abstract boolean isDestroyed(); + method public abstract boolean isStateSaved(); + method public abstract void popBackStack(); + method public abstract void popBackStack(String?, int); + method public abstract void popBackStack(int, int); + method public abstract boolean popBackStackImmediate(); + method public abstract boolean popBackStackImmediate(String?, int); + method public abstract boolean popBackStackImmediate(int, int); + method public abstract void putFragment(android.os.Bundle, String, androidx.fragment.app.Fragment); + method public abstract void registerFragmentLifecycleCallbacks(androidx.fragment.app.FragmentManager.FragmentLifecycleCallbacks, boolean); + method public abstract void removeOnBackStackChangedListener(androidx.fragment.app.FragmentManager.OnBackStackChangedListener); + method public abstract androidx.fragment.app.Fragment.SavedState? saveFragmentInstanceState(androidx.fragment.app.Fragment); + method public void setFragmentFactory(androidx.fragment.app.FragmentFactory); + method public abstract void unregisterFragmentLifecycleCallbacks(androidx.fragment.app.FragmentManager.FragmentLifecycleCallbacks); + field public static final int POP_BACK_STACK_INCLUSIVE = 1; // 0x1 + } + + public static interface FragmentManager.BackStackEntry { + method public CharSequence? getBreadCrumbShortTitle(); + method @StringRes public int getBreadCrumbShortTitleRes(); + method public CharSequence? getBreadCrumbTitle(); + method @StringRes public int getBreadCrumbTitleRes(); + method public int getId(); + method public String? getName(); + } + + public abstract static class FragmentManager.FragmentLifecycleCallbacks { + ctor public FragmentManager.FragmentLifecycleCallbacks(); + method public void onFragmentActivityCreated(androidx.fragment.app.FragmentManager, androidx.fragment.app.Fragment, android.os.Bundle?); + method public void onFragmentAttached(androidx.fragment.app.FragmentManager, androidx.fragment.app.Fragment, android.content.Context); + method public void onFragmentCreated(androidx.fragment.app.FragmentManager, androidx.fragment.app.Fragment, android.os.Bundle?); + method public void onFragmentDestroyed(androidx.fragment.app.FragmentManager, androidx.fragment.app.Fragment); + method public void onFragmentDetached(androidx.fragment.app.FragmentManager, androidx.fragment.app.Fragment); + method public void onFragmentPaused(androidx.fragment.app.FragmentManager, androidx.fragment.app.Fragment); + method public void onFragmentPreAttached(androidx.fragment.app.FragmentManager, androidx.fragment.app.Fragment, android.content.Context); + method public void onFragmentPreCreated(androidx.fragment.app.FragmentManager, androidx.fragment.app.Fragment, android.os.Bundle?); + method public void onFragmentResumed(androidx.fragment.app.FragmentManager, androidx.fragment.app.Fragment); + method public void onFragmentSaveInstanceState(androidx.fragment.app.FragmentManager, androidx.fragment.app.Fragment, android.os.Bundle); + method public void onFragmentStarted(androidx.fragment.app.FragmentManager, androidx.fragment.app.Fragment); + method public void onFragmentStopped(androidx.fragment.app.FragmentManager, androidx.fragment.app.Fragment); + method public void onFragmentViewCreated(androidx.fragment.app.FragmentManager, androidx.fragment.app.Fragment, android.view.View, android.os.Bundle?); + method public void onFragmentViewDestroyed(androidx.fragment.app.FragmentManager, androidx.fragment.app.Fragment); + } + + public static interface FragmentManager.OnBackStackChangedListener { + method public void onBackStackChanged(); + } + + @Deprecated public class FragmentManagerNonConfig { + } + + public abstract class FragmentPagerAdapter extends androidx.viewpager.widget.PagerAdapter { + ctor @Deprecated public FragmentPagerAdapter(androidx.fragment.app.FragmentManager); + ctor public FragmentPagerAdapter(androidx.fragment.app.FragmentManager, int); + method public abstract androidx.fragment.app.Fragment getItem(int); + method public long getItemId(int); + method public boolean isViewFromObject(android.view.View, Object); + field public static final int BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT = 1; // 0x1 + field @Deprecated public static final int BEHAVIOR_SET_USER_VISIBLE_HINT = 0; // 0x0 + } + + public abstract class FragmentStatePagerAdapter extends androidx.viewpager.widget.PagerAdapter { + ctor @Deprecated public FragmentStatePagerAdapter(androidx.fragment.app.FragmentManager); + ctor public FragmentStatePagerAdapter(androidx.fragment.app.FragmentManager, int); + method public abstract androidx.fragment.app.Fragment getItem(int); + method public boolean isViewFromObject(android.view.View, Object); + field public static final int BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT = 1; // 0x1 + field @Deprecated public static final int BEHAVIOR_SET_USER_VISIBLE_HINT = 0; // 0x0 + } + + @Deprecated public class FragmentTabHost extends android.widget.TabHost implements android.widget.TabHost.OnTabChangeListener { + ctor @Deprecated public FragmentTabHost(android.content.Context); + ctor @Deprecated public FragmentTabHost(android.content.Context, android.util.AttributeSet?); + method @Deprecated public void addTab(android.widget.TabHost.TabSpec, Class<?>, android.os.Bundle?); + method @Deprecated public void onTabChanged(String?); + method @Deprecated public void setup(android.content.Context, androidx.fragment.app.FragmentManager); + method @Deprecated public void setup(android.content.Context, androidx.fragment.app.FragmentManager, int); + } + + public abstract class FragmentTransaction { + ctor public FragmentTransaction(); + method public androidx.fragment.app.FragmentTransaction add(androidx.fragment.app.Fragment, String?); + method public androidx.fragment.app.FragmentTransaction add(@IdRes int, androidx.fragment.app.Fragment); + method public androidx.fragment.app.FragmentTransaction add(@IdRes int, androidx.fragment.app.Fragment, String?); + method public androidx.fragment.app.FragmentTransaction addSharedElement(android.view.View, String); + method public androidx.fragment.app.FragmentTransaction addToBackStack(String?); + method public androidx.fragment.app.FragmentTransaction attach(androidx.fragment.app.Fragment); + method public abstract int commit(); + method public abstract int commitAllowingStateLoss(); + method public abstract void commitNow(); + method public abstract void commitNowAllowingStateLoss(); + method public androidx.fragment.app.FragmentTransaction detach(androidx.fragment.app.Fragment); + method public androidx.fragment.app.FragmentTransaction disallowAddToBackStack(); + method public androidx.fragment.app.FragmentTransaction hide(androidx.fragment.app.Fragment); + method public boolean isAddToBackStackAllowed(); + method public boolean isEmpty(); + method public androidx.fragment.app.FragmentTransaction remove(androidx.fragment.app.Fragment); + method public androidx.fragment.app.FragmentTransaction replace(@IdRes int, androidx.fragment.app.Fragment); + method public androidx.fragment.app.FragmentTransaction replace(@IdRes int, androidx.fragment.app.Fragment, String?); + method public androidx.fragment.app.FragmentTransaction runOnCommit(Runnable); + method @Deprecated public androidx.fragment.app.FragmentTransaction setAllowOptimization(boolean); + method public androidx.fragment.app.FragmentTransaction setBreadCrumbShortTitle(@StringRes int); + method public androidx.fragment.app.FragmentTransaction setBreadCrumbShortTitle(CharSequence?); + method public androidx.fragment.app.FragmentTransaction setBreadCrumbTitle(@StringRes int); + method public androidx.fragment.app.FragmentTransaction setBreadCrumbTitle(CharSequence?); + method public androidx.fragment.app.FragmentTransaction setCustomAnimations(@AnimatorRes @AnimRes int, @AnimatorRes @AnimRes int); + method public androidx.fragment.app.FragmentTransaction setCustomAnimations(@AnimatorRes @AnimRes int, @AnimatorRes @AnimRes int, @AnimatorRes @AnimRes int, @AnimatorRes @AnimRes int); + method public androidx.fragment.app.FragmentTransaction setMaxLifecycle(androidx.fragment.app.Fragment, androidx.lifecycle.Lifecycle.State); + method public androidx.fragment.app.FragmentTransaction setPrimaryNavigationFragment(androidx.fragment.app.Fragment?); + method public androidx.fragment.app.FragmentTransaction setReorderingAllowed(boolean); + method public androidx.fragment.app.FragmentTransaction setTransition(int); + method public androidx.fragment.app.FragmentTransaction setTransitionStyle(@StyleRes int); + method public androidx.fragment.app.FragmentTransaction show(androidx.fragment.app.Fragment); + field public static final int TRANSIT_ENTER_MASK = 4096; // 0x1000 + field public static final int TRANSIT_EXIT_MASK = 8192; // 0x2000 + field public static final int TRANSIT_FRAGMENT_CLOSE = 8194; // 0x2002 + field public static final int TRANSIT_FRAGMENT_FADE = 4099; // 0x1003 + field public static final int TRANSIT_FRAGMENT_OPEN = 4097; // 0x1001 + field public static final int TRANSIT_NONE = 0; // 0x0 + field public static final int TRANSIT_UNSET = -1; // 0xffffffff + } + + public class ListFragment extends androidx.fragment.app.Fragment { + ctor public ListFragment(); + method public android.widget.ListAdapter? getListAdapter(); + method public android.widget.ListView getListView(); + method public long getSelectedItemId(); + method public int getSelectedItemPosition(); + method public void onListItemClick(android.widget.ListView, android.view.View, int, long); + method public final android.widget.ListAdapter requireListAdapter(); + method public void setEmptyText(CharSequence?); + method public void setListAdapter(android.widget.ListAdapter?); + method public void setListShown(boolean); + method public void setListShownNoAnimation(boolean); + method public void setSelection(int); + } + +} + diff --git a/fragment/fragment/api/res-1.1.0-rc02.txt b/fragment/fragment/api/res-1.1.0-rc02.txt new file mode 100644 index 00000000000..e69de29bb2d --- /dev/null +++ b/fragment/fragment/api/res-1.1.0-rc02.txt diff --git a/fragment/fragment/api/restricted_1.1.0-rc02.txt b/fragment/fragment/api/restricted_1.1.0-rc02.txt new file mode 100644 index 00000000000..b5fb3a9c69a --- /dev/null +++ b/fragment/fragment/api/restricted_1.1.0-rc02.txt @@ -0,0 +1,47 @@ +// Signature format: 3.0 +package androidx.fragment.app { + + public class DialogFragment extends androidx.fragment.app.Fragment implements android.content.DialogInterface.OnCancelListener android.content.DialogInterface.OnDismissListener { + method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public void setupDialog(android.app.Dialog, int); + } + + public class Fragment implements android.content.ComponentCallbacks androidx.lifecycle.LifecycleOwner androidx.savedstate.SavedStateRegistryOwner android.view.View.OnCreateContextMenuListener androidx.lifecycle.ViewModelStoreOwner { + method @Deprecated @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public android.view.LayoutInflater getLayoutInflater(android.os.Bundle?); + method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public final boolean hasOptionsMenu(); + method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public final boolean isMenuVisible(); + } + + public class FragmentActivity extends androidx.activity.ComponentActivity implements androidx.core.app.ActivityCompat.OnRequestPermissionsResultCallback androidx.core.app.ActivityCompat.RequestPermissionsRequestCodeValidator { + method @Deprecated @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) protected boolean onPrepareOptionsPanel(android.view.View?, android.view.Menu); + method public final void validateRequestPermissionsRequestCode(int); + } + + public abstract class FragmentManager { + method @Deprecated @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public androidx.fragment.app.FragmentTransaction openTransaction(); + } + + @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public abstract class FragmentTransitionImpl { + ctor public FragmentTransitionImpl(); + method public abstract void addTarget(Object!, android.view.View!); + method public abstract void addTargets(Object!, java.util.ArrayList<android.view.View!>!); + method public abstract void beginDelayedTransition(android.view.ViewGroup!, Object!); + method protected static void bfsAddViewChildren(java.util.List<android.view.View!>!, android.view.View!); + method public abstract boolean canHandle(Object!); + method public abstract Object! cloneTransition(Object!); + method protected void getBoundsOnScreen(android.view.View!, android.graphics.Rect!); + method protected static boolean isNullOrEmpty(java.util.List!); + method public abstract Object! mergeTransitionsInSequence(Object!, Object!, Object!); + method public abstract Object! mergeTransitionsTogether(Object!, Object!, Object!); + method public abstract void removeTarget(Object!, android.view.View!); + method public abstract void replaceTargets(Object!, java.util.ArrayList<android.view.View!>!, java.util.ArrayList<android.view.View!>!); + method public abstract void scheduleHideFragmentView(Object!, android.view.View!, java.util.ArrayList<android.view.View!>!); + method public abstract void scheduleRemoveTargets(Object!, Object!, java.util.ArrayList<android.view.View!>!, Object!, java.util.ArrayList<android.view.View!>!, Object!, java.util.ArrayList<android.view.View!>!); + method public abstract void setEpicenter(Object!, android.view.View!); + method public abstract void setEpicenter(Object!, android.graphics.Rect!); + method public abstract void setSharedElementTargets(Object!, android.view.View!, java.util.ArrayList<android.view.View!>!); + method public abstract void swapSharedElementTargets(Object!, java.util.ArrayList<android.view.View!>!, java.util.ArrayList<android.view.View!>!); + method public abstract Object! wrapTransitionInSet(Object!); + } + +} + diff --git a/fragment/fragment/src/main/java/androidx/fragment/app/FragmentPagerAdapter.java b/fragment/fragment/src/main/java/androidx/fragment/app/FragmentPagerAdapter.java index 3843c10faba..d23a10757fb 100644 --- a/fragment/fragment/src/main/java/androidx/fragment/app/FragmentPagerAdapter.java +++ b/fragment/fragment/src/main/java/androidx/fragment/app/FragmentPagerAdapter.java @@ -186,12 +186,17 @@ public abstract class FragmentPagerAdapter extends PagerAdapter { @Override public void destroyItem(@NonNull ViewGroup container, int position, @NonNull Object object) { + Fragment fragment = (Fragment) object; + if (mCurTransaction == null) { mCurTransaction = mFragmentManager.beginTransaction(); } if (DEBUG) Log.v(TAG, "Detaching item #" + getItemId(position) + ": f=" + object - + " v=" + ((Fragment)object).getView()); - mCurTransaction.detach((Fragment)object); + + " v=" + (fragment.getView())); + mCurTransaction.detach(fragment); + if (fragment == mCurrentPrimaryItem) { + mCurrentPrimaryItem = null; + } } @SuppressWarnings({"ReferenceEquality", "deprecation"}) diff --git a/fragment/fragment/src/main/java/androidx/fragment/app/FragmentStatePagerAdapter.java b/fragment/fragment/src/main/java/androidx/fragment/app/FragmentStatePagerAdapter.java index 2a8d648f431..1e3eef05991 100644 --- a/fragment/fragment/src/main/java/androidx/fragment/app/FragmentStatePagerAdapter.java +++ b/fragment/fragment/src/main/java/androidx/fragment/app/FragmentStatePagerAdapter.java @@ -218,6 +218,9 @@ public abstract class FragmentStatePagerAdapter extends PagerAdapter { mFragments.set(position, null); mCurTransaction.remove(fragment); + if (fragment == mCurrentPrimaryItem) { + mCurrentPrimaryItem = null; + } } @Override |