Bouncer retry polish
Fixes: 133192281
Test: manually drag pattern and pin areas
Change-Id: I2746badd64350416fd4c62b717a098a2fc1ce136
(cherry picked from commit abb18f4cd9a8b16c2d10a9e65ecbb73122b23be2)
diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardPatternView.java b/packages/SystemUI/src/com/android/keyguard/KeyguardPatternView.java
index 0e91e41..d8086da 100644
--- a/packages/SystemUI/src/com/android/keyguard/KeyguardPatternView.java
+++ b/packages/SystemUI/src/com/android/keyguard/KeyguardPatternView.java
@@ -64,6 +64,9 @@
// How much we scale up the duration of the disappear animation when the current user is locked
public static final float DISAPPEAR_MULTIPLIER_LOCKED = 1.5f;
+ // Extra padding, in pixels, that should eat touch events.
+ private static final int PATTERNS_TOUCH_AREA_EXTENSION = 40;
+
private final KeyguardUpdateMonitor mKeyguardUpdateMonitor;
private final AppearAnimationUtils mAppearAnimationUtils;
private final DisappearAnimationUtils mDisappearAnimationUtils;
@@ -204,9 +207,10 @@
protected void onLayout(boolean changed, int l, int t, int r, int b) {
super.onLayout(changed, l, t, r, b);
mLockPatternView.getLocationOnScreen(mTmpPosition);
- mLockPatternScreenBounds.set(mTmpPosition[0], mTmpPosition[1],
- mTmpPosition[0] + mLockPatternView.getWidth(),
- mTmpPosition[1] + mLockPatternView.getHeight());
+ mLockPatternScreenBounds.set(mTmpPosition[0] - PATTERNS_TOUCH_AREA_EXTENSION,
+ mTmpPosition[1] - PATTERNS_TOUCH_AREA_EXTENSION,
+ mTmpPosition[0] + mLockPatternView.getWidth() + PATTERNS_TOUCH_AREA_EXTENSION,
+ mTmpPosition[1] + mLockPatternView.getHeight() + PATTERNS_TOUCH_AREA_EXTENSION);
}
@Override
diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardSecurityContainer.java b/packages/SystemUI/src/com/android/keyguard/KeyguardSecurityContainer.java
index 0914fb8..6cd971d 100644
--- a/packages/SystemUI/src/com/android/keyguard/KeyguardSecurityContainer.java
+++ b/packages/SystemUI/src/com/android/keyguard/KeyguardSecurityContainer.java
@@ -71,6 +71,8 @@
private static final float TOUCH_Y_MULTIPLIER = 0.25f;
// How much you need to drag the bouncer to trigger an auth retry (in dps.)
private static final float MIN_DRAG_SIZE = 10;
+ // How much to scale the default slop by, to avoid accidental drags.
+ private static final float SLOP_SCALE = 2f;
private KeyguardSecurityModel mSecurityModel;
private LockPatternUtils mLockPatternUtils;
@@ -179,7 +181,7 @@
return false;
}
int index = event.findPointerIndex(mActivePointerId);
- int touchSlop = mViewConfiguration.getScaledTouchSlop();
+ float touchSlop = mViewConfiguration.getScaledTouchSlop() * SLOP_SCALE;
if (mCurrentSecurityView != null && index != -1
&& mStartTouchY - event.getY(index) > touchSlop) {
mIsDragging = true;