Loading core/java/android/app/BackStackRecord.java +23 −27 Original line number Diff line number Diff line Loading @@ -16,8 +16,6 @@ package android.app; import com.android.internal.util.FastPrintWriter; import android.graphics.Rect; import android.os.Parcel; import android.os.Parcelable; Loading @@ -33,6 +31,8 @@ import android.view.View; import android.view.ViewGroup; import android.view.ViewTreeObserver; import com.android.internal.util.FastPrintWriter; import java.io.FileDescriptor; import java.io.PrintWriter; import java.util.ArrayList; Loading Loading @@ -717,10 +717,12 @@ final class BackStackRecord extends FragmentTransaction implements bumpBackStackNesting(1); if (mManager.mCurState >= Fragment.CREATED) { SparseArray<Fragment> firstOutFragments = new SparseArray<Fragment>(); SparseArray<Fragment> lastInFragments = new SparseArray<Fragment>(); calculateFragments(firstOutFragments, lastInFragments); beginTransition(firstOutFragments, lastInFragments, false); } Op op = mHead; while (op != null) { Loading Loading @@ -842,6 +844,14 @@ final class BackStackRecord extends FragmentTransaction implements firstOutFragments.remove(containerId); } } /** * Ensure that fragments that are entering are at least at the CREATED state * so that they may load Transitions using TransitionInflater. */ if (fragment.mState < Fragment.CREATED && mManager.mCurState >= Fragment.CREATED) { mManager.makeActive(fragment); mManager.moveToState(fragment, Fragment.CREATED, 0, 0, false); } } } Loading Loading @@ -986,7 +996,6 @@ final class BackStackRecord extends FragmentTransaction implements */ private TransitionState beginTransition(SparseArray<Fragment> firstOutFragments, SparseArray<Fragment> lastInFragments, boolean isBack) { ensureFragmentsAreInitialized(lastInFragments); TransitionState state = new TransitionState(); // Adding a non-existent target view makes sure that the transitions don't target Loading @@ -1012,21 +1021,6 @@ final class BackStackRecord extends FragmentTransaction implements return state; } /** * Ensure that fragments that are entering are at least at the CREATED state * so that they may load Transitions using TransitionInflater. */ private void ensureFragmentsAreInitialized(SparseArray<Fragment> lastInFragments) { final int count = lastInFragments.size(); for (int i = 0; i < count; i++) { final Fragment fragment = lastInFragments.valueAt(i); if (fragment.mState < Fragment.CREATED) { mManager.makeActive(fragment); mManager.moveToState(fragment, Fragment.CREATED, 0, 0, false); } } } private static Transition cloneTransition(Transition transition) { if (transition != null) { transition = transition.clone(); Loading Loading @@ -1663,6 +1657,7 @@ final class BackStackRecord extends FragmentTransaction implements pw.flush(); } if (mManager.mCurState >= Fragment.CREATED) { if (state == null) { if (firstOutFragments.size() != 0 || lastInFragments.size() != 0) { state = beginTransition(firstOutFragments, lastInFragments, true); Loading @@ -1670,6 +1665,7 @@ final class BackStackRecord extends FragmentTransaction implements } else if (!doStateMove) { setNameOverrides(state, mSharedElementTargetNames, mSharedElementSourceNames); } } bumpBackStackNesting(-1); Loading core/java/android/app/FragmentManager.java +7 −3 Original line number Diff line number Diff line Loading @@ -1625,7 +1625,9 @@ final class FragmentManagerImpl extends FragmentManager implements LayoutInflate final BackStackRecord bss = mBackStack.remove(last); SparseArray<Fragment> firstOutFragments = new SparseArray<Fragment>(); SparseArray<Fragment> lastInFragments = new SparseArray<Fragment>(); if (mCurState >= Fragment.CREATED) { bss.calculateBackFragments(firstOutFragments, lastInFragments); } bss.popFromBackStack(true, null, firstOutFragments, lastInFragments); reportBackStackChanged(); } else { Loading Loading @@ -1672,9 +1674,11 @@ final class FragmentManagerImpl extends FragmentManager implements LayoutInflate final int LAST = states.size()-1; SparseArray<Fragment> firstOutFragments = new SparseArray<Fragment>(); SparseArray<Fragment> lastInFragments = new SparseArray<Fragment>(); if (mCurState >= Fragment.CREATED) { for (int i = 0; i <= LAST; i++) { states.get(i).calculateBackFragments(firstOutFragments, lastInFragments); } } BackStackRecord.TransitionState state = null; for (int i=0; i<=LAST; i++) { if (DEBUG) Log.v(TAG, "Popping back stack state: " + states.get(i)); Loading Loading
core/java/android/app/BackStackRecord.java +23 −27 Original line number Diff line number Diff line Loading @@ -16,8 +16,6 @@ package android.app; import com.android.internal.util.FastPrintWriter; import android.graphics.Rect; import android.os.Parcel; import android.os.Parcelable; Loading @@ -33,6 +31,8 @@ import android.view.View; import android.view.ViewGroup; import android.view.ViewTreeObserver; import com.android.internal.util.FastPrintWriter; import java.io.FileDescriptor; import java.io.PrintWriter; import java.util.ArrayList; Loading Loading @@ -717,10 +717,12 @@ final class BackStackRecord extends FragmentTransaction implements bumpBackStackNesting(1); if (mManager.mCurState >= Fragment.CREATED) { SparseArray<Fragment> firstOutFragments = new SparseArray<Fragment>(); SparseArray<Fragment> lastInFragments = new SparseArray<Fragment>(); calculateFragments(firstOutFragments, lastInFragments); beginTransition(firstOutFragments, lastInFragments, false); } Op op = mHead; while (op != null) { Loading Loading @@ -842,6 +844,14 @@ final class BackStackRecord extends FragmentTransaction implements firstOutFragments.remove(containerId); } } /** * Ensure that fragments that are entering are at least at the CREATED state * so that they may load Transitions using TransitionInflater. */ if (fragment.mState < Fragment.CREATED && mManager.mCurState >= Fragment.CREATED) { mManager.makeActive(fragment); mManager.moveToState(fragment, Fragment.CREATED, 0, 0, false); } } } Loading Loading @@ -986,7 +996,6 @@ final class BackStackRecord extends FragmentTransaction implements */ private TransitionState beginTransition(SparseArray<Fragment> firstOutFragments, SparseArray<Fragment> lastInFragments, boolean isBack) { ensureFragmentsAreInitialized(lastInFragments); TransitionState state = new TransitionState(); // Adding a non-existent target view makes sure that the transitions don't target Loading @@ -1012,21 +1021,6 @@ final class BackStackRecord extends FragmentTransaction implements return state; } /** * Ensure that fragments that are entering are at least at the CREATED state * so that they may load Transitions using TransitionInflater. */ private void ensureFragmentsAreInitialized(SparseArray<Fragment> lastInFragments) { final int count = lastInFragments.size(); for (int i = 0; i < count; i++) { final Fragment fragment = lastInFragments.valueAt(i); if (fragment.mState < Fragment.CREATED) { mManager.makeActive(fragment); mManager.moveToState(fragment, Fragment.CREATED, 0, 0, false); } } } private static Transition cloneTransition(Transition transition) { if (transition != null) { transition = transition.clone(); Loading Loading @@ -1663,6 +1657,7 @@ final class BackStackRecord extends FragmentTransaction implements pw.flush(); } if (mManager.mCurState >= Fragment.CREATED) { if (state == null) { if (firstOutFragments.size() != 0 || lastInFragments.size() != 0) { state = beginTransition(firstOutFragments, lastInFragments, true); Loading @@ -1670,6 +1665,7 @@ final class BackStackRecord extends FragmentTransaction implements } else if (!doStateMove) { setNameOverrides(state, mSharedElementTargetNames, mSharedElementSourceNames); } } bumpBackStackNesting(-1); Loading
core/java/android/app/FragmentManager.java +7 −3 Original line number Diff line number Diff line Loading @@ -1625,7 +1625,9 @@ final class FragmentManagerImpl extends FragmentManager implements LayoutInflate final BackStackRecord bss = mBackStack.remove(last); SparseArray<Fragment> firstOutFragments = new SparseArray<Fragment>(); SparseArray<Fragment> lastInFragments = new SparseArray<Fragment>(); if (mCurState >= Fragment.CREATED) { bss.calculateBackFragments(firstOutFragments, lastInFragments); } bss.popFromBackStack(true, null, firstOutFragments, lastInFragments); reportBackStackChanged(); } else { Loading Loading @@ -1672,9 +1674,11 @@ final class FragmentManagerImpl extends FragmentManager implements LayoutInflate final int LAST = states.size()-1; SparseArray<Fragment> firstOutFragments = new SparseArray<Fragment>(); SparseArray<Fragment> lastInFragments = new SparseArray<Fragment>(); if (mCurState >= Fragment.CREATED) { for (int i = 0; i <= LAST; i++) { states.get(i).calculateBackFragments(firstOutFragments, lastInFragments); } } BackStackRecord.TransitionState state = null; for (int i=0; i<=LAST; i++) { if (DEBUG) Log.v(TAG, "Popping back stack state: " + states.get(i)); Loading