| Index: chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenu.java
|
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenu.java b/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenu.java
|
| index 9b879403b31840af88dcfb636a33c22c222f17ed..bc1bcf10a04073ed219c65bc22125fc508323d5d 100644
|
| --- a/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenu.java
|
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenu.java
|
| @@ -5,6 +5,7 @@
|
| package org.chromium.chrome.browser.appmenu;
|
|
|
| import android.animation.Animator;
|
| +import android.animation.Animator.AnimatorListener;
|
| import android.animation.AnimatorSet;
|
| import android.content.Context;
|
| import android.content.res.Resources;
|
| @@ -27,6 +28,7 @@ import android.widget.ListView;
|
| import android.widget.PopupWindow;
|
| import android.widget.PopupWindow.OnDismissListener;
|
|
|
| +import org.chromium.base.AnimationFrameTimeHistogram;
|
| import org.chromium.base.SysUtils;
|
| import org.chromium.chrome.R;
|
|
|
| @@ -53,6 +55,9 @@ public class AppMenu implements OnItemClickListener, OnKeyListener {
|
| private AppMenuHandler mHandler;
|
| private int mCurrentScreenRotation = -1;
|
| private boolean mIsByHardwareButton;
|
| + private AnimatorSet mMenuItemEnterAnimator;
|
| + private AnimatorListener mAnimationHistogramRecorder = AnimationFrameTimeHistogram
|
| + .getAnimatorRecorder("WrenchMenu.OpeningAnimationFrameTimes");
|
|
|
| /**
|
| * Creates and sets up the App Menu.
|
| @@ -140,6 +145,10 @@ public class AppMenu implements OnItemClickListener, OnKeyListener {
|
| if (mPopup.getAnchorView() instanceof ImageButton) {
|
| ((ImageButton) mPopup.getAnchorView()).setSelected(false);
|
| }
|
| +
|
| + if (mMenuItemEnterAnimator != null) mMenuItemEnterAnimator.cancel();
|
| +
|
| + mHandler.appMenuDismissed();
|
| mHandler.onMenuVisibilityChanged(false);
|
| }
|
| });
|
| @@ -299,7 +308,6 @@ public class AppMenu implements OnItemClickListener, OnKeyListener {
|
| * Dismisses the app menu and cancels the drag-to-scroll if it is taking place.
|
| */
|
| void dismiss() {
|
| - mHandler.appMenuDismissed();
|
| if (isShowing()) {
|
| mPopup.dismiss();
|
| }
|
| @@ -361,7 +369,7 @@ public class AppMenu implements OnItemClickListener, OnKeyListener {
|
| }
|
|
|
| private void runMenuItemEnterAnimations() {
|
| - AnimatorSet animation = new AnimatorSet();
|
| + mMenuItemEnterAnimator = new AnimatorSet();
|
| AnimatorSet.Builder builder = null;
|
|
|
| ViewGroup list = mPopup.getListView();
|
| @@ -370,13 +378,14 @@ public class AppMenu implements OnItemClickListener, OnKeyListener {
|
| Object animatorObject = view.getTag(R.id.menu_item_enter_anim_id);
|
| if (animatorObject != null) {
|
| if (builder == null) {
|
| - builder = animation.play((Animator) animatorObject);
|
| + builder = mMenuItemEnterAnimator.play((Animator) animatorObject);
|
| } else {
|
| builder.with((Animator) animatorObject);
|
| }
|
| }
|
| }
|
|
|
| - animation.start();
|
| + mMenuItemEnterAnimator.addListener(mAnimationHistogramRecorder);
|
| + mMenuItemEnterAnimator.start();
|
| }
|
| }
|
|
|