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

Commit 6770d45b authored by Android Build Merger (Role)'s avatar Android Build Merger (Role) Committed by Android (Google) Code Review
Browse files

Merge "Merge "Log various types of back gesture using StatsLog Bug: 135152789...

Merge "Merge "Log various types of back gesture using StatsLog Bug: 135152789 Test: m statsd_testdrive -j31 Test: out/host/linux-x86/bin/statsd_testdrive 224" into qt-r1-dev am: fa38ed52 am: 2984f340 am: e2a5cc4e"
parents 6ea5613f dc75d6f5
Loading
Loading
Loading
Loading
+27 −1
Original line number Diff line number Diff line
@@ -34,6 +34,7 @@ import android.os.SystemClock;
import android.os.SystemProperties;
import android.util.Log;
import android.util.MathUtils;
import android.util.StatsLog;
import android.view.Gravity;
import android.view.IPinnedStackController;
import android.view.IPinnedStackListener;
@@ -107,7 +108,11 @@ public class EdgeBackGestureHandler implements DisplayListener {
                public void onSystemGestureExclusionChanged(int displayId,
                        Region systemGestureExclusion, Region unrestrictedOrNull) {
                    if (displayId == mDisplayId) {
                        mMainExecutor.execute(() -> mExcludeRegion.set(systemGestureExclusion));
                        mMainExecutor.execute(() -> {
                            mExcludeRegion.set(systemGestureExclusion);
                            mUnrestrictedExcludeRegion.set(unrestrictedOrNull != null
                                    ? unrestrictedOrNull : systemGestureExclusion);
                        });
                    }
                }
            };
@@ -121,6 +126,8 @@ public class EdgeBackGestureHandler implements DisplayListener {
    private final Executor mMainExecutor;

    private final Region mExcludeRegion = new Region();
    private final Region mUnrestrictedExcludeRegion = new Region();

    // The edge width where touch down is allowed
    private int mEdgeWidth;
    // The slop to distinguish between horizontal and vertical motion
@@ -139,6 +146,7 @@ public class EdgeBackGestureHandler implements DisplayListener {
    private final PointF mDownPoint = new PointF();
    private boolean mThresholdCrossed = false;
    private boolean mAllowGesture = false;
    private boolean mInRejectedExclusion = false;
    private boolean mIsOnLeftEdge;

    private int mImeHeight = 0;
@@ -319,6 +327,12 @@ public class EdgeBackGestureHandler implements DisplayListener {
        if (isInExcludedRegion) {
            mOverviewProxyService.notifyBackAction(false /* completed */, -1, -1,
                    false /* isButton */, !mIsOnLeftEdge);
            StatsLog.write(StatsLog.BACK_GESTURE_REPORTED_REPORTED,
                    StatsLog.BACK_GESTURE__TYPE__INCOMPLETE_EXCLUDED, y,
                    mIsOnLeftEdge ? StatsLog.BACK_GESTURE__X_LOCATION__LEFT :
                            StatsLog.BACK_GESTURE__X_LOCATION__RIGHT);
        } else {
            mInRejectedExclusion = mUnrestrictedExcludeRegion.contains(x, y);
        }
        return !isInExcludedRegion;
    }
@@ -326,6 +340,7 @@ public class EdgeBackGestureHandler implements DisplayListener {
    private void cancelGesture(MotionEvent ev) {
        // Send action cancel to reset all the touch events
        mAllowGesture = false;
        mInRejectedExclusion = false;
        MotionEvent cancelEv = MotionEvent.obtain(ev);
        cancelEv.setAction(MotionEvent.ACTION_CANCEL);
        mEdgePanel.handleTouch(cancelEv);
@@ -339,6 +354,7 @@ public class EdgeBackGestureHandler implements DisplayListener {
            // either the bouncer is showing or the notification panel is hidden
            int stateFlags = mOverviewProxyService.getSystemUiStateFlags();
            mIsOnLeftEdge = ev.getX() <= mEdgeWidth + mLeftInset;
            mInRejectedExclusion = false;
            mAllowGesture = !QuickStepContract.isBackGestureDisabled(stateFlags)
                    && isWithinTouchRegion((int) ev.getX(), (int) ev.getY());
            if (mAllowGesture) {
@@ -393,6 +409,14 @@ public class EdgeBackGestureHandler implements DisplayListener {
                }
                mOverviewProxyService.notifyBackAction(performAction, (int) mDownPoint.x,
                        (int) mDownPoint.y, false /* isButton */, !mIsOnLeftEdge);
                int backtype = performAction ? (mInRejectedExclusion
                        ? StatsLog.BACK_GESTURE__TYPE__COMPLETED_REJECTED :
                                StatsLog.BACK_GESTURE__TYPE__COMPLETED) :
                                        StatsLog.BACK_GESTURE__TYPE__INCOMPLETE;
                StatsLog.write(StatsLog.BACK_GESTURE_REPORTED_REPORTED, backtype,
                        (int) mDownPoint.y, mIsOnLeftEdge
                                ? StatsLog.BACK_GESTURE__X_LOCATION__LEFT :
                                StatsLog.BACK_GESTURE__X_LOCATION__RIGHT);
            }
            if (isUp || action == MotionEvent.ACTION_CANCEL) {
                mRegionSamplingHelper.stop();
@@ -464,7 +488,9 @@ public class EdgeBackGestureHandler implements DisplayListener {
        pw.println("EdgeBackGestureHandler:");
        pw.println("  mIsEnabled=" + mIsEnabled);
        pw.println("  mAllowGesture=" + mAllowGesture);
        pw.println("  mInRejectedExclusion" + mInRejectedExclusion);
        pw.println("  mExcludeRegion=" + mExcludeRegion);
        pw.println("  mUnrestrictedExcludeRegion=" + mUnrestrictedExcludeRegion);
        pw.println("  mImeHeight=" + mImeHeight);
        pw.println("  mIsAttached=" + mIsAttached);
        pw.println("  mEdgeWidth=" + mEdgeWidth);