@Override public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { AdapterView.AdapterContextMenuInfo i = (AdapterView.AdapterContextMenuInfo) menuInfo; MenuInflater inflater = getMenuInflater(); if (mMostVisited) { inflater.inflate(R.menu.historycontext, menu); } else { inflater.inflate(R.menu.bookmarkscontext, menu); } if (0 == i.position && !mMostVisited) { menu.setGroupVisible(R.id.CONTEXT_MENU, false); if (mAddHeader == null) { mAddHeader = new AddNewBookmark(BrowserBookmarksPage.this); } else if (mAddHeader.getParent() != null) { ((ViewGroup) mAddHeader.getParent()).removeView(mAddHeader); } mAddHeader.setUrl(getIntent().getStringExtra("url")); menu.setHeaderView(mAddHeader); return; } if (mMostVisited) { if ((mViewMode == BookmarkViewMode.LIST && ((HistoryItem) i.targetView).isBookmark()) || mBookmarksAdapter.getIsBookmark(i.position)) { MenuItem item = menu.findItem(R.id.save_to_bookmarks_menu_id); item.setTitle(R.string.remove_from_bookmarks); } } else { // The historycontext menu has no ADD_MENU group. menu.setGroupVisible(R.id.ADD_MENU, false); } if (mDisableNewWindow) { menu.findItem(R.id.new_window_context_menu_id).setVisible(false); } if (mContextHeader == null) { mContextHeader = new BookmarkItem(BrowserBookmarksPage.this); } else if (mContextHeader.getParent() != null) { ((ViewGroup) mContextHeader.getParent()).removeView(mContextHeader); } if (mViewMode == BookmarkViewMode.GRID) { mBookmarksAdapter.populateBookmarkItem(mContextHeader, i.position); } else { BookmarkItem b = (BookmarkItem) i.targetView; b.copyTo(mContextHeader); } menu.setHeaderView(mContextHeader); }