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

Commit d0c0c0d4 authored by Steven Terrell's avatar Steven Terrell Committed by Android (Google) Code Review
Browse files

Merge "Add onActivityRestarted callback" into main

parents ce4d2705 dd7dc052
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -5302,6 +5302,7 @@ package android.app {
    method public default void onActivityPreSaveInstanceState(@NonNull android.app.Activity, @NonNull android.os.Bundle);
    method public default void onActivityPreStarted(@NonNull android.app.Activity);
    method public default void onActivityPreStopped(@NonNull android.app.Activity);
    method @FlaggedApi("android.app.on_restart_activity_lifecycle_callback") public default void onActivityRestarted(@NonNull android.app.Activity);
    method public void onActivityResumed(@NonNull android.app.Activity);
    method public void onActivitySaveInstanceState(@NonNull android.app.Activity, @NonNull android.os.Bundle);
    method public void onActivityStarted(@NonNull android.app.Activity);
+15 −0
Original line number Diff line number Diff line
@@ -1806,6 +1806,19 @@ public class Activity extends ContextThemeWrapper
        }
    }

    private void dispatchActivityRestarted() {
        if (android.app.Flags.onRestartActivityLifecycleCallback()) {
            getApplication().dispatchActivityRestarted(this);
            Object[] callbacks = collectActivityLifecycleCallbacks();
            if (callbacks != null) {
                for (int i = callbacks.length - 1; i >= 0; i--) {
                    ((Application.ActivityLifecycleCallbacks) callbacks[i])
                            .onActivityRestarted(this);
                }
            }
        }
    }

    private Object[] collectActivityLifecycleCallbacks() {
        Object[] callbacks = null;
        synchronized (mActivityLifecycleCallbacks) {
@@ -2183,6 +2196,8 @@ public class Activity extends ContextThemeWrapper
    @CallSuper
    protected void onRestart() {
        mCalled = true;

        dispatchActivityRestarted();
    }

    /**
+18 −0
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@
package android.app;

import android.annotation.CallSuper;
import android.annotation.FlaggedApi;
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.compat.annotation.UnsupportedAppUsage;
@@ -215,6 +216,13 @@ public class Application extends ContextWrapper implements ComponentCallbacks2 {
         */
        default void onActivityConfigurationChanged(@NonNull Activity activity) {
        }

        /**
         * Called when the Activity calls {@link Activity#onRestart super.onRestart()}
         */
        @FlaggedApi(Flags.FLAG_ON_RESTART_ACTIVITY_LIFECYCLE_CALLBACK)
        default void onActivityRestarted(@NonNull Activity activity) {
        }
    }

    /**
@@ -586,6 +594,16 @@ public class Application extends ContextWrapper implements ComponentCallbacks2 {
        }
    }

    @FlaggedApi(Flags.FLAG_ON_RESTART_ACTIVITY_LIFECYCLE_CALLBACK)
    void dispatchActivityRestarted(@NonNull Activity activity) {
        Object[] callbacks = collectActivityLifecycleCallbacks();
        if (callbacks != null) {
            for (int i = 0; i < callbacks.length; i++) {
                ((ActivityLifecycleCallbacks) callbacks[i]).onActivityRestarted(activity);
            }
        }
    }

    @UnsupportedAppUsage
    private Object[] collectActivityLifecycleCallbacks() {
        Object[] callbacks = null;