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:
Android (Google) Code Review
2009-06-09 03:19:07 -07:00

View File

@@ -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();