Increases the falsing threshold when for the keyguard affordances

The minimum amount has been increased by 20dp and in addition the
Motion is cancelled whenever a POINTER_DOWN occurs, which should
help a lot with falsing.

Bug: 18298401
Change-Id: I04b1f30fd2555c08209224f4e84c610ecd7a33f1
(cherry picked from commit 1dc406505c)
This commit is contained in:
Selim Cinek
2014-11-12 17:53:52 +01:00
committed by John Spurlock
parent e4662f7e4b
commit 652afdf504
2 changed files with 21 additions and 30 deletions

View File

@@ -320,7 +320,7 @@
<dimen name="heads_up_window_height">250dp</dimen>
<!-- The minimum amount the user needs to swipe to go to the camera / phone. -->
<dimen name="keyguard_min_swipe_amount">90dp</dimen>
<dimen name="keyguard_min_swipe_amount">110dp</dimen>
<!-- The minimum background radius when swiping to a side for the camera / phone affordances. -->
<dimen name="keyguard_affordance_min_background_radius">30dp</dimen>

View File

@@ -46,7 +46,6 @@ public class KeyguardAffordanceHelper {
private FlingAnimationUtils mFlingAnimationUtils;
private Callback mCallback;
private int mTrackingPointer;
private VelocityTracker mVelocityTracker;
private boolean mSwipingInProgress;
private float mInitialTouchX;
@@ -65,6 +64,7 @@ public class KeyguardAffordanceHelper {
private Animator mSwipeAnimator;
private int mMinBackgroundRadius;
private boolean mMotionPerformedByUser;
private boolean mMotionCancelled;
private AnimatorListenerAdapter mFlingEndListener = new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
@@ -117,13 +117,11 @@ public class KeyguardAffordanceHelper {
}
public boolean onTouchEvent(MotionEvent event) {
int pointerIndex = event.findPointerIndex(mTrackingPointer);
if (pointerIndex < 0) {
pointerIndex = 0;
mTrackingPointer = event.getPointerId(pointerIndex);
if (mMotionCancelled && event.getActionMasked() != MotionEvent.ACTION_DOWN) {
return false;
}
final float y = event.getY(pointerIndex);
final float x = event.getX(pointerIndex);
final float y = event.getY();
final float x = event.getX();
boolean isUp = false;
switch (event.getActionMasked()) {
@@ -137,22 +135,12 @@ public class KeyguardAffordanceHelper {
initVelocityTracker();
trackMovement(event);
mMotionPerformedByUser = false;
mMotionCancelled = false;
break;
case MotionEvent.ACTION_POINTER_UP:
final int upPointer = event.getPointerId(event.getActionIndex());
if (mTrackingPointer == upPointer) {
// gesture is ongoing, find a new pointer to track
final int newIndex = event.getPointerId(0) != upPointer ? 0 : 1;
final float newY = event.getY(newIndex);
final float newX = event.getX(newIndex);
mTrackingPointer = event.getPointerId(newIndex);
mInitialTouchY = newY;
mInitialTouchX = newX;
mTranslationOnDown = mTranslation;
}
case MotionEvent.ACTION_POINTER_DOWN:
mMotionCancelled = true;
endMotion(event, true /* forceSnapBack */);
break;
case MotionEvent.ACTION_MOVE:
final float w = x - mInitialTouchX;
trackMovement(event);
@@ -174,20 +162,23 @@ public class KeyguardAffordanceHelper {
case MotionEvent.ACTION_UP:
isUp = true;
case MotionEvent.ACTION_CANCEL:
mTrackingPointer = -1;
trackMovement(event);
if (mSwipingInProgress) {
flingWithCurrentVelocity(!isUp);
}
if (mVelocityTracker != null) {
mVelocityTracker.recycle();
mVelocityTracker = null;
}
endMotion(event, !isUp);
break;
}
return true;
}
private void endMotion(MotionEvent event, boolean forceSnapBack) {
if (mSwipingInProgress) {
flingWithCurrentVelocity(forceSnapBack);
}
if (mVelocityTracker != null) {
mVelocityTracker.recycle();
mVelocityTracker = null;
}
}
private void setSwipingInProgress(boolean inProgress) {
mSwipingInProgress = inProgress;
if (inProgress) {