am 652afdf5: Increases the falsing threshold when for the keyguard affordances

* commit '652afdf504cacaae8dcc334b0f1a9e282a95d768':
  Increases the falsing threshold when for the keyguard affordances
This commit is contained in:
Selim Cinek
2014-11-18 18:33:44 +00:00
committed by Android Git Automerger
2 changed files with 21 additions and 30 deletions

View File

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

View File

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