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

Commit 40c509ff authored by Sergei Vasilinetc's avatar Sergei Vasilinetc Committed by Android (Google) Code Review
Browse files

Merge "Call ActivityCallbacks after corresponding activity methods"

parents a99952c1 660cf30e
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -4171,6 +4171,7 @@ package android.app {
    method public abstract void onActivityCreated(android.app.Activity, android.os.Bundle);
    method public abstract void onActivityDestroyed(android.app.Activity);
    method public abstract void onActivityPaused(android.app.Activity);
    method public default void onActivityPreCreated(android.app.Activity, android.os.Bundle);
    method public abstract void onActivityResumed(android.app.Activity);
    method public abstract void onActivitySaveInstanceState(android.app.Activity, android.os.Bundle);
    method public abstract void onActivityStarted(android.app.Activity);
+1 −0
Original line number Diff line number Diff line
@@ -4313,6 +4313,7 @@ package android.app {
    method public abstract void onActivityCreated(android.app.Activity, android.os.Bundle);
    method public abstract void onActivityDestroyed(android.app.Activity);
    method public abstract void onActivityPaused(android.app.Activity);
    method public default void onActivityPreCreated(android.app.Activity, android.os.Bundle);
    method public abstract void onActivityResumed(android.app.Activity);
    method public abstract void onActivitySaveInstanceState(android.app.Activity, android.os.Bundle);
    method public abstract void onActivityStarted(android.app.Activity);
+1 −0
Original line number Diff line number Diff line
@@ -4181,6 +4181,7 @@ package android.app {
    method public abstract void onActivityCreated(android.app.Activity, android.os.Bundle);
    method public abstract void onActivityDestroyed(android.app.Activity);
    method public abstract void onActivityPaused(android.app.Activity);
    method public default void onActivityPreCreated(android.app.Activity, android.os.Bundle);
    method public abstract void onActivityResumed(android.app.Activity);
    method public abstract void onActivitySaveInstanceState(android.app.Activity, android.os.Bundle);
    method public abstract void onActivityStarted(android.app.Activity);
+60 −17
Original line number Diff line number Diff line
@@ -969,7 +969,9 @@ public class Activity extends ContextThemeWrapper
                    ? mLastNonConfigurationInstances.fragments : null);
        }
        mFragments.dispatchCreate();
        if (!isAtLeastO()) {
            getApplication().dispatchActivityCreated(this, savedInstanceState);
        }
        if (mVoiceInteractor != null) {
            mVoiceInteractor.attachActivity(this);
        }
@@ -1197,9 +1199,10 @@ public class Activity extends ContextThemeWrapper
        mCalled = true;

        mFragments.doLoaderStart();

        if (!isAtLeastO()) {
            getApplication().dispatchActivityStarted(this);
        }
    }

    /**
     * Called after {@link #onStop} when the current activity is being
@@ -1259,7 +1262,9 @@ public class Activity extends ContextThemeWrapper
    @CallSuper
    protected void onResume() {
        if (DEBUG_LIFECYCLE) Slog.v(TAG, "onResume " + this);
        if (!isAtLeastO()) {
            getApplication().dispatchActivityResumed(this);
        }
        mActivityTransitionState.onResume(this, isTopOfTask());
        mCalled = true;
    }
@@ -1426,6 +1431,9 @@ public class Activity extends ContextThemeWrapper
        saveManagedDialogs(outState);
        mActivityTransitionState.saveState(outState);
        storeHasCurrentPermissionRequest(outState);
        if (isAtLeastO()) {
            getApplication().dispatchActivitySaveInstanceState(this, outState);
        }
        if (DEBUG_LIFECYCLE) Slog.v(TAG, "onSaveInstanceState " + this + ": " + outState);
    }

@@ -1442,6 +1450,9 @@ public class Activity extends ContextThemeWrapper
        onSaveInstanceState(outState, outPersistentState);
        saveManagedDialogs(outState);
        storeHasCurrentPermissionRequest(outState);
        if (isAtLeastO()) {
            getApplication().dispatchActivitySaveInstanceState(this, outState);
        }
        if (DEBUG_LIFECYCLE) Slog.v(TAG, "onSaveInstanceState " + this + ": " + outState +
                ", " + outPersistentState);
    }
@@ -1497,8 +1508,10 @@ public class Activity extends ContextThemeWrapper
        if (p != null) {
            outState.putParcelable(FRAGMENTS_TAG, p);
        }
        if (!isAtLeastO()) {
            getApplication().dispatchActivitySaveInstanceState(this, outState);
        }
    }

    /**
     * This is the same as {@link #onSaveInstanceState} but is called for activities
@@ -1595,7 +1608,9 @@ public class Activity extends ContextThemeWrapper
    @CallSuper
    protected void onPause() {
        if (DEBUG_LIFECYCLE) Slog.v(TAG, "onPause " + this);
        if (!isAtLeastO()) {
            getApplication().dispatchActivityPaused(this);
        }
        mCalled = true;
    }

@@ -1795,7 +1810,9 @@ public class Activity extends ContextThemeWrapper
        if (DEBUG_LIFECYCLE) Slog.v(TAG, "onStop " + this);
        if (mActionBar != null) mActionBar.setShowHideAnimationEnabled(false);
        mActivityTransitionState.onStop();
        if (!isAtLeastO()) {
            getApplication().dispatchActivityStopped(this);
        }
        mTranslucentCallback = null;
        mCalled = true;
    }
@@ -1865,9 +1882,10 @@ public class Activity extends ContextThemeWrapper
        if (mActionBar != null) {
            mActionBar.onDestroy();
        }

        if (!isAtLeastO()) {
            getApplication().dispatchActivityDestroyed(this);
        }
    }

    /**
     * Report to the system that your app is now fully drawn, purely for diagnostic
@@ -6750,25 +6768,33 @@ public class Activity extends ContextThemeWrapper
        return mParent != null ? mParent.getActivityToken() : mToken;
    }

    final void performCreateCommon() {
    final void performCreateCommon(Bundle icicle) {
        mActivityTransitionState.readState(icicle);
        mVisibleFromClient = !mWindow.getWindowStyle().getBoolean(
                com.android.internal.R.styleable.Window_windowNoDisplay, false);
        mFragments.dispatchActivityCreated();
        mActivityTransitionState.setEnterActivityOptions(this, getActivityOptions());
        if (isAtLeastO()) {
            getApplication().dispatchActivityCreated(this, icicle);
        }
    }

    final void performCreate(Bundle icicle) {
        restoreHasCurrentPermissionRequest(icicle);
        if (isAtLeastO()) {
            getApplication().dispatchActivityPreCreated(this, icicle);
        }
        onCreate(icicle);
        mActivityTransitionState.readState(icicle);
        performCreateCommon();
        performCreateCommon(icicle);
    }

    final void performCreate(Bundle icicle, PersistableBundle persistentState) {
        restoreHasCurrentPermissionRequest(icicle);
        if (isAtLeastO()) {
            getApplication().dispatchActivityPreCreated(this, icicle);
        }
        onCreate(icicle, persistentState);
        mActivityTransitionState.readState(icicle);
        performCreateCommon();
        performCreateCommon(icicle);
    }

    final void performStart() {
@@ -6811,6 +6837,9 @@ public class Activity extends ContextThemeWrapper
        }

        mActivityTransitionState.enterReady(this);
        if (isAtLeastO()) {
            getApplication().dispatchActivityStarted(this);
        }
    }

    final void performRestart() {
@@ -6886,7 +6915,9 @@ public class Activity extends ContextThemeWrapper

        mFragments.dispatchResume();
        mFragments.execPendingActions();

        if (isAtLeastO()) {
            getApplication().dispatchActivityResumed(this);
        }
        onPostResume();
        if (!mCalled) {
            throw new SuperNotCalledException(
@@ -6901,13 +6932,15 @@ public class Activity extends ContextThemeWrapper
        mCalled = false;
        onPause();
        mResumed = false;
        if (isAtLeastO()) {
            getApplication().dispatchActivityPaused(this);
        }
        if (!mCalled && getApplicationInfo().targetSdkVersion
                >= android.os.Build.VERSION_CODES.GINGERBREAD) {
            throw new SuperNotCalledException(
                    "Activity " + mComponent.toShortString() +
                    " did not call through to super.onPause()");
        }
        mResumed = false;
    }

    final void performUserLeaving() {
@@ -6918,7 +6951,7 @@ public class Activity extends ContextThemeWrapper
    final void performStop(boolean preserveWindow) {
        mDoReportFullyDrawn = false;
        mFragments.doLoaderStop(mChangingConfigurations /*retain*/);

        boolean dispatchActivityStopped = !mStopped;
        if (!mStopped) {
            if (mWindow != null) {
                mWindow.closeAllPanels();
@@ -6955,6 +6988,9 @@ public class Activity extends ContextThemeWrapper
            mStopped = true;
        }
        mResumed = false;
        if (dispatchActivityStopped && isAtLeastO()) {
            getApplication().dispatchActivityStopped(this);
        }
    }

    final void performDestroy() {
@@ -6966,6 +7002,13 @@ public class Activity extends ContextThemeWrapper
        if (mVoiceInteractor != null) {
            mVoiceInteractor.detachActivity();
        }
        if (isAtLeastO()) {
            getApplication().dispatchActivityDestroyed(this);
        }
    }

    private boolean isAtLeastO() {
        return getApplicationInfo().targetSdkVersion >= Build.VERSION_CODES.O;
    }

    final void dispatchMultiWindowModeChanged(boolean isInMultiWindowMode) {
+11 −0
Original line number Diff line number Diff line
@@ -55,6 +55,7 @@ public class Application extends ContextWrapper implements ComponentCallbacks2 {
    public LoadedApk mLoadedApk;

    public interface ActivityLifecycleCallbacks {
        default void onActivityPreCreated(Activity activity, Bundle savedInstanceState) {}
        void onActivityCreated(Activity activity, Bundle savedInstanceState);
        void onActivityStarted(Activity activity);
        void onActivityResumed(Activity activity);
@@ -190,6 +191,16 @@ public class Application extends ContextWrapper implements ComponentCallbacks2 {
        mLoadedApk = ContextImpl.getImpl(context).mPackageInfo;
    }

    /* package */ void dispatchActivityPreCreated(Activity activity, Bundle savedInstanceState) {
        Object[] callbacks = collectActivityLifecycleCallbacks();
        if (callbacks != null) {
            for (int i = 0; i < callbacks.length; i++) {
                ((ActivityLifecycleCallbacks) callbacks[i]).onActivityPreCreated(activity,
                        savedInstanceState);
            }
        }
    }

    /* package */ void dispatchActivityCreated(Activity activity, Bundle savedInstanceState) {
        Object[] callbacks = collectActivityLifecycleCallbacks();
        if (callbacks != null) {