diff --git a/core/java/android/view/View.java b/core/java/android/view/View.java index 2447f8cd986fe..811a633920de5 100644 --- a/core/java/android/view/View.java +++ b/core/java/android/view/View.java @@ -5027,6 +5027,15 @@ public class View implements Drawable.Callback, KeyEvent.Callback, Accessibility focusTaken = requestFocus(); } + if (prepressed) { + // The button is being released before we actually + // showed it as pressed. Make it show the pressed + // state now (before scheduling the click) to ensure + // the user sees it. + mPrivateFlags |= PRESSED; + refreshDrawableState(); + } + if (!mHasPerformedLongPress) { // This is a tap, so remove the longpress check removeLongPressCallback(); @@ -5050,8 +5059,6 @@ public class View implements Drawable.Callback, KeyEvent.Callback, Accessibility } if (prepressed) { - mPrivateFlags |= PRESSED; - refreshDrawableState(); postDelayed(mUnsetPressedState, ViewConfiguration.getPressedStateDuration()); } else if (!post(mUnsetPressedState)) {