From 8eacdc0c0bb23f450b034176d2a48da3f69fb902 Mon Sep 17 00:00:00 2001 From: Tony Wickham Date: Tue, 2 Apr 2019 11:18:06 -0700 Subject: [PATCH] Update logging for quick switch Now we log direction based on end velocity, instead of only using Direction.UP or DOWN based on end state. We also log the page index that we are switching to, or -1 if it's the task we came from. Bug: 127840207 Change-Id: I038d7c461957f25c55d3cdee01cc3e955ca4c4fa --- .../WindowTransformSwipeHandler.java | 26 ++++++++++++------- .../launcher3/logging/LoggerUtils.java | 6 +++-- 2 files changed, 21 insertions(+), 11 deletions(-) diff --git a/quickstep/recents_ui_overrides/src/com/android/quickstep/WindowTransformSwipeHandler.java b/quickstep/recents_ui_overrides/src/com/android/quickstep/WindowTransformSwipeHandler.java index 0065cb5cfd..f9220ab320 100644 --- a/quickstep/recents_ui_overrides/src/com/android/quickstep/WindowTransformSwipeHandler.java +++ b/quickstep/recents_ui_overrides/src/com/android/quickstep/WindowTransformSwipeHandler.java @@ -203,6 +203,11 @@ public class WindowTransformSwipeHandler private static final long SHELF_ANIM_DURATION = 120; + /** + * Used as the page index for logging when we return to the last task at the end of the gesture. + */ + private static final int LOG_NO_OP_PAGE_INDEX = -1; + private final ClipAnimationHelper mClipAnimationHelper; private final ClipAnimationHelper.TransformParams mTransformParams; @@ -245,6 +250,7 @@ public class WindowTransformSwipeHandler private boolean mPassedOverviewThreshold; private boolean mGestureStarted; private int mLogAction = Touch.SWIPE; + private int mLogDirection = Direction.UP; private final RecentsAnimationWrapper mRecentsAnimationWrapper; @@ -692,6 +698,12 @@ public class WindowTransformSwipeHandler setStateOnUiThread(STATE_GESTURE_COMPLETED); mLogAction = isFling ? Touch.FLING : Touch.SWIPE; + boolean isVelocityVertical = Math.abs(velocity.y) > Math.abs(velocity.x); + if (isVelocityVertical) { + mLogDirection = velocity.y < 0 ? Direction.UP : Direction.DOWN; + } else { + mLogDirection = velocity.x < 0 ? Direction.LEFT : Direction.RIGHT; + } handleNormalGestureEnd(endVelocity, isFling, velocity); } @@ -824,19 +836,15 @@ public class WindowTransformSwipeHandler // We probably never received an animation controller, skip logging. return; } - boolean toLauncher = endTarget.isLauncher; - final int direction; - if (dp.isVerticalBarLayout()) { - direction = (dp.isSeascape() ^ toLauncher) ? Direction.LEFT : Direction.RIGHT; - } else { - direction = toLauncher ? Direction.UP : Direction.DOWN; - } + int pageIndex = endTarget == LAST_TASK + ? LOG_NO_OP_PAGE_INDEX + : mRecentsView.getNextPage(); UserEventDispatcher.newInstance(mContext).logStateChangeAction( - mLogAction, direction, + mLogAction, mLogDirection, ContainerType.NAVBAR, ContainerType.APP, endTarget.containerType, - 0); + pageIndex); } /** Animates to the given progress, where 0 is the current app and 1 is overview. */ diff --git a/src/com/android/launcher3/logging/LoggerUtils.java b/src/com/android/launcher3/logging/LoggerUtils.java index 4ef86265f5..d208077d5b 100644 --- a/src/com/android/launcher3/logging/LoggerUtils.java +++ b/src/com/android/launcher3/logging/LoggerUtils.java @@ -15,7 +15,8 @@ */ package com.android.launcher3.logging; -import android.content.Context; +import static com.android.launcher3.userevent.nano.LauncherLogProto.ContainerType.NAVBAR; + import android.util.ArrayMap; import android.util.SparseArray; import android.view.View; @@ -97,7 +98,8 @@ public class LoggerUtils { case Target.Type.CONTAINER: str = getFieldName(t.containerType, ContainerType.class); if (t.containerType == ContainerType.WORKSPACE || - t.containerType == ContainerType.HOTSEAT) { + t.containerType == ContainerType.HOTSEAT || + t.containerType == NAVBAR) { str += " id=" + t.pageIndex; } else if (t.containerType == ContainerType.FOLDER) { str += " grid(" + t.gridX + "," + t.gridY+ ")";