[go: nahoru, domu]

Remove moveToStateNow parameter from addFragment()

Separate the concerns of adding a Fragment to
the set of active Fragments and moving that
Fragment to a particular state (something only
FragmentLayoutInflaterFactory actually needs
to do).

Test: all existing tests pass
Change-Id: I6f73f81ba877d09a9f6dcf6afac886f747778efe
diff --git a/fragment/fragment/src/main/java/androidx/fragment/app/BackStackRecord.java b/fragment/fragment/src/main/java/androidx/fragment/app/BackStackRecord.java
index ccbc082..ff0ab99 100644
--- a/fragment/fragment/src/main/java/androidx/fragment/app/BackStackRecord.java
+++ b/fragment/fragment/src/main/java/androidx/fragment/app/BackStackRecord.java
@@ -400,7 +400,7 @@
             switch (op.mCmd) {
                 case OP_ADD:
                     f.setNextAnim(op.mEnterAnim);
-                    mManager.addFragment(f, false);
+                    mManager.addFragment(f);
                     break;
                 case OP_REMOVE:
                     f.setNextAnim(op.mExitAnim);
@@ -465,7 +465,7 @@
                     break;
                 case OP_REMOVE:
                     f.setNextAnim(op.mPopEnterAnim);
-                    mManager.addFragment(f, false);
+                    mManager.addFragment(f);
                     break;
                 case OP_HIDE:
                     f.setNextAnim(op.mPopEnterAnim);
diff --git a/fragment/fragment/src/main/java/androidx/fragment/app/FragmentLayoutInflaterFactory.java b/fragment/fragment/src/main/java/androidx/fragment/app/FragmentLayoutInflaterFactory.java
index 91842df..faa0829 100644
--- a/fragment/fragment/src/main/java/androidx/fragment/app/FragmentLayoutInflaterFactory.java
+++ b/fragment/fragment/src/main/java/androidx/fragment/app/FragmentLayoutInflaterFactory.java
@@ -101,7 +101,8 @@
             fragment.mHost = mFragmentManager.mHost;
             fragment.onInflate(mFragmentManager.mHost.getContext(), attrs,
                     fragment.mSavedFragmentState);
-            mFragmentManager.addFragment(fragment, true);
+            mFragmentManager.addFragment(fragment);
+            mFragmentManager.moveToState(fragment);
 
         } else if (fragment.mInLayout) {
             // A fragment already exists and it is not one we restored from
diff --git a/fragment/fragment/src/main/java/androidx/fragment/app/FragmentManager.java b/fragment/fragment/src/main/java/androidx/fragment/app/FragmentManager.java
index 6278bae..c2ef3f3 100644
--- a/fragment/fragment/src/main/java/androidx/fragment/app/FragmentManager.java
+++ b/fragment/fragment/src/main/java/androidx/fragment/app/FragmentManager.java
@@ -1814,7 +1814,7 @@
         f.initState();
     }
 
-    void addFragment(Fragment fragment, boolean moveToStateNow) {
+    void addFragment(Fragment fragment) {
         if (DEBUG) Log.v(TAG, "add: " + fragment);
         makeActive(fragment);
         if (!fragment.mDetached) {
@@ -1832,9 +1832,6 @@
             if (isMenuAvailable(fragment)) {
                 mNeedMenuInvalidate = true;
             }
-            if (moveToStateNow) {
-                moveToState(fragment);
-            }
         }
     }