Cleanup menus
Bug: 5290513
Change-Id: I2ca1de40fe362b74d941056504fc4e3249de03a3
diff --git a/src/com/android/browser/NavigationBarPhone.java b/src/com/android/browser/NavigationBarPhone.java
index 7e8695b..a1e778d 100644
--- a/src/com/android/browser/NavigationBarPhone.java
+++ b/src/com/android/browser/NavigationBarPhone.java
@@ -15,6 +15,7 @@
*/
package com.android.browser;
+import android.app.Activity;
import android.content.Context;
import android.content.res.Resources;
import android.graphics.drawable.Drawable;
@@ -174,14 +175,21 @@
}
void showMenu(View anchor) {
- mOverflowMenuShowing = true;
- mPopupMenu = new PopupMenu(mContext, anchor);
+ Activity activity = mUiController.getActivity();
+ if (mPopupMenu == null) {
+ mPopupMenu = new PopupMenu(mContext, anchor);
+ mPopupMenu.setOnMenuItemClickListener(this);
+ mPopupMenu.setOnDismissListener(this);
+ if (!activity.onCreateOptionsMenu(mPopupMenu.getMenu())) {
+ mPopupMenu = null;
+ return;
+ }
+ }
Menu menu = mPopupMenu.getMenu();
- mPopupMenu.getMenuInflater().inflate(R.menu.browser, menu);
- mUiController.updateMenuState(mBaseUi.getActiveTab(), menu);
- mPopupMenu.setOnMenuItemClickListener(this);
- mPopupMenu.setOnDismissListener(this);
- mPopupMenu.show();
+ if (activity.onPrepareOptionsMenu(menu)) {
+ mOverflowMenuShowing = true;
+ mPopupMenu.show();
+ }
}
@Override
@@ -193,7 +201,6 @@
private void onMenuHidden() {
mOverflowMenuShowing = false;
- mPopupMenu = null;
mBaseUi.showTitleBarForDuration();
}