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

Commit 1bfb259a authored by Ahan Wu's avatar Ahan Wu
Browse files

Add statsd atoms for tracking motion events of notification shade

Add an interaction type enum for tracking expand / collapse of
notification shade through motion events.

Bug: 158756171
Test: Manually
Change-Id: I31e16d3517dcf4f278080a84b74ba45703da133e
parent 41a7b5ae
Loading
Loading
Loading
Loading
+12 −1
Original line number Diff line number Diff line
@@ -5267,12 +5267,23 @@ message BlobOpened{
 * Event to track Jank for various system interactions.
 *
 * Logged from:
 *  frameworks/base/core/java/android/os/aot/FrameTracker.java
 *  frameworks/base/core/java/com/android/internal/jank/FrameTracker.java
 */
message UIInteractionFrameInfoReported {
    enum InteractionType {
        UNKNOWN = 0;
        NOTIFICATION_SHADE_SWIPE = 1;
        SHADE_EXPAND_COLLAPSE_LOCK = 2;
        SHADE_SCROLL_FLING = 3;
        SHADE_ROW_EXPAND = 4;
        SHADE_ROW_SWIPE = 5;
        SHADE_QS_EXPAND_COLLAPSE = 6;
        SHADE_QS_SCROLL_SWIPE = 7;
        LAUNCHER_APP_LAUNCH_FROM_RECENTS = 8;
        LAUNCHER_APP_LAUNCH_FROM_ICON = 9;
        LAUNCHER_APP_CLOSE_TO_HOME = 10;
        LAUNCHER_APP_CLOSE_TO_PIP = 11;
        LAUNCHER_QUICK_SWITCH = 12;
    }

    optional InteractionType interaction_type = 1;
+23 −11
Original line number Diff line number Diff line
@@ -16,7 +16,18 @@

package com.android.internal.jank;

import static com.android.internal.util.FrameworkStatsLog.UIINTERACTION_FRAME_INFO_REPORTED__INTERACTION_TYPE__LAUNCHER_APP_CLOSE_TO_HOME;
import static com.android.internal.util.FrameworkStatsLog.UIINTERACTION_FRAME_INFO_REPORTED__INTERACTION_TYPE__LAUNCHER_APP_CLOSE_TO_PIP;
import static com.android.internal.util.FrameworkStatsLog.UIINTERACTION_FRAME_INFO_REPORTED__INTERACTION_TYPE__LAUNCHER_APP_LAUNCH_FROM_ICON;
import static com.android.internal.util.FrameworkStatsLog.UIINTERACTION_FRAME_INFO_REPORTED__INTERACTION_TYPE__LAUNCHER_APP_LAUNCH_FROM_RECENTS;
import static com.android.internal.util.FrameworkStatsLog.UIINTERACTION_FRAME_INFO_REPORTED__INTERACTION_TYPE__LAUNCHER_QUICK_SWITCH;
import static com.android.internal.util.FrameworkStatsLog.UIINTERACTION_FRAME_INFO_REPORTED__INTERACTION_TYPE__NOTIFICATION_SHADE_SWIPE;
import static com.android.internal.util.FrameworkStatsLog.UIINTERACTION_FRAME_INFO_REPORTED__INTERACTION_TYPE__SHADE_EXPAND_COLLAPSE_LOCK;
import static com.android.internal.util.FrameworkStatsLog.UIINTERACTION_FRAME_INFO_REPORTED__INTERACTION_TYPE__SHADE_QS_EXPAND_COLLAPSE;
import static com.android.internal.util.FrameworkStatsLog.UIINTERACTION_FRAME_INFO_REPORTED__INTERACTION_TYPE__SHADE_QS_SCROLL_SWIPE;
import static com.android.internal.util.FrameworkStatsLog.UIINTERACTION_FRAME_INFO_REPORTED__INTERACTION_TYPE__SHADE_ROW_EXPAND;
import static com.android.internal.util.FrameworkStatsLog.UIINTERACTION_FRAME_INFO_REPORTED__INTERACTION_TYPE__SHADE_ROW_SWIPE;
import static com.android.internal.util.FrameworkStatsLog.UIINTERACTION_FRAME_INFO_REPORTED__INTERACTION_TYPE__SHADE_SCROLL_FLING;

import android.annotation.IntDef;
import android.annotation.NonNull;
@@ -63,18 +74,19 @@ public class InteractionJankMonitor {
    // Use NO_STATSD_LOGGING in case the measurement for a given CUJ should not be logged to statsd.
    @VisibleForTesting
    public static final int[] CUJ_TO_STATSD_INTERACTION_TYPE = {
            // This should be mapping to CUJ_NOTIFICATION_SHADE_EXPAND_COLLAPSE.
            UIINTERACTION_FRAME_INFO_REPORTED__INTERACTION_TYPE__NOTIFICATION_SHADE_SWIPE,
            NO_STATSD_LOGGING,
            NO_STATSD_LOGGING,
            NO_STATSD_LOGGING,
            NO_STATSD_LOGGING,
            NO_STATSD_LOGGING,
            NO_STATSD_LOGGING,
            NO_STATSD_LOGGING,
            NO_STATSD_LOGGING,
            NO_STATSD_LOGGING,
            NO_STATSD_LOGGING,
            NO_STATSD_LOGGING,
            UIINTERACTION_FRAME_INFO_REPORTED__INTERACTION_TYPE__SHADE_EXPAND_COLLAPSE_LOCK,
            UIINTERACTION_FRAME_INFO_REPORTED__INTERACTION_TYPE__SHADE_SCROLL_FLING,
            UIINTERACTION_FRAME_INFO_REPORTED__INTERACTION_TYPE__SHADE_ROW_EXPAND,
            UIINTERACTION_FRAME_INFO_REPORTED__INTERACTION_TYPE__SHADE_ROW_SWIPE,
            UIINTERACTION_FRAME_INFO_REPORTED__INTERACTION_TYPE__SHADE_QS_EXPAND_COLLAPSE,
            UIINTERACTION_FRAME_INFO_REPORTED__INTERACTION_TYPE__SHADE_QS_SCROLL_SWIPE,
            UIINTERACTION_FRAME_INFO_REPORTED__INTERACTION_TYPE__LAUNCHER_APP_LAUNCH_FROM_RECENTS,
            UIINTERACTION_FRAME_INFO_REPORTED__INTERACTION_TYPE__LAUNCHER_APP_LAUNCH_FROM_ICON,
            UIINTERACTION_FRAME_INFO_REPORTED__INTERACTION_TYPE__LAUNCHER_APP_CLOSE_TO_HOME,
            UIINTERACTION_FRAME_INFO_REPORTED__INTERACTION_TYPE__LAUNCHER_APP_CLOSE_TO_PIP,
            UIINTERACTION_FRAME_INFO_REPORTED__INTERACTION_TYPE__LAUNCHER_QUICK_SWITCH,
    };

    private static volatile InteractionJankMonitor sInstance;