diff --git a/api/current.xml b/api/current.xml
index 9cf0dc285f7fa..01818b5f07e7a 100644
--- a/api/current.xml
+++ b/api/current.xml
@@ -3595,17 +3595,6 @@
visibility="public"
>
-
-
+
+
+
+
+
+
+
+
actionListeners =
+ mOnGesturePerformedListeners;
+ final int count = actionListeners.size();
+ for (int i = 0; i < count; i++) {
+ actionListeners.get(i).onGesturePerformed(GestureOverlayView.this,
+ mCurrentGesture);
+ }
+ }
+
private class FadeOutRunnable implements Runnable {
boolean fireActionPerformed;
@@ -594,13 +618,7 @@ public class GestureOverlayView extends FrameLayout {
if (duration > mFadeDuration) {
if (fireActionPerformed) {
- final ArrayList actionListeners =
- mOnGesturePerformedListeners;
- final int count = actionListeners.size();
- for (int i = 0; i < count; i++) {
- actionListeners.get(i).onGesturePerformed(GestureOverlayView.this,
- mCurrentGesture);
- }
+ fireOnGesturePerformed();
}
mIsFadingOut = false;
@@ -618,6 +636,14 @@ public class GestureOverlayView extends FrameLayout {
}
invalidate();
+ } else if (!mFadeEnabled) {
+ fireOnGesturePerformed();
+
+ mIsFadingOut = false;
+ mFadingHasStarted = false;
+ mPath.rewind();
+ mCurrentGesture = null;
+ setPaintAlpha(255);
}
}
}
diff --git a/core/java/android/view/ViewGroup.java b/core/java/android/view/ViewGroup.java
index c6f36a05d4254..8b0629cf2b231 100644
--- a/core/java/android/view/ViewGroup.java
+++ b/core/java/android/view/ViewGroup.java
@@ -2351,7 +2351,8 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager
final boolean drawAnimation = (child.mPrivateFlags & DRAW_ANIMATION) == DRAW_ANIMATION;
// Check whether the child that requests the invalidate is fully opaque
- final boolean isOpaque = child.isOpaque();
+ final boolean isOpaque = child.isOpaque() && !drawAnimation &&
+ child.getAnimation() != null;
// Mark the child as dirty, using the appropriate flag
// Make sure we do not set both flags at the same time
final int opaqueFlag = isOpaque ? DIRTY_OPAQUE : DIRTY;
diff --git a/core/res/res/values/attrs.xml b/core/res/res/values/attrs.xml
index bc65957e14d03..57d7dd0565088 100644
--- a/core/res/res/values/attrs.xml
+++ b/core/res/res/values/attrs.xml
@@ -2107,6 +2107,8 @@
+
+
diff --git a/core/res/res/values/public.xml b/core/res/res/values/public.xml
index d727bf6f3cd0f..3c3b2d950fd66 100644
--- a/core/res/res/values/public.xml
+++ b/core/res/res/values/public.xml
@@ -1112,6 +1112,7 @@
+