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

Commit 8eacdc0c authored by Tony Wickham's avatar Tony Wickham
Browse files

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
parent 3388e347
Loading
Loading
Loading
Loading
+17 −9
Original line number Diff line number Diff line
@@ -203,6 +203,11 @@ public class WindowTransformSwipeHandler<T extends BaseDraggingActivity>

    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<T extends BaseDraggingActivity>
    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<T extends BaseDraggingActivity>
        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<T extends BaseDraggingActivity>
            // 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. */
+4 −2
Original line number Diff line number Diff line
@@ -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+ ")";