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 @@ +