Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 10d69ac2 authored by Adam Powell's avatar Adam Powell
Browse files

Address API feedback for new fragment APIs

Framework edition

Bug: 37637473
Bug: 37636731
Bug: 37638276

Test: run fragment tests
Change-Id: I3e77ab51d60f5a550d60701fc81a84e143a53244
parent 38439169
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -4817,6 +4817,7 @@ package android.app {
    method public void onFragmentDetached(android.app.FragmentManager, android.app.Fragment);
    method public void onFragmentPaused(android.app.FragmentManager, android.app.Fragment);
    method public void onFragmentPreAttached(android.app.FragmentManager, android.app.Fragment, android.content.Context);
    method public void onFragmentPreCreated(android.app.FragmentManager, android.app.Fragment, android.os.Bundle);
    method public void onFragmentResumed(android.app.FragmentManager, android.app.Fragment);
    method public void onFragmentSaveInstanceState(android.app.FragmentManager, android.app.Fragment, android.os.Bundle);
    method public void onFragmentStarted(android.app.FragmentManager, android.app.Fragment);
@@ -4849,10 +4850,10 @@ package android.app {
    method public abstract android.app.FragmentTransaction hide(android.app.Fragment);
    method public abstract boolean isAddToBackStackAllowed();
    method public abstract boolean isEmpty();
    method public abstract android.app.FragmentTransaction postOnCommit(java.lang.Runnable);
    method public abstract android.app.FragmentTransaction remove(android.app.Fragment);
    method public abstract android.app.FragmentTransaction replace(int, android.app.Fragment);
    method public abstract android.app.FragmentTransaction replace(int, android.app.Fragment, java.lang.String);
    method public abstract android.app.FragmentTransaction runOnCommit(java.lang.Runnable);
    method public abstract android.app.FragmentTransaction setBreadCrumbShortTitle(int);
    method public abstract android.app.FragmentTransaction setBreadCrumbShortTitle(java.lang.CharSequence);
    method public abstract android.app.FragmentTransaction setBreadCrumbTitle(int);
+2 −1
Original line number Diff line number Diff line
@@ -4985,6 +4985,7 @@ package android.app {
    method public void onFragmentDetached(android.app.FragmentManager, android.app.Fragment);
    method public void onFragmentPaused(android.app.FragmentManager, android.app.Fragment);
    method public void onFragmentPreAttached(android.app.FragmentManager, android.app.Fragment, android.content.Context);
    method public void onFragmentPreCreated(android.app.FragmentManager, android.app.Fragment, android.os.Bundle);
    method public void onFragmentResumed(android.app.FragmentManager, android.app.Fragment);
    method public void onFragmentSaveInstanceState(android.app.FragmentManager, android.app.Fragment, android.os.Bundle);
    method public void onFragmentStarted(android.app.FragmentManager, android.app.Fragment);
@@ -5017,10 +5018,10 @@ package android.app {
    method public abstract android.app.FragmentTransaction hide(android.app.Fragment);
    method public abstract boolean isAddToBackStackAllowed();
    method public abstract boolean isEmpty();
    method public abstract android.app.FragmentTransaction postOnCommit(java.lang.Runnable);
    method public abstract android.app.FragmentTransaction remove(android.app.Fragment);
    method public abstract android.app.FragmentTransaction replace(int, android.app.Fragment);
    method public abstract android.app.FragmentTransaction replace(int, android.app.Fragment, java.lang.String);
    method public abstract android.app.FragmentTransaction runOnCommit(java.lang.Runnable);
    method public abstract android.app.FragmentTransaction setBreadCrumbShortTitle(int);
    method public abstract android.app.FragmentTransaction setBreadCrumbShortTitle(java.lang.CharSequence);
    method public abstract android.app.FragmentTransaction setBreadCrumbTitle(int);
+2 −1
Original line number Diff line number Diff line
@@ -4830,6 +4830,7 @@ package android.app {
    method public void onFragmentDetached(android.app.FragmentManager, android.app.Fragment);
    method public void onFragmentPaused(android.app.FragmentManager, android.app.Fragment);
    method public void onFragmentPreAttached(android.app.FragmentManager, android.app.Fragment, android.content.Context);
    method public void onFragmentPreCreated(android.app.FragmentManager, android.app.Fragment, android.os.Bundle);
    method public void onFragmentResumed(android.app.FragmentManager, android.app.Fragment);
    method public void onFragmentSaveInstanceState(android.app.FragmentManager, android.app.Fragment, android.os.Bundle);
    method public void onFragmentStarted(android.app.FragmentManager, android.app.Fragment);
@@ -4862,10 +4863,10 @@ package android.app {
    method public abstract android.app.FragmentTransaction hide(android.app.Fragment);
    method public abstract boolean isAddToBackStackAllowed();
    method public abstract boolean isEmpty();
    method public abstract android.app.FragmentTransaction postOnCommit(java.lang.Runnable);
    method public abstract android.app.FragmentTransaction remove(android.app.Fragment);
    method public abstract android.app.FragmentTransaction replace(int, android.app.Fragment);
    method public abstract android.app.FragmentTransaction replace(int, android.app.Fragment, java.lang.String);
    method public abstract android.app.FragmentTransaction runOnCommit(java.lang.Runnable);
    method public abstract android.app.FragmentTransaction setBreadCrumbShortTitle(int);
    method public abstract android.app.FragmentTransaction setBreadCrumbShortTitle(java.lang.CharSequence);
    method public abstract android.app.FragmentTransaction setBreadCrumbTitle(int);
+1 −1
Original line number Diff line number Diff line
@@ -621,7 +621,7 @@ final class BackStackRecord extends FragmentTransaction implements
    }

    @Override
    public FragmentTransaction postOnCommit(Runnable runnable) {
    public FragmentTransaction runOnCommit(Runnable runnable) {
        if (runnable == null) {
            throw new IllegalArgumentException("runnable cannot be null");
        }
+32 −0
Original line number Diff line number Diff line
@@ -451,6 +451,18 @@ public abstract class FragmentManager {
         */
        public void onFragmentAttached(FragmentManager fm, Fragment f, Context context) {}

        /**
         * Called right before the fragment's {@link Fragment#onCreate(Bundle)} method is called.
         * This is a good time to inject any required dependencies or perform other configuration
         * for the fragment.
         *
         * @param fm Host FragmentManager
         * @param f Fragment changing state
         * @param savedInstanceState Saved instance bundle from a previous instance
         */
        public void onFragmentPreCreated(FragmentManager fm, Fragment f,
                Bundle savedInstanceState) {}

        /**
         * Called after the fragment has returned from the FragmentManager's call to
         * {@link Fragment#onCreate(Bundle)}. This will only happen once for any given
@@ -1218,6 +1230,7 @@ final class FragmentManagerImpl extends FragmentManager implements LayoutInflate
                        dispatchOnFragmentAttached(f, mHost.getContext(), false);

                        if (!f.mRetaining) {
                            dispatchOnFragmentPreCreated(f, f.mSavedFragmentState, false);
                            f.performCreate(f.mSavedFragmentState);
                            dispatchOnFragmentCreated(f, f.mSavedFragmentState, false);
                        } else {
@@ -3274,6 +3287,25 @@ final class FragmentManagerImpl extends FragmentManager implements LayoutInflate
        }
    }

    void dispatchOnFragmentPreCreated(Fragment f, Bundle savedInstanceState,
            boolean onlyRecursive) {
        if (mParent != null) {
            FragmentManager parentManager = mParent.getFragmentManager();
            if (parentManager instanceof FragmentManagerImpl) {
                ((FragmentManagerImpl) parentManager)
                        .dispatchOnFragmentPreCreated(f, savedInstanceState, true);
            }
        }
        if (mLifecycleCallbacks == null) {
            return;
        }
        for (Pair<FragmentLifecycleCallbacks, Boolean> p : mLifecycleCallbacks) {
            if (!onlyRecursive || p.second) {
                p.first.onFragmentPreCreated(this, f, savedInstanceState);
            }
        }
    }

    void dispatchOnFragmentCreated(Fragment f, Bundle savedInstanceState, boolean onlyRecursive) {
        if (mParent != null) {
            FragmentManager parentManager = mParent.getFragmentManager();
Loading