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
This commit is contained in:
committed by
Android (Google) Code Review
commit
fa38ed5296
@@ -34,6 +34,7 @@ import android.os.SystemClock;
|
|||||||
import android.os.SystemProperties;
|
import android.os.SystemProperties;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import android.util.MathUtils;
|
import android.util.MathUtils;
|
||||||
|
import android.util.StatsLog;
|
||||||
import android.view.Gravity;
|
import android.view.Gravity;
|
||||||
import android.view.IPinnedStackController;
|
import android.view.IPinnedStackController;
|
||||||
import android.view.IPinnedStackListener;
|
import android.view.IPinnedStackListener;
|
||||||
@@ -107,7 +108,11 @@ public class EdgeBackGestureHandler implements DisplayListener {
|
|||||||
public void onSystemGestureExclusionChanged(int displayId,
|
public void onSystemGestureExclusionChanged(int displayId,
|
||||||
Region systemGestureExclusion, Region unrestrictedOrNull) {
|
Region systemGestureExclusion, Region unrestrictedOrNull) {
|
||||||
if (displayId == mDisplayId) {
|
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 Executor mMainExecutor;
|
||||||
|
|
||||||
private final Region mExcludeRegion = new Region();
|
private final Region mExcludeRegion = new Region();
|
||||||
|
private final Region mUnrestrictedExcludeRegion = new Region();
|
||||||
|
|
||||||
// The edge width where touch down is allowed
|
// The edge width where touch down is allowed
|
||||||
private int mEdgeWidth;
|
private int mEdgeWidth;
|
||||||
// The slop to distinguish between horizontal and vertical motion
|
// 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 final PointF mDownPoint = new PointF();
|
||||||
private boolean mThresholdCrossed = false;
|
private boolean mThresholdCrossed = false;
|
||||||
private boolean mAllowGesture = false;
|
private boolean mAllowGesture = false;
|
||||||
|
private boolean mInRejectedExclusion = false;
|
||||||
private boolean mIsOnLeftEdge;
|
private boolean mIsOnLeftEdge;
|
||||||
|
|
||||||
private int mImeHeight = 0;
|
private int mImeHeight = 0;
|
||||||
@@ -318,6 +326,12 @@ public class EdgeBackGestureHandler implements DisplayListener {
|
|||||||
if (isInExcludedRegion) {
|
if (isInExcludedRegion) {
|
||||||
mOverviewProxyService.notifyBackAction(false /* completed */, -1, -1,
|
mOverviewProxyService.notifyBackAction(false /* completed */, -1, -1,
|
||||||
false /* isButton */, !mIsOnLeftEdge);
|
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;
|
return !isInExcludedRegion;
|
||||||
}
|
}
|
||||||
@@ -325,6 +339,7 @@ public class EdgeBackGestureHandler implements DisplayListener {
|
|||||||
private void cancelGesture(MotionEvent ev) {
|
private void cancelGesture(MotionEvent ev) {
|
||||||
// Send action cancel to reset all the touch events
|
// Send action cancel to reset all the touch events
|
||||||
mAllowGesture = false;
|
mAllowGesture = false;
|
||||||
|
mInRejectedExclusion = false;
|
||||||
MotionEvent cancelEv = MotionEvent.obtain(ev);
|
MotionEvent cancelEv = MotionEvent.obtain(ev);
|
||||||
cancelEv.setAction(MotionEvent.ACTION_CANCEL);
|
cancelEv.setAction(MotionEvent.ACTION_CANCEL);
|
||||||
mEdgePanel.handleTouch(cancelEv);
|
mEdgePanel.handleTouch(cancelEv);
|
||||||
@@ -338,6 +353,7 @@ public class EdgeBackGestureHandler implements DisplayListener {
|
|||||||
// either the bouncer is showing or the notification panel is hidden
|
// either the bouncer is showing or the notification panel is hidden
|
||||||
int stateFlags = mOverviewProxyService.getSystemUiStateFlags();
|
int stateFlags = mOverviewProxyService.getSystemUiStateFlags();
|
||||||
mIsOnLeftEdge = ev.getX() <= mEdgeWidth + mLeftInset;
|
mIsOnLeftEdge = ev.getX() <= mEdgeWidth + mLeftInset;
|
||||||
|
mInRejectedExclusion = false;
|
||||||
mAllowGesture = !QuickStepContract.isBackGestureDisabled(stateFlags)
|
mAllowGesture = !QuickStepContract.isBackGestureDisabled(stateFlags)
|
||||||
&& isWithinTouchRegion((int) ev.getX(), (int) ev.getY());
|
&& isWithinTouchRegion((int) ev.getX(), (int) ev.getY());
|
||||||
if (mAllowGesture) {
|
if (mAllowGesture) {
|
||||||
@@ -392,6 +408,14 @@ public class EdgeBackGestureHandler implements DisplayListener {
|
|||||||
}
|
}
|
||||||
mOverviewProxyService.notifyBackAction(performAction, (int) mDownPoint.x,
|
mOverviewProxyService.notifyBackAction(performAction, (int) mDownPoint.x,
|
||||||
(int) mDownPoint.y, false /* isButton */, !mIsOnLeftEdge);
|
(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) {
|
if (isUp || action == MotionEvent.ACTION_CANCEL) {
|
||||||
mRegionSamplingHelper.stop();
|
mRegionSamplingHelper.stop();
|
||||||
@@ -463,7 +487,9 @@ public class EdgeBackGestureHandler implements DisplayListener {
|
|||||||
pw.println("EdgeBackGestureHandler:");
|
pw.println("EdgeBackGestureHandler:");
|
||||||
pw.println(" mIsEnabled=" + mIsEnabled);
|
pw.println(" mIsEnabled=" + mIsEnabled);
|
||||||
pw.println(" mAllowGesture=" + mAllowGesture);
|
pw.println(" mAllowGesture=" + mAllowGesture);
|
||||||
|
pw.println(" mInRejectedExclusion" + mInRejectedExclusion);
|
||||||
pw.println(" mExcludeRegion=" + mExcludeRegion);
|
pw.println(" mExcludeRegion=" + mExcludeRegion);
|
||||||
|
pw.println(" mUnrestrictedExcludeRegion=" + mUnrestrictedExcludeRegion);
|
||||||
pw.println(" mImeHeight=" + mImeHeight);
|
pw.println(" mImeHeight=" + mImeHeight);
|
||||||
pw.println(" mIsAttached=" + mIsAttached);
|
pw.println(" mIsAttached=" + mIsAttached);
|
||||||
pw.println(" mEdgeWidth=" + mEdgeWidth);
|
pw.println(" mEdgeWidth=" + mEdgeWidth);
|
||||||
|
|||||||
Reference in New Issue
Block a user