Merge "Keyguard - fix overzealous sliding security view" into jb-mr1-lockscreen-dev
This commit is contained in:
@@ -16,6 +16,8 @@
|
||||
|
||||
package com.android.internal.policy.impl.keyguard;
|
||||
|
||||
import com.android.internal.R;
|
||||
|
||||
import android.animation.Animator;
|
||||
import android.animation.AnimatorListenerAdapter;
|
||||
import android.animation.ObjectAnimator;
|
||||
@@ -29,7 +31,6 @@ import android.graphics.drawable.Drawable;
|
||||
import android.util.AttributeSet;
|
||||
import android.util.FloatProperty;
|
||||
import android.util.Log;
|
||||
import android.util.MathUtils;
|
||||
import android.util.Property;
|
||||
import android.view.MotionEvent;
|
||||
import android.view.VelocityTracker;
|
||||
@@ -40,8 +41,6 @@ import android.view.accessibility.AccessibilityManager;
|
||||
import android.view.animation.Interpolator;
|
||||
import android.widget.Scroller;
|
||||
|
||||
import com.android.internal.R;
|
||||
|
||||
/**
|
||||
* This layout handles interaction with the sliding security challenge views
|
||||
* that overlay/resize other keyguard contents.
|
||||
@@ -53,7 +52,7 @@ public class SlidingChallengeLayout extends ViewGroup implements ChallengeLayout
|
||||
// The drag handle is measured in dp above & below the top edge of the
|
||||
// challenge view; these parameters change based on whether the challenge
|
||||
// is open or closed.
|
||||
private static final int DRAG_HANDLE_CLOSED_ABOVE = 64; // dp
|
||||
private static final int DRAG_HANDLE_CLOSED_ABOVE = 8; // dp
|
||||
private static final int DRAG_HANDLE_CLOSED_BELOW = 0; // dp
|
||||
private static final int DRAG_HANDLE_OPEN_ABOVE = 8; // dp
|
||||
private static final int DRAG_HANDLE_OPEN_BELOW = 0; // dp
|
||||
@@ -581,18 +580,16 @@ public class SlidingChallengeLayout extends ViewGroup implements ChallengeLayout
|
||||
final float x = ev.getX(i);
|
||||
final float y = ev.getY(i);
|
||||
if (!mIsBouncing && mActivePointerId == INVALID_POINTER
|
||||
&& ((isInDragHandle(x, y) && MathUtils.sq(x - mGestureStartX)
|
||||
+ MathUtils.sq(y - mGestureStartY) > mTouchSlopSquare)
|
||||
|| crossedDragHandle(x, y, mGestureStartY)
|
||||
&& (crossedDragHandle(x, y, mGestureStartY)
|
||||
|| (isInChallengeView(x, y) &&
|
||||
mScrollState == SCROLL_STATE_SETTLING))) {
|
||||
mScrollState == SCROLL_STATE_SETTLING))) {
|
||||
mActivePointerId = ev.getPointerId(i);
|
||||
mGestureStartX = x;
|
||||
mGestureStartY = y;
|
||||
mGestureStartChallengeBottom = getChallengeBottom();
|
||||
mDragging = true;
|
||||
mChallengeView.setLayerType(LAYER_TYPE_HARDWARE, null);
|
||||
} else if (isInChallengeView(x, y)) {
|
||||
} else if (mChallengeShowing && isInChallengeView(x, y)) {
|
||||
mBlockDrag = true;
|
||||
}
|
||||
}
|
||||
@@ -767,11 +764,19 @@ public class SlidingChallengeLayout extends ViewGroup implements ChallengeLayout
|
||||
}
|
||||
|
||||
private boolean crossedDragHandle(float x, float y, float initialY) {
|
||||
|
||||
final int challengeTop = mChallengeView.getTop();
|
||||
return x >= 0 &&
|
||||
x < getWidth() &&
|
||||
initialY < (challengeTop - getDragHandleSizeAbove()) &&
|
||||
y > challengeTop + getDragHandleSizeBelow();
|
||||
final boolean horizOk = x >= 0 && x < getWidth();
|
||||
|
||||
final boolean vertOk;
|
||||
if (mChallengeShowing) {
|
||||
vertOk = initialY < (challengeTop - getDragHandleSizeAbove()) &&
|
||||
y > challengeTop + getDragHandleSizeBelow();
|
||||
} else {
|
||||
vertOk = initialY > challengeTop + getDragHandleSizeBelow() &&
|
||||
y < challengeTop - getDragHandleSizeAbove();
|
||||
}
|
||||
return horizOk && vertOk;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user