From bcfa0d80199d63ca8307a6c7a325258e7e326ac2 Mon Sep 17 00:00:00 2001 From: Shan Huang Date: Thu, 19 Oct 2023 13:18:39 -0700 Subject: Latency tracking for Predictive Back. Bug: 305803361 Test: m -j Change-Id: Ic1fdead13d9201929f468998cb6e4e08781167bf --- .../com/android/internal/util/LatencyTracker.java | 11 ++++++++ .../wm/shell/back/BackAnimationController.java | 33 ++++++++++++++++++++++ 2 files changed, 44 insertions(+) diff --git a/core/java/com/android/internal/util/LatencyTracker.java b/core/java/com/android/internal/util/LatencyTracker.java index 87324dba64de..58ee2b21296b 100644 --- a/core/java/com/android/internal/util/LatencyTracker.java +++ b/core/java/com/android/internal/util/LatencyTracker.java @@ -19,6 +19,7 @@ import static android.content.pm.PackageManager.PERMISSION_GRANTED; import static android.os.Trace.TRACE_TAG_APP; import static android.provider.DeviceConfig.NAMESPACE_LATENCY_TRACKER; +import static com.android.internal.util.FrameworkStatsLog.UIACTION_LATENCY_REPORTED__ACTION__ACTION_BACK_SYSTEM_ANIMATION; import static com.android.internal.util.FrameworkStatsLog.UIACTION_LATENCY_REPORTED__ACTION__ACTION_CHECK_CREDENTIAL; import static com.android.internal.util.FrameworkStatsLog.UIACTION_LATENCY_REPORTED__ACTION__ACTION_CHECK_CREDENTIAL_UNLOCKED; import static com.android.internal.util.FrameworkStatsLog.UIACTION_LATENCY_REPORTED__ACTION__ACTION_EXPAND_PANEL; @@ -228,6 +229,11 @@ public class LatencyTracker { */ public static final int ACTION_KEYGUARD_FPS_UNLOCK_TO_HOME = 24; + /** + * Time it takes to start back preview surface animation after a back gesture starts. + */ + public static final int ACTION_BACK_SYSTEM_ANIMATION = 25; + private static final int[] ACTIONS_ALL = { ACTION_EXPAND_PANEL, ACTION_TOGGLE_RECENTS, @@ -254,6 +260,7 @@ public class LatencyTracker { ACTION_SMARTSPACE_DOORBELL, ACTION_NOTIFICATION_BIG_PICTURE_LOADED, ACTION_KEYGUARD_FPS_UNLOCK_TO_HOME, + ACTION_BACK_SYSTEM_ANIMATION, }; /** @hide */ @@ -283,6 +290,7 @@ public class LatencyTracker { ACTION_SMARTSPACE_DOORBELL, ACTION_NOTIFICATION_BIG_PICTURE_LOADED, ACTION_KEYGUARD_FPS_UNLOCK_TO_HOME, + ACTION_BACK_SYSTEM_ANIMATION, }) @Retention(RetentionPolicy.SOURCE) public @interface Action { @@ -315,6 +323,7 @@ public class LatencyTracker { UIACTION_LATENCY_REPORTED__ACTION__ACTION_SMARTSPACE_DOORBELL, UIACTION_LATENCY_REPORTED__ACTION__ACTION_NOTIFICATION_BIG_PICTURE_LOADED, UIACTION_LATENCY_REPORTED__ACTION__ACTION_KEYGUARD_FPS_UNLOCK_TO_HOME, + UIACTION_LATENCY_REPORTED__ACTION__ACTION_BACK_SYSTEM_ANIMATION, }; private final Object mLock = new Object(); @@ -503,6 +512,8 @@ public class LatencyTracker { return "ACTION_NOTIFICATION_BIG_PICTURE_LOADED"; case UIACTION_LATENCY_REPORTED__ACTION__ACTION_KEYGUARD_FPS_UNLOCK_TO_HOME: return "ACTION_KEYGUARD_FPS_UNLOCK_TO_HOME"; + case UIACTION_LATENCY_REPORTED__ACTION__ACTION_BACK_SYSTEM_ANIMATION: + return "ACTION_BACK_SYSTEM_ANIMATION"; default: throw new IllegalArgumentException("Invalid action"); } diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/back/BackAnimationController.java b/libs/WindowManager/Shell/src/com/android/wm/shell/back/BackAnimationController.java index 03c546dd2cf3..58436351885a 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/back/BackAnimationController.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/back/BackAnimationController.java @@ -61,6 +61,7 @@ import android.window.IOnBackInvokedCallback; import com.android.internal.annotations.VisibleForTesting; import com.android.internal.protolog.common.ProtoLog; +import com.android.internal.util.LatencyTracker; import com.android.internal.view.AppearanceRegion; import com.android.wm.shell.animation.FlingAnimationUtils; import com.android.wm.shell.common.ExternalInterfaceBinder; @@ -99,6 +100,7 @@ public class BackAnimationController implements RemoteCallable { + endLatencyTracking(); if (mBackNavigationInfo == null) { ProtoLog.e(WM_SHELL_BACK_PREVIEW, "Lack of navigation info to start animation."); -- cgit v1.2.3-59-g8ed1b