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

Commit b018399a authored by Christoph Studer's avatar Christoph Studer
Browse files

SysUI: Log lockscreen gestures

Log the following lockscreen gestures:
 * Swipe up to unlock
 * Swipe down to enter full shade
 * Tap in empty area (causing unlock hint)
 * Swipe to camera
 * Swipe to dialer
 * Tap on lock to lock device
 * Tap on notification, activating it

For swipe gestures, includes length and velocity where available.

Bug: 18767135
Change-Id: Ib2c535e3a9d2b378f5a2a0a00c2be3fd916554ac
parent 86e1788d
Loading
Loading
Loading
Loading
+37 −0
Original line number Diff line number Diff line
/*
 * Copyright (C) 2014 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License
 */

package com.android.systemui;

/**
 * Constants to be passed as sysui_* eventlog parameters.
 */
public class EventLogConstants {
    /** The user swiped up on the lockscreen, unlocking the device. */
    public static final int SYSUI_LOCKSCREEN_GESTURE_SWIPE_UP_UNLOCK = 1;
    /** The user swiped down on the lockscreen, going to the full shade. */
    public static final int SYSUI_LOCKSCREEN_GESTURE_SWIPE_DOWN_FULL_SHADE = 2;
    /** The user tapped in an empty area, causing the unlock hint to be shown. */
    public static final int SYSUI_LOCKSCREEN_GESTURE_TAP_UNLOCK_HINT = 3;
    /** The user swiped inward on the camera icon, launching the camera. */
    public static final int SYSUI_LOCKSCREEN_GESTURE_SWIPE_CAMERA = 4;
    /** The user swiped inward on the dialer icon, launching the dialer. */
    public static final int SYSUI_LOCKSCREEN_GESTURE_SWIPE_DIALER = 5;
    /** The user tapped the lock, locking the device. */
    public static final int SYSUI_LOCKSCREEN_GESTURE_TAP_LOCK = 6;
    /** The user tapped a notification, needs to tap again to launch. */
    public static final int SYSUI_LOCKSCREEN_GESTURE_TAP_NOTIFICATION_ACTIVATE = 7;
}
+9 −0
Original line number Diff line number Diff line
@@ -27,6 +27,15 @@ option java_package com.android.systemui;
# NotificationPanelView.java
# ---------------------------
36020 sysui_notificationpanel_touch (type|1),(x|1),(y|1)
## type: 1: SWIPE_UP_UNLOCK           Swiped up to dismiss the lockscreen.
##       2: SWIPE_DOWN_FULL_SHADE     Swiped down to enter full shade.
##       3: TAP_UNLOCK_HINT           Tapped in empty area, causes unlock hint.
##       4: SWIPE_CAMERA              Swiped the camera icon, launches.
##       5: SWIPE_DIALER              Swiped the dialer icon, launches.
##       6: TAP_LOCK                  Tapped the (unlocked) lock icon, locks the device.
##       7: TAP_NOTIFICATION_ACTIVATE Tapped a lockscreen notification, causes "tap again" hint.
##                                    Note: Second tap logged as notification_clicked.
36021 sysui_lockscreen_gesture (type|1),(lengthDp|1),(velocityDp|1)

# ---------------------------
# SettingsPanelView.java
+3 −2
Original line number Diff line number Diff line
@@ -126,7 +126,8 @@ public class DragDownHelper implements Gefingerpoken {
                }
                return true;
            case MotionEvent.ACTION_UP:
                if (mDraggedFarEnough && mDragDownCallback.onDraggedDown(mStartingChild)) {
                if (mDraggedFarEnough && mDragDownCallback.onDraggedDown(mStartingChild,
                        (int) (y - mInitialTouchY))) {
                    if (mStartingChild == null) {
                        mDragDownCallback.setEmptyDragAmount(0f);
                    }
@@ -221,7 +222,7 @@ public class DragDownHelper implements Gefingerpoken {
        /**
         * @return true if the interaction is accepted, false if it should be cancelled
         */
        boolean onDraggedDown(View startingChild);
        boolean onDraggedDown(View startingChild, int dragLengthY);
        void onDragDownReset();
        void onThresholdReached();
        void onTouchSlopExceeded();
+2 −2
Original line number Diff line number Diff line
@@ -317,7 +317,7 @@ public class KeyguardAffordanceHelper {
        animator.addListener(mFlingEndListener);
        if (!snapBack) {
            startFinishingCircleAnimation(vel * 0.375f, mAnimationEndRunnable);
            mCallback.onAnimationToSideStarted(mTranslation < 0);
            mCallback.onAnimationToSideStarted(mTranslation < 0, mTranslation, vel);
        } else {
            reset(true);
        }
@@ -461,7 +461,7 @@ public class KeyguardAffordanceHelper {
         *
         * @param rightPage Is the page animated to the right page?
         */
        void onAnimationToSideStarted(boolean rightPage);
        void onAnimationToSideStarted(boolean rightPage, float translation, float vel);

        /**
         * Notifies the callback the animation to a side page has ended.
+5 −0
Original line number Diff line number Diff line
@@ -47,6 +47,8 @@ import android.widget.TextView;
import com.android.internal.widget.LockPatternUtils;
import com.android.keyguard.KeyguardUpdateMonitor;
import com.android.keyguard.KeyguardUpdateMonitorCallback;
import com.android.systemui.EventLogConstants;
import com.android.systemui.EventLogTags;
import com.android.systemui.R;
import com.android.systemui.statusbar.CommandQueue;
import com.android.systemui.statusbar.KeyguardAffordanceView;
@@ -320,6 +322,9 @@ public class KeyguardBottomAreaView extends FrameLayout implements View.OnClickL
    }

    private void handleTrustCircleClick() {
        EventLogTags.writeSysuiLockscreenGesture(
                EventLogConstants.SYSUI_LOCKSCREEN_GESTURE_TAP_LOCK, 0 /* lengthDp - N/A */,
                0 /* velocityDp - N/A */);
        mIndicationController.showTransientIndication(
                R.string.keyguard_indication_trust_disabled);
        mLockPatternUtils.requireCredentialEntry(mLockPatternUtils.getCurrentUser());
Loading