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

Commit 29f42f1c authored by Winson Chung's avatar Winson Chung Committed by Android (Google) Code Review
Browse files

Merge "Add transition logs for transfering launch cookies" into main

parents be112773 bffca45a
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
@@ -57,6 +57,7 @@ import static com.android.internal.logging.nano.MetricsProto.MetricsEvent.TYPE_T
import static com.android.internal.logging.nano.MetricsProto.MetricsEvent.TYPE_TRANSITION_REPORTED_DRAWN_NO_BUNDLE;
import static com.android.internal.logging.nano.MetricsProto.MetricsEvent.TYPE_TRANSITION_REPORTED_DRAWN_WITH_BUNDLE;
import static com.android.internal.logging.nano.MetricsProto.MetricsEvent.TYPE_TRANSITION_WARM_LAUNCH;
import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS;
import static com.android.internal.util.FrameworkStatsLog.APP_COMPAT_STATE_CHANGED__LETTERBOX_POSITION__NOT_LETTERBOXED_POSITION;
import static com.android.internal.util.FrameworkStatsLog.APP_COMPAT_STATE_CHANGED__STATE__LETTERBOXED_FOR_ASPECT_RATIO;
import static com.android.internal.util.FrameworkStatsLog.APP_COMPAT_STATE_CHANGED__STATE__LETTERBOXED_FOR_FIXED_ORIENTATION;
@@ -103,6 +104,7 @@ import android.util.TimeUtils;

import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.logging.MetricsLogger;
import com.android.internal.protolog.ProtoLog;
import com.android.internal.util.FrameworkStatsLog;
import com.android.internal.util.LatencyTracker;
import com.android.internal.util.function.pooled.PooledLambda;
@@ -389,6 +391,14 @@ class ActivityMetricsLogger {
                return;
            }
            if (mLastLaunchedActivity != null) {
                if (mLastLaunchedActivity.mLaunchCookie != null) {
                    ProtoLog.v(WM_DEBUG_WINDOW_TRANSITIONS,
                            "Transferring launch cookie=%s from=%s(%d) to=%s(%d)",
                            mLastLaunchedActivity.mLaunchCookie,
                            mLastLaunchedActivity.packageName,
                            System.identityHashCode(mLastLaunchedActivity), r.packageName,
                            System.identityHashCode(r));
                }
                // Transfer the launch cookie and launch root task because it is a consecutive
                // launch event.
                r.mLaunchCookie = mLastLaunchedActivity.mLaunchCookie;
+10 −0
Original line number Diff line number Diff line
@@ -137,6 +137,7 @@ import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_ORIENTATIO
import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_STARTING_WINDOW;
import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_STATES;
import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_SWITCH;
import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS;
import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS_MIN;
import static com.android.internal.util.FrameworkStatsLog.APP_COMPAT_STATE_CHANGED__STATE__LETTERBOXED_FOR_ASPECT_RATIO;
import static com.android.internal.util.FrameworkStatsLog.APP_COMPAT_STATE_CHANGED__STATE__LETTERBOXED_FOR_FIXED_ORIENTATION;
@@ -2137,6 +2138,11 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A
            mHandoverLaunchDisplayId = options.getLaunchDisplayId();
            mLaunchCookie = options.getLaunchCookie();
            mLaunchRootTask = options.getLaunchRootTask();
            if (mLaunchCookie != null) {
                ProtoLog.v(WM_DEBUG_WINDOW_TRANSITIONS,
                        "Activity created with launch cookie=%s act=%s(%d)",
                        mLaunchCookie, packageName, System.identityHashCode(this));
            }
        } else {
            mHasSceneTransition = false;
        }
@@ -4141,6 +4147,10 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A
                    r -> r.mLaunchCookie == null && !r.finishing && r.isUid(getUid()),
                    this, false /* includeBoundary */, false /* traverseTopToBottom */);
            if (nextCookieTarget != null) {
                ProtoLog.v(WM_DEBUG_WINDOW_TRANSITIONS,
                        "Transferring launch cookie=%s on finish from=%s(%d) to=%s(%d)",
                        mLaunchCookie, packageName, System.identityHashCode(this),
                        nextCookieTarget.packageName, System.identityHashCode(nextCookieTarget));
                nextCookieTarget.mLaunchCookie = mLaunchCookie;
                mLaunchCookie = null;
            }
+5 −0
Original line number Diff line number Diff line
@@ -65,6 +65,7 @@ import static android.window.TaskFragmentOperation.OP_TYPE_START_ACTIVITY_IN_TAS

import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_CONFIGURATION;
import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_TASKS;
import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS;
import static com.android.server.pm.PackageArchiver.isArchivingEnabled;
import static com.android.server.wm.ActivityRecord.State.RESUMED;
import static com.android.server.wm.ActivityTaskManagerDebugConfig.DEBUG_PERMISSIONS_REVIEW;
@@ -3097,6 +3098,10 @@ class ActivityStarter {
        // options if set.
        if (mStartActivity.mLaunchCookie != null) {
            intentActivity.mLaunchCookie = mStartActivity.mLaunchCookie;
            ProtoLog.v(WM_DEBUG_WINDOW_TRANSITIONS,
                    "Updating launch cookie=%s act=%s(%d)",
                    intentActivity.mLaunchCookie, intentActivity.packageName,
                    System.identityHashCode(intentActivity));
        }
        if (mStartActivity.mPendingRemoteAnimation != null) {
            intentActivity.mPendingRemoteAnimation = mStartActivity.mPendingRemoteAnimation;
+5 −0
Original line number Diff line number Diff line
@@ -54,6 +54,7 @@ import static android.view.WindowManager.TRANSIT_TO_FRONT;

import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_STATES;
import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_TASKS;
import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS;
import static com.android.server.wm.ActivityRecord.State.PAUSED;
import static com.android.server.wm.ActivityRecord.State.PAUSING;
import static com.android.server.wm.ActivityRecord.State.RESTARTING_PROCESS;
@@ -2842,6 +2843,10 @@ public class ActivityTaskSupervisor implements RecentTasks.Callbacks {
                        targetActivity.applyOptionsAnimation();
                        if (activityOptions != null && activityOptions.getLaunchCookie() != null) {
                            targetActivity.mLaunchCookie = activityOptions.getLaunchCookie();
                            ProtoLog.v(WM_DEBUG_WINDOW_TRANSITIONS,
                                    "Updating launch cookie=%s for start from recents act=%s(%d)",
                                    targetActivity.mLaunchCookie, targetActivity.packageName,
                                    System.identityHashCode(targetActivity));
                        }
                    } finally {
                        mActivityMetricsLogger.notifyActivityLaunched(launchingState,