Merge change 3561 into donut
* changes: Fix multiple strokes support when fade is disabled. Multiple strokes would always be accepted after the first one.
This commit is contained in:
@@ -96,6 +96,7 @@ public class GestureOverlayView extends FrameLayout {
|
|||||||
private boolean mPreviousWasGesturing = false;
|
private boolean mPreviousWasGesturing = false;
|
||||||
private boolean mInterceptEvents = true;
|
private boolean mInterceptEvents = true;
|
||||||
private boolean mIsListeningForGestures;
|
private boolean mIsListeningForGestures;
|
||||||
|
private boolean mResetGesture;
|
||||||
|
|
||||||
// current gesture
|
// current gesture
|
||||||
private Gesture mCurrentGesture;
|
private Gesture mCurrentGesture;
|
||||||
@@ -372,7 +373,9 @@ public class GestureOverlayView extends FrameLayout {
|
|||||||
private void clear(boolean animated, boolean fireActionPerformed) {
|
private void clear(boolean animated, boolean fireActionPerformed) {
|
||||||
setPaintAlpha(255);
|
setPaintAlpha(255);
|
||||||
removeCallbacks(mFadingOut);
|
removeCallbacks(mFadingOut);
|
||||||
|
mResetGesture = false;
|
||||||
mFadingOut.fireActionPerformed = fireActionPerformed;
|
mFadingOut.fireActionPerformed = fireActionPerformed;
|
||||||
|
mFadingOut.resetMultipleStrokes = false;
|
||||||
|
|
||||||
if (animated && mCurrentGesture != null) {
|
if (animated && mCurrentGesture != null) {
|
||||||
mFadingAlpha = 1.0f;
|
mFadingAlpha = 1.0f;
|
||||||
@@ -387,11 +390,14 @@ public class GestureOverlayView extends FrameLayout {
|
|||||||
mFadingHasStarted = false;
|
mFadingHasStarted = false;
|
||||||
|
|
||||||
if (fireActionPerformed) {
|
if (fireActionPerformed) {
|
||||||
post(mFadingOut);
|
postDelayed(mFadingOut, mFadeOffset);
|
||||||
} else {
|
} else if (mHandleGestureActions) {
|
||||||
mCurrentGesture = null;
|
mCurrentGesture = null;
|
||||||
mPath.rewind();
|
mPath.rewind();
|
||||||
invalidate();
|
invalidate();
|
||||||
|
} else if (mGestureStrokeType == GESTURE_STROKE_TYPE_MULTIPLE) {
|
||||||
|
mFadingOut.resetMultipleStrokes = true;
|
||||||
|
postDelayed(mFadingOut, mFadeOffset);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -507,8 +513,9 @@ public class GestureOverlayView extends FrameLayout {
|
|||||||
mTotalLength = 0;
|
mTotalLength = 0;
|
||||||
mIsGesturing = false;
|
mIsGesturing = false;
|
||||||
|
|
||||||
if (mGestureStrokeType == GESTURE_STROKE_TYPE_SINGLE) {
|
if (mGestureStrokeType == GESTURE_STROKE_TYPE_SINGLE || mResetGesture) {
|
||||||
if (mHandleGestureActions) setCurrentColor(mUncertainGestureColor);
|
if (mHandleGestureActions) setCurrentColor(mUncertainGestureColor);
|
||||||
|
mResetGesture = false;
|
||||||
mCurrentGesture = null;
|
mCurrentGesture = null;
|
||||||
mPath.rewind();
|
mPath.rewind();
|
||||||
} else if (mCurrentGesture == null || mCurrentGesture.getStrokesCount() == 0) {
|
} else if (mCurrentGesture == null || mCurrentGesture.getStrokesCount() == 0) {
|
||||||
@@ -640,9 +647,7 @@ public class GestureOverlayView extends FrameLayout {
|
|||||||
listeners.get(i).onGestureEnded(this, event);
|
listeners.get(i).onGestureEnded(this, event);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mHandleGestureActions) {
|
clear(mHandleGestureActions && mFadeEnabled, mHandleGestureActions && mIsGesturing);
|
||||||
clear(mFadeEnabled, mIsGesturing);
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
cancelGesture(event);
|
cancelGesture(event);
|
||||||
|
|
||||||
@@ -683,6 +688,7 @@ public class GestureOverlayView extends FrameLayout {
|
|||||||
|
|
||||||
private class FadeOutRunnable implements Runnable {
|
private class FadeOutRunnable implements Runnable {
|
||||||
boolean fireActionPerformed;
|
boolean fireActionPerformed;
|
||||||
|
boolean resetMultipleStrokes;
|
||||||
|
|
||||||
public void run() {
|
public void run() {
|
||||||
if (mIsFadingOut) {
|
if (mIsFadingOut) {
|
||||||
@@ -708,6 +714,8 @@ public class GestureOverlayView extends FrameLayout {
|
|||||||
setPaintAlpha((int) (255 * mFadingAlpha));
|
setPaintAlpha((int) (255 * mFadingAlpha));
|
||||||
postDelayed(this, FADE_ANIMATION_RATE);
|
postDelayed(this, FADE_ANIMATION_RATE);
|
||||||
}
|
}
|
||||||
|
} else if (resetMultipleStrokes) {
|
||||||
|
mResetGesture = true;
|
||||||
} else {
|
} else {
|
||||||
fireOnGesturePerformed();
|
fireOnGesturePerformed();
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user