From c55bac635aeff626e765c12ff53a422d3a757e57 Mon Sep 17 00:00:00 2001 From: Sunny Goyal Date: Wed, 19 Jun 2019 12:11:33 -0700 Subject: [PATCH] Using correct slop for checking quickstep gesture Bug: 135214165 Test: Compiles Change-Id: I6d74b33fce31346086acfaba1b9ebfeed8f928e6 --- .../systemui/shared/system/QuickStepContract.java | 14 ++++++++++++++ .../systemui/statusbar/policy/KeyButtonView.java | 9 ++------- 2 files changed, 16 insertions(+), 7 deletions(-) diff --git a/packages/SystemUI/shared/src/com/android/systemui/shared/system/QuickStepContract.java b/packages/SystemUI/shared/src/com/android/systemui/shared/system/QuickStepContract.java index db13ef4821e84..7fbe5db99569e 100644 --- a/packages/SystemUI/shared/src/com/android/systemui/shared/system/QuickStepContract.java +++ b/packages/SystemUI/shared/src/com/android/systemui/shared/system/QuickStepContract.java @@ -21,7 +21,9 @@ import static android.view.WindowManagerPolicyConstants.NAV_BAR_MODE_3BUTTON; import static android.view.WindowManagerPolicyConstants.NAV_BAR_MODE_GESTURAL; import android.annotation.IntDef; +import android.content.Context; import android.content.res.Resources; +import android.view.ViewConfiguration; import android.view.WindowManagerPolicyConstants; import com.android.internal.policy.ScreenDecorationsUtils; @@ -100,6 +102,18 @@ public class QuickStepContract { return str.toString(); } + /** + * Ratio of quickstep touch slop (when system takes over the touch) to view touch slop + */ + public static final float QUICKSTEP_TOUCH_SLOP_RATIO = 3; + + /** + * Touch slop for quickstep gesture + */ + public static final float getQuickStepTouchSlopPx(Context context) { + return QUICKSTEP_TOUCH_SLOP_RATIO * ViewConfiguration.get(context).getScaledTouchSlop(); + } + /** * Touch slopes and thresholds for quick step operations. Drag slop is the point where the * home button press/long press over are ignored and will start to drag when exceeded and the diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyButtonView.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyButtonView.java index 64b28424ae630..c2f246f3922fc 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyButtonView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyButtonView.java @@ -249,13 +249,8 @@ public class KeyButtonView extends ImageView implements ButtonInterface { x = (int)ev.getRawX(); y = (int)ev.getRawY(); - boolean exceededTouchSlopX = Math.abs(x - mTouchDownX) > (mIsVertical - ? QuickStepContract.getQuickScrubTouchSlopPx() - : QuickStepContract.getQuickStepTouchSlopPx()); - boolean exceededTouchSlopY = Math.abs(y - mTouchDownY) > (mIsVertical - ? QuickStepContract.getQuickStepTouchSlopPx() - : QuickStepContract.getQuickScrubTouchSlopPx()); - if (exceededTouchSlopX || exceededTouchSlopY) { + float slop = QuickStepContract.getQuickStepTouchSlopPx(getContext()); + if (Math.abs(x - mTouchDownX) > slop || Math.abs(y - mTouchDownY) > slop) { // When quick step is enabled, prevent animating the ripple triggered by // setPressed and decide to run it on touch up setPressed(false);