List of usage examples for android.view SubMenu getItem
public MenuItem getItem();
From source file:com.vuze.android.remote.fragment.TorrentListFragment.java
private void setupActionModeCallback() { mActionModeCallbackV7 = new Callback() { // Called when the action mode is created; startActionMode() was called @Override//from ww w . ja v a2s . c o m public boolean onCreateActionMode(ActionMode mode, Menu menu) { if (AndroidUtils.DEBUG_MENU) { Log.d(TAG, "onCreateActionMode"); } if (mode == null && torrentListAdapter.getCheckedItemCount() == 0 && torrentListAdapter.getSelectedPosition() < 0) { return false; } Menu origMenu = menu; if (tb != null) { menu = tb.getMenu(); } if (mode != null) { mActionMode = (mode instanceof ActionModeWrapperV7) ? mode : new ActionModeWrapperV7(mode, tb, getActivity()); mActionMode.setTitle(R.string.context_torrent_title); } ActionBarToolbarSplitter.buildActionBar(getActivity(), this, R.menu.menu_context_torrent_details, menu, tb); TorrentDetailsFragment frag = (TorrentDetailsFragment) getActivity().getSupportFragmentManager() .findFragmentById(R.id.frag_torrent_details); if (frag != null) { frag.onCreateActionMode(mode, menu); } if (sideListArea == null) { SubMenu subMenu = origMenu.addSubMenu(R.string.menu_global_actions); subMenu.setIcon(R.drawable.ic_menu_white_24dp); MenuItemCompat.setShowAsAction(subMenu.getItem(), MenuItemCompat.SHOW_AS_ACTION_NEVER); try { // Place "Global" actions on top bar in collapsed menu MenuInflater mi = mode == null ? getActivity().getMenuInflater() : mode.getMenuInflater(); mi.inflate(R.menu.menu_torrent_list, subMenu); onPrepareOptionsMenu(subMenu); } catch (UnsupportedOperationException e) { Log.e(TAG, e.getMessage()); menu.removeItem(subMenu.getItem().getItemId()); } } if (AndroidUtils.usesNavigationControl()) { MenuItem add = origMenu.add(R.string.select_multiple_items); add.setCheckable(true); add.setChecked(torrentListAdapter.isMultiCheckMode()); add.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() { @Override public boolean onMenuItemClick(MenuItem item) { boolean turnOn = !torrentListAdapter.isMultiCheckModeAllowed(); torrentListAdapter.setMultiCheckModeAllowed(turnOn); if (turnOn) { torrentListAdapter.setMultiCheckMode(turnOn); torrentListAdapter.setItemChecked(torrentListAdapter.getSelectedPosition(), true); } return true; } }); } return true; } // Called each time the action mode is shown. Always called after // onCreateActionMode, but // may be called multiple times if the mode is invalidated. @Override public boolean onPrepareActionMode(ActionMode mode, Menu menu) { if (AndroidUtils.DEBUG_MENU) { Log.d(TAG, "MULTI:onPrepareActionMode " + mode); } if (tb != null) { menu = tb.getMenu(); } // Must be called first, because our drawer sets all menu items // visible.. :( getActivity().onPrepareOptionsMenu(menu); prepareContextMenu(menu); TorrentDetailsFragment frag = (TorrentDetailsFragment) getActivity().getSupportFragmentManager() .findFragmentById(R.id.frag_torrent_details); if (frag != null) { frag.onPrepareActionMode(mode, menu); } AndroidUtils.fixupMenuAlpha(menu); return true; } // Called when the user selects a contextual menu item @Override public boolean onActionItemClicked(ActionMode mode, MenuItem item) { if (AndroidUtils.DEBUG_MENU) { Log.d(TAG, "onActionItemClicked " + item.getTitle()); } if (TorrentListFragment.this.handleFragmentMenuItems(item.getItemId())) { return true; } if (getActivity().onOptionsItemSelected(item)) { return true; } TorrentDetailsFragment frag = (TorrentDetailsFragment) getActivity().getSupportFragmentManager() .findFragmentById(R.id.frag_torrent_details); if (frag != null) { if (frag.onActionItemClicked(mode, item)) { return true; } } return false; } // Called when the user exits the action mode @Override public void onDestroyActionMode(ActionMode mode) { if (AndroidUtils.DEBUG_MENU) { Log.d(TAG, "onDestroyActionMode. BeingReplaced?" + actionModeBeingReplaced); } mActionMode = null; if (!actionModeBeingReplaced) { listview.post(new Runnable() { @Override public void run() { torrentListAdapter.setMultiCheckMode(false); torrentListAdapter.clearChecked(); updateCheckedIDs(); } }); listview.post(new Runnable() { @Override public void run() { if (mCallback != null) { mCallback.actionModeBeingReplacedDone(); } } }); listview.setLongClickable(true); listview.requestLayout(); AndroidUtils.invalidateOptionsMenuHC(getActivity(), mActionMode); } } }; }