summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndroid (Google) Code Review <android-gerrit@google.com>2009-06-09 03:19:07 -0700
committerAndroid (Google) Code Review <android-gerrit@google.com>2009-06-09 03:19:07 -0700
commit2d2b23119f1b4daa3064f065ebeb6397963c1780 (patch)
tree54095e3c6b7d453b68c575b490d2dd691eabfe41
parent7fe416e9436a7b2a00e27e73ceb725de4e763f30 (diff)
parent73d2589d6df34307c22f1adcdfa1debf4c780ecc (diff)
downloadframeworks_base-2d2b23119f1b4daa3064f065ebeb6397963c1780.zip
frameworks_base-2d2b23119f1b4daa3064f065ebeb6397963c1780.tar.gz
frameworks_base-2d2b23119f1b4daa3064f065ebeb6397963c1780.tar.bz2
Merge change 3561 into donut
* changes: Fix multiple strokes support when fade is disabled. Multiple strokes would always be accepted after the first one.
-rwxr-xr-xcore/java/android/gesture/GestureOverlayView.java20
1 files changed, 14 insertions, 6 deletions
diff --git a/core/java/android/gesture/GestureOverlayView.java b/core/java/android/gesture/GestureOverlayView.java
index 1251964..0d0fbb5 100755
--- a/core/java/android/gesture/GestureOverlayView.java
+++ b/core/java/android/gesture/GestureOverlayView.java
@@ -96,6 +96,7 @@ public class GestureOverlayView extends FrameLayout {
private boolean mPreviousWasGesturing = false;
private boolean mInterceptEvents = true;
private boolean mIsListeningForGestures;
+ private boolean mResetGesture;
// current gesture
private Gesture mCurrentGesture;
@@ -372,7 +373,9 @@ public class GestureOverlayView extends FrameLayout {
private void clear(boolean animated, boolean fireActionPerformed) {
setPaintAlpha(255);
removeCallbacks(mFadingOut);
+ mResetGesture = false;
mFadingOut.fireActionPerformed = fireActionPerformed;
+ mFadingOut.resetMultipleStrokes = false;
if (animated && mCurrentGesture != null) {
mFadingAlpha = 1.0f;
@@ -387,11 +390,14 @@ public class GestureOverlayView extends FrameLayout {
mFadingHasStarted = false;
if (fireActionPerformed) {
- post(mFadingOut);
- } else {
+ postDelayed(mFadingOut, mFadeOffset);
+ } else if (mHandleGestureActions) {
mCurrentGesture = null;
mPath.rewind();
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;
mIsGesturing = false;
- if (mGestureStrokeType == GESTURE_STROKE_TYPE_SINGLE) {
+ if (mGestureStrokeType == GESTURE_STROKE_TYPE_SINGLE || mResetGesture) {
if (mHandleGestureActions) setCurrentColor(mUncertainGestureColor);
+ mResetGesture = false;
mCurrentGesture = null;
mPath.rewind();
} else if (mCurrentGesture == null || mCurrentGesture.getStrokesCount() == 0) {
@@ -640,9 +647,7 @@ public class GestureOverlayView extends FrameLayout {
listeners.get(i).onGestureEnded(this, event);
}
- if (mHandleGestureActions) {
- clear(mFadeEnabled, mIsGesturing);
- }
+ clear(mHandleGestureActions && mFadeEnabled, mHandleGestureActions && mIsGesturing);
} else {
cancelGesture(event);
@@ -683,6 +688,7 @@ public class GestureOverlayView extends FrameLayout {
private class FadeOutRunnable implements Runnable {
boolean fireActionPerformed;
+ boolean resetMultipleStrokes;
public void run() {
if (mIsFadingOut) {
@@ -708,6 +714,8 @@ public class GestureOverlayView extends FrameLayout {
setPaintAlpha((int) (255 * mFadingAlpha));
postDelayed(this, FADE_ANIMATION_RATE);
}
+ } else if (resetMultipleStrokes) {
+ mResetGesture = true;
} else {
fireOnGesturePerformed();