am 9edc4e89: GestureOverlayView was not invalidating itself when calling clear(false). Calling clear(true) was working properly. This change also makes clear(false) and clear(true) both behave similarly when fireActionPerformed == true.

Merge commit '9edc4e8930273d9bb3b5e9cb73c219e012de8ffb'

* commit '9edc4e8930273d9bb3b5e9cb73c219e012de8ffb':
  GestureOverlayView was not invalidating itself when calling clear(false). Calling clear(true) was working properly. This change also makes clear(false) and clear(true) both behave similarly when fireActionPerformed == true.
diff --git a/core/java/android/gesture/GestureOverlayView.java b/core/java/android/gesture/GestureOverlayView.java
index 1a82095..c21cc55 100755
--- a/core/java/android/gesture/GestureOverlayView.java
+++ b/core/java/android/gesture/GestureOverlayView.java
@@ -354,19 +354,28 @@
 
     private void clear(boolean animated, boolean fireActionPerformed) {
         setPaintAlpha(255);
+        removeCallbacks(mFadingOut);
+        mFadingOut.fireActionPerformed = fireActionPerformed;
+
         if (animated && mCurrentGesture != null) {
-            if (mFadeEnabled) {
-                mFadingAlpha = 1.0f;
-                mIsFadingOut = true;
-                mFadingHasStarted = false;
-                mFadingOut.fireActionPerformed = fireActionPerformed;
-                removeCallbacks(mFadingOut);
-                mFadingStart = AnimationUtils.currentAnimationTimeMillis() + mFadeOffset;
-            }
+            mFadingAlpha = 1.0f;
+            mIsFadingOut = true;
+            mFadingHasStarted = false;
+            mFadingStart = AnimationUtils.currentAnimationTimeMillis() + mFadeOffset;
+
             postDelayed(mFadingOut, mFadeOffset);
         } else {
-            mPath.rewind();
-            mCurrentGesture = null;
+            mFadingAlpha = 1.0f;
+            mIsFadingOut = false;
+            mFadingHasStarted = false;
+
+            if (fireActionPerformed) {
+                post(mFadingOut);
+            } else {
+                mCurrentGesture = null;
+                mPath.rewind();
+                invalidate();
+            }
         }
     }
 
@@ -598,7 +607,7 @@
             }
 
             if (mHandleGestureActions) {
-                clear(true, mIsGesturing);
+                clear(mFadeEnabled, mIsGesturing);
             }
         } else {
             // pass the event to handlers
@@ -650,17 +659,16 @@
                     setPaintAlpha((int) (255 * mFadingAlpha));
                     postDelayed(this, FADE_ANIMATION_RATE);
                 }
-
-                invalidate();
-            } else if (!mFadeEnabled) {
+            } else {
                 fireOnGesturePerformed();
 
-                mIsFadingOut = false;
                 mFadingHasStarted = false;
                 mPath.rewind();
                 mCurrentGesture = null;
                 setPaintAlpha(255);
             }
+
+            invalidate();            
         }
     }