private void setupSong() { songMenu = new PopupMenu(activity, songLayout); songMenu.getMenu().add(Menu.NONE, POPUP_ALBUM, Menu.NONE, R.string.playing_popup_go_album); songMenu.getMenu().add(Menu.NONE, POPUP_ARTIST, Menu.NONE, R.string.playing_popup_go_artist); songMenu.getMenu().add(Menu.NONE, POPUP_CURRENT, Menu.NONE, R.string.playing_popup_go_current); songMenu.setOnMenuItemClickListener(PlayingFragment.this); songMenuTouchListener = PopupMenuCompat.getDragToOpenListener(songMenu); songLayout.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { if (currentSong == null) return; if (!currentSong.isStream()) songMenu.show(); } }); }
/** * Installs click and touch listeners on a fake overflow menu button. * * @param menuButton the fragment's fake overflow menu button */ public void setupFakeOverflowMenuButton(View menuButton) { final PopupMenu fakeOverflow = new PopupMenu(menuButton.getContext(), menuButton) { @Override public void show() { getActivity().onPrepareOptionsMenu(getMenu()); super.show(); } }; fakeOverflow.inflate(R.menu.desk_clock_menu); fakeOverflow.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener () { @Override public boolean onMenuItemClick(MenuItem item) { return getActivity().onOptionsItemSelected(item); } }); menuButton.setOnTouchListener(PopupMenuCompat.getDragToOpenListener(fakeOverflow)); menuButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { fakeOverflow.show(); } }); }