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+ ")";