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

Commit 6bdd3a15 authored by Dianne Hackborn's avatar Dianne Hackborn
Browse files

Fix issue #22843150: fragment transaction crash from onRequestPermisssionResult

Add new Activity callback to tell it when its saved state has
been invalidated.

The problem is that delivering the permission result does not go
through a path where the compatibility code can see it first to
mark its fragment manager as no longer having saved state.  So this
new callback gives it a place to do that.

Change-Id: I5a4a185d9c746bae1afb5c588aba82c8daccf079
parent 6bdc4637
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -3412,6 +3412,7 @@ package android.app {
    method public boolean onSearchRequested(android.view.SearchEvent);
    method public boolean onSearchRequested();
    method protected void onStart();
    method public void onStateNotSaved();
    method protected void onStop();
    method protected void onTitleChanged(java.lang.CharSequence, int);
    method public boolean onTouchEvent(android.view.MotionEvent);
+1 −0
Original line number Diff line number Diff line
@@ -3516,6 +3516,7 @@ package android.app {
    method public boolean onSearchRequested(android.view.SearchEvent);
    method public boolean onSearchRequested();
    method protected void onStart();
    method public void onStateNotSaved();
    method protected void onStop();
    method protected void onTitleChanged(java.lang.CharSequence, int);
    method public boolean onTouchEvent(android.view.MotionEvent);
+10 −0
Original line number Diff line number Diff line
@@ -1171,6 +1171,16 @@ public class Activity extends ContextThemeWrapper
        mCalled = true;
    }

    /**
     * Called when an {@link #onResume} is coming up, prior to other pre-resume callbacks
     * such as {@link #onNewIntent} and {@link #onActivityResult}.  This is primarily intended
     * to give the activity a hint that its state is no longer saved -- it will generally
     * be called after {@link #onSaveInstanceState} and prior to the activity being
     * resumed/started again.
     */
    public void onStateNotSaved() {
    }

    /**
     * Called after {@link #onRestoreInstanceState}, {@link #onRestart}, or
     * {@link #onPause}, for your activity to start interacting with the user.
+1 −0
Original line number Diff line number Diff line
@@ -3079,6 +3079,7 @@ public final class ActivityThread {
                r.activity.mStartedActivity = false;
            }
            try {
                r.activity.onStateNotSaved();
                r.activity.mFragments.noteStateNotSaved();
                if (r.pendingIntents != null) {
                    deliverNewIntents(r, r.pendingIntents);