下面列出了android.view.MenuItem.OnMenuItemClickListener#android.view.SubMenu 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
private void pinRemotesToDrawer() {
Menu menu = navigationView.getMenu();
MenuItem existingMenu = menu.findItem(1);
if (existingMenu != null) {
return;
}
SubMenu subMenu = menu.addSubMenu(R.id.drawer_pinned_header, 1, Menu.NONE, R.string.nav_drawer_pinned_header);
List<RemoteItem> remoteItems = rclone.getRemotes();
Collections.sort(remoteItems);
for (RemoteItem remoteItem : remoteItems) {
if (remoteItem.isDrawerPinned()) {
MenuItem menuItem = subMenu.add(R.id.nav_pinned, availableDrawerPinnedRemoteId, Menu.NONE, remoteItem.getName());
drawerPinnedRemoteIds.put(availableDrawerPinnedRemoteId, remoteItem);
availableDrawerPinnedRemoteId++;
menuItem.setIcon(remoteItem.getRemoteIcon());
}
}
}
private void initMenu(Menu menu) {
if (menu == null) return;
MenuItem item = menu.findItem(R.id.action_outer_source);
SubMenu subMenu = item.getSubMenu();
subMenu.removeGroup(R.id.book_source_group);
if (BookSourceManager.getEnabledCount() > 0) {
item.setVisible(true);
item.setEnabled(true);
MenuItem subItem = subMenu.add(R.id.book_source_group, Menu.NONE, Menu.NONE, R.string.book_all_source);
if (group == null) {
subItem.setChecked(true);
}
List<String> groupList = BookSourceManager.getEnableGroupList();
for (String groupName : groupList) {
subItem = subMenu.add(R.id.book_source_group, Menu.NONE, Menu.NONE, groupName);
if (TextUtils.equals(group, subItem.getTitle())) {
subItem.setChecked(true);
}
}
subMenu.setGroupCheckable(R.id.book_source_group, true, true);
} else {
item.setVisible(false);
item.setEnabled(false);
}
}
public static void selectMenuItem(@NonNull Menu menu, @IdRes int itemId, boolean findSub) {
boolean find = false;
for (int i = 0; i < menu.size(); i++) {
if (!findSub) {
menu.getItem(i).setChecked(menu.getItem(i).getItemId() == itemId);
} else {
if (menu.getItem(i).getItemId() == itemId) {
find = true;
}
}
}
if (!findSub) {
return;
} else if (find) {
selectMenuItem(menu, itemId, false);
} else {
for (int i = 0; i < menu.size(); i++) {
SubMenu subMenu = menu.getItem(i).getSubMenu();
if(subMenu != null)
selectMenuItem(subMenu, itemId, true);
}
}
}
private void inflateSubMenuStartSecureSession(Menu menu) {
if (Build.VERSION.SDK_INT >= 22 && activeSubscriptions.size() > 1) {
menu.findItem(R.id.menu_start_secure_session).setVisible(false);
SubMenu startSecureSessionMenu = menu.findItem(R.id.menu_start_secure_session_dual_sim).getSubMenu();
for (SubscriptionInfoCompat subscriptionInfo : activeSubscriptions) {
final int subscriptionId = subscriptionInfo.getSubscriptionId();
if (!SessionUtil.hasSession(this, masterSecret, recipients.getPrimaryRecipient().getNumber(), subscriptionId)) {
startSecureSessionMenu.add(Menu.NONE, Menu.NONE, Menu.NONE, subscriptionInfo.getDisplayName())
.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
handleStartSecureSession(subscriptionId);
return true;
}
});
}
}
} else {
menu.findItem(R.id.menu_start_secure_session_dual_sim).setVisible(false);
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
//四个参数的含义:
// 1.group的id;2.item的id;3.是否排序;4.将要显示的内容
menu.add(0, 1, 0, "计算机科学与技术");
menu.add(0, 2, 0, "网络工程");
menu.add(0, 3, 0, "信息安全");
menu.add(0, 4, 0, "河北大学艺术学院");
menu.add(0, 5, 0, "河北大学质检学院");
SubMenu sub = menu.addSubMenu("子菜单");
sub.add(0, 5, 0, "子菜单一");
sub.add(0, 6, 0, "子菜单二");
sub.add(0, 7, 0, "子菜单三");
menu.add(1, 6, 0, "河北大学计算机学院");
menu.add(1, 7, 1, "河北大学电信学院");
menu.add(1, 8, 5, "河北大学新闻学院");
menu.add(1, 9, 2, "河北大学艺术学院");
menu.add(1, 10, 3, "河北大学质检学院");
return true;
}
private void setUpSortOrderMenu(@NonNull SubMenu sortOrder) {
switch (getSavedSortOrder()) {
case AlbumSongSortOrder.SONG_A_Z:
sortOrder.findItem(R.id.action_sort_order_title).setChecked(true);
break;
case AlbumSongSortOrder.SONG_Z_A:
sortOrder.findItem(R.id.action_sort_order_title_desc).setChecked(true);
break;
case AlbumSongSortOrder.SONG_TRACK_LIST:
sortOrder.findItem(R.id.action_sort_order_track_list).setChecked(true);
break;
case AlbumSongSortOrder.SONG_DURATION:
sortOrder.findItem(R.id.action_sort_order_artist_song_duration).setChecked(true);
break;
}
}
@Override
public void onPrepareSubMenu(SubMenu subMenu) {
subMenu.clear();
subMenu.add(Menu.NONE,0,Menu.NONE,mContext.getString(R.string.multi_chat))
.setIcon(R.drawable.multi_chat)
.setOnMenuItemClickListener(this);
subMenu.add(Menu.NONE,1,Menu.NONE,mContext.getString(R.string.add_friends))
.setIcon(R.drawable.add_friends)
.setOnMenuItemClickListener(this);
subMenu.add(Menu.NONE,2,Menu.NONE,mContext.getString(R.string.scan))
.setIcon(R.drawable.scan)
.setOnMenuItemClickListener(this);
subMenu.add(Menu.NONE,3,Menu.NONE,mContext.getString(R.string.pay_money))
.setIcon(R.drawable.pay_money)
.setOnMenuItemClickListener(this);
subMenu.add(Menu.NONE,4,Menu.NONE,mContext.getString(R.string.help_devise))
.setIcon(R.drawable.help_advise)
.setOnMenuItemClickListener(this);
}
@Override public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_ignore_setting, menu);
SubMenu subMenu = menu.addSubMenu(GROUP_ID, BASE_ID, 0, "排序");
subMenu.setIcon(R.drawable.ic_sort_white_24dp);
subMenu.add(GROUP_ID + 1, BASE_ID + 1, 0, "应用名");
subMenu.add(GROUP_ID + 1, BASE_ID + 2, 1, "选中");
subMenu.add(GROUP_ID + 2, BASE_ID + 3, 2, "降序")
.setCheckable(true)
.setChecked(true);
subMenu.setGroupCheckable(GROUP_ID + 1, true, true);
mMenuItem = menu.findItem(R.id.allcheck);
ActionItemBadge.update(this, mMenuItem, FontAwesome.Icon.faw_check,
ActionItemBadge.BadgeStyles.DARK_GREY, 0);
return true;
}
@Override public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_memory_clean, menu);
SubMenu subMenu = menu.addSubMenu(GROUP_ID, BASE_ID, 0, "排序");
subMenu.setIcon(R.drawable.ic_sort_white_24dp);
subMenu.add(GROUP_ID + 1, BASE_ID + 1, 0, "应用名");
subMenu.add(GROUP_ID + 1, BASE_ID + 2, 1, "大小");
subMenu.add(GROUP_ID + 1, BASE_ID + 3, 2, "选中");
subMenu.add(GROUP_ID + 2, BASE_ID + 4, 3, "降序")
.setCheckable(true)
.setChecked(true);
subMenu.setGroupCheckable(GROUP_ID + 1, true, true);
mMenuItem = menu.findItem(R.id.allcheck);
ActionItemBadge.update(this, mMenuItem, FontAwesome.Icon.faw_check,
ActionItemBadge.BadgeStyles.DARK_GREY, 0);
return true;
}
private void populateProjectsMenu() {
if (mProjectList == null) {
if (BuildConfig.DEBUG) Log.d("Kandroid", "Tried to populate drawer, but mDashboard was null");
return;
}
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this.getBaseContext());
List<KanboardProject> projList = mProjectList;
if (preferences.getBoolean("projects_sort_alphabetic", false))
Collections.sort(projList);
NavigationView nav = (NavigationView) findViewById(R.id.nav_view);
SubMenu projMenu = nav.getMenu().findItem(R.id.projects).getSubMenu();
projMenu.clear();
for (KanboardProject item: projList)
projMenu.add(Menu.NONE, item.getId(), Menu.NONE, item.getName())
.setIcon(R.drawable.project);
}
/**
* {@inheritDoc}
*/
@Override
public void onPrepareSubMenu(SubMenu subMenu) {
if (replayItem != null) {
return;
}
subMenu.clear();
replayItem = subMenu.add(0, 1, 1, R.string.newly_reply).setIcon(R.drawable.ic_new_replay_checked);
publishItem = subMenu.add(0, 2, 2, R.string.newly_publish).setIcon(R.drawable.ic_new_publish_unchecked);
if (mListener != null) {
replayItem.setOnMenuItemClickListener(mListener);
publishItem.setOnMenuItemClickListener(mListener);
}
}
private void formatMenuItems() {
Menu menu = navigationView.getMenu();
for (int i = 0; i < menu.size(); i++) {
MenuItem mi = menu.getItem(i);
SubMenu subMenu = mi.getSubMenu();
if (subMenu != null && subMenu.size() > 0) {
for (int j = 0; j < subMenu.size(); j++) {
MenuItem subMenuItem = subMenu.getItem(j);
applyFontToMenuItem(subMenuItem);
}
}
applyFontToMenuItem(mi);
}
}
private static void addAllCommentSorts(final AppCompatActivity activity, final Menu menu, final boolean icon) {
final SubMenu sortComments = menu.addSubMenu(R.string.options_sort_comments);
if(icon) {
sortComments.getItem().setIcon(R.drawable.ic_sort_dark);
sortComments.getItem().setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
}
addSort(activity, sortComments, R.string.sort_comments_best, PostCommentListingURL.Sort.BEST);
addSort(activity, sortComments, R.string.sort_comments_hot, PostCommentListingURL.Sort.HOT);
addSort(activity, sortComments, R.string.sort_comments_new, PostCommentListingURL.Sort.NEW);
addSort(activity, sortComments, R.string.sort_comments_old, PostCommentListingURL.Sort.OLD);
addSort(activity, sortComments, R.string.sort_comments_controversial, PostCommentListingURL.Sort.CONTROVERSIAL);
addSort(activity, sortComments, R.string.sort_comments_top, PostCommentListingURL.Sort.TOP);
addSort(activity, sortComments, R.string.sort_comments_qa, PostCommentListingURL.Sort.QA);
}
private void setNavigationItems() {
menu = mDrawer.getMenu();
menu.clear();
int itemId = 0;
int i = 0;
SubMenu subMenu;
List<BrickInfo> list;
subMenu = menu.addSubMenu(1, 0, 0, R.string.all);
list = ListCore.getMainMenuBricks();
for (i = 0; i < list.size(); i++, itemId++)
subMenu.add(1, itemId, i, list.get(i).getTitle()).setIcon(list.get(i).getIcon());
subMenu = menu.addSubMenu(2, 0, 0, R.string.other);
list = ListCore.getOthersBricks();
for (i = 0; i < list.size(); i++, itemId++)
subMenu.add(2, itemId, i, list.get(i).getTitle()).setIcon(list.get(i).getIcon());
}
private void updateSelectedProjectUI(int selectedIndex) {
SubMenu subMenu = getProjectsNavItem().getSubMenu();
for (int i = 0; i < projects.size(); i++) {
MenuItem menuItem = subMenu.getItem(i);
menuItem.setChecked(i == selectedIndex);
}
}
private void setUpSortOrderMenu(@NonNull AbsLibraryPagerRecyclerViewCustomGridSizeFragment fragment, @NonNull SubMenu sortOrderMenu) {
String currentSortOrder = fragment.getSortOrder();
sortOrderMenu.clear();
if (fragment instanceof AlbumsFragment) {
sortOrderMenu.add(0, R.id.action_album_sort_order_asc, 0, R.string.sort_order_a_z)
.setChecked(currentSortOrder.equals(SortOrder.AlbumSortOrder.ALBUM_A_Z));
sortOrderMenu.add(0, R.id.action_album_sort_order_desc, 1, R.string.sort_order_z_a)
.setChecked(currentSortOrder.equals(SortOrder.AlbumSortOrder.ALBUM_Z_A));
sortOrderMenu.add(0, R.id.action_album_sort_order_artist, 2, R.string.sort_order_artist)
.setChecked(currentSortOrder.equals(SortOrder.AlbumSortOrder.ALBUM_ARTIST));
sortOrderMenu.add(0, R.id.action_album_sort_order_year, 3, R.string.sort_order_year)
.setChecked(currentSortOrder.equals(SortOrder.AlbumSortOrder.ALBUM_YEAR));
} else if (fragment instanceof ArtistsFragment) {
sortOrderMenu.add(0, R.id.action_artist_sort_order_asc, 0, R.string.sort_order_a_z)
.setChecked(currentSortOrder.equals(SortOrder.ArtistSortOrder.ARTIST_A_Z));
sortOrderMenu.add(0, R.id.action_artist_sort_order_desc, 1, R.string.sort_order_z_a)
.setChecked(currentSortOrder.equals(SortOrder.ArtistSortOrder.ARTIST_Z_A));
} else if (fragment instanceof SongsFragment) {
sortOrderMenu.add(0, R.id.action_song_sort_order_asc, 0, R.string.sort_order_a_z)
.setChecked(currentSortOrder.equals(SortOrder.SongSortOrder.SONG_A_Z));
sortOrderMenu.add(0, R.id.action_song_sort_order_desc, 1, R.string.sort_order_z_a)
.setChecked(currentSortOrder.equals(SortOrder.SongSortOrder.SONG_Z_A));
sortOrderMenu.add(0, R.id.action_song_sort_order_artist, 2, R.string.sort_order_artist)
.setChecked(currentSortOrder.equals(SortOrder.SongSortOrder.SONG_ARTIST));
sortOrderMenu.add(0, R.id.action_song_sort_order_album, 3, R.string.sort_order_album)
.setChecked(currentSortOrder.equals(SortOrder.SongSortOrder.SONG_ALBUM));
sortOrderMenu.add(0, R.id.action_song_sort_order_year, 4, R.string.sort_order_year)
.setChecked(currentSortOrder.equals(SortOrder.SongSortOrder.SONG_YEAR));
}
sortOrderMenu.setGroupCheckable(0, true, true);
}
public static void setMenuSource(final IActionController<?> c, final Menu menu, final Object source) {
for (int i = 0, n = menu.size(); i < n; i++) {
final MenuItem item = menu.getItem(i);
final SubMenu subMenu = item.getSubMenu();
if (subMenu != null) {
setMenuSource(c, subMenu, source);
} else {
setMenuItemSource(c, item, source);
}
}
}
private void appendFragments(boolean setShortcuts) {
mActualFragments.clear();
Menu menu = mNavigationView.getMenu();
menu.clear();
SubMenu lastSubMenu = null;
for (NavigationFragment navigationFragment : mFragments) {
Class<? extends Fragment> fragmentClass = navigationFragment.mFragmentClass;
int id = navigationFragment.mId;
if (fragmentClass == null) {
lastSubMenu = menu.addSubMenu(id);
mActualFragments.put(id, null);
} else if (Prefs.getBoolean(fragmentClass.getSimpleName() + "_enabled",
true, this)) {
MenuItem menuItem = lastSubMenu == null ? menu.add(0, id, 0, id) :
lastSubMenu.add(0, id, 0, id);
menuItem.setIcon(ViewUtils.getColoredIcon(Prefs.getBoolean("section_icons", true, this)
&& navigationFragment.mDrawable != 0 ? navigationFragment.mDrawable : R.drawable.ic_blank, this));
menuItem.setCheckable(true);
if (mSelection != 0) {
mNavigationView.setCheckedItem(mSelection);
}
mActualFragments.put(id, fragmentClass);
}
}
if (setShortcuts) {
setShortcuts();
}
}
private void inflateSubMenuAbortSecureSession(Menu menu) {
if (Build.VERSION.SDK_INT >= 22 && activeSubscriptions.size() > 1) {
menu.findItem(R.id.menu_abort_session).setVisible(false);
SubMenu abortSecureSessionMenu = menu.findItem(R.id.menu_abort_session_dual_sim).getSubMenu();
for (SubscriptionInfoCompat subscriptionInfo : activeSubscriptions) {
final int subscriptionId = subscriptionInfo.getSubscriptionId();
Log.w(TAG, "inflateSubMenuAbortSecureSession( " + subscriptionId + " )");
if (SessionUtil.hasSession(this, masterSecret, recipients.getPrimaryRecipient().getNumber(), subscriptionId)) {
Log.w(TAG, "Subscription ID " + subscriptionId + " has a secure session.");
abortSecureSessionMenu.add(Menu.NONE, Menu.NONE, Menu.NONE, subscriptionInfo.getDisplayName())
.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
handleAbortSecureSession(subscriptionId);
return true;
}
});
}
}
} else {
menu.findItem(R.id.menu_abort_session_dual_sim).setVisible(false);
menu.findItem(R.id.menu_start_secure_session_dual_sim).setVisible(false);
}
}
/**
* 创建英雄属性筛选子菜单
*
* @param cMenu
* 当前菜单项
* @param cSubMenuKeysId
* 当前菜单关联的子菜单项资源ID
* @param menuItemClickListener
* 创建后的子菜单单击监听
*/
private void createHeroOptionsSubMenu(MenuItem cMenu, int cMenuQueryKeyId,
int cSubMenuKeysId,
String[] cSubMenuValues,
MenuItem.OnMenuItemClickListener menuItemClickListener) {
if (cMenu == null || menuItemClickListener == null) {
return;
}
final SubMenu cSubMenu = cMenu.getSubMenu();
final String[] cSubMenuKeys = this.getResources().getStringArray(
cSubMenuKeysId);
MenuItem cMenuItem = null;
int cIndex = 0;
for (String cMenuKey : cSubMenuKeys) {
cMenuItem = cSubMenu.add(0, cIndex++, 0, cMenuKey);
cMenuItem.setOnMenuItemClickListener(menuItemClickListener);
}
// 设置菜单默认值
final String queryKey = menu_items_query_keys[cMenuQueryKeyId];
if (!queryKey.equals(KEY_MENU_ITEMS_QUERY_ALL) && cSubMenuKeys != null) {
final int queryValueIndex = Utils.indexOf(cSubMenuValues, queryKey);
if (queryValueIndex >= 0 && cSubMenuKeys.length > queryValueIndex) {
cMenu.setTitle(cSubMenuKeys[queryValueIndex]);
}
}
}
protected void createFileMenu(final ContextMenu menu, final String path) {
final BookSettings bs = SettingsManager.getBookSettings(path);
final MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.book_menu, menu);
menu.setHeaderTitle(path);
menu.findItem(R.id.bookmenu_recentgroup).setVisible(bs != null);
menu.findItem(R.id.bookmenu_openbookshelf).setVisible(false);
menu.findItem(R.id.bookmenu_openbookfolder).setVisible(false);
final MenuItem om = menu.findItem(R.id.bookmenu_open);
final SubMenu osm = om != null ? om.getSubMenu() : null;
if (osm == null) {
return;
}
osm.clear();
final List<Bookmark> list = new ArrayList<Bookmark>();
list.add(new Bookmark(true, getString(R.string.bookmark_start), PageIndex.FIRST, 0, 0));
list.add(new Bookmark(true, getString(R.string.bookmark_end), PageIndex.LAST, 0, 1));
if (bs != null) {
if (LengthUtils.isNotEmpty(bs.bookmarks)) {
list.addAll(bs.bookmarks);
}
list.add(new Bookmark(true, getString(R.string.bookmark_current), bs.currentPage, bs.offsetX, bs.offsetY));
}
Collections.sort(list);
for (final Bookmark b : list) {
addBookmarkMenuItem(osm, b);
}
}
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
if (current != null) {
menu.clear();
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.midlet_displayable, menu);
if (current instanceof Canvas) {
SubMenu group = menu.getItem(0).getSubMenu();
if (actionBarEnabled) {
inflater.inflate(R.menu.midlet_canvas_no_keys2, menu);
} else {
inflater.inflate(R.menu.midlet_canvas_no_keys, group);
}
VirtualKeyboard vk = ContextHolder.getVk();
if (vk instanceof FixedKeyboard) {
inflater.inflate(R.menu.midlet_canvas_fixed, group);
} else if (vk != null) {
inflater.inflate(R.menu.midlet_canvas, group);
}
}
for (Command cmd : current.getCommands()) {
menu.add(Menu.NONE, cmd.hashCode(), Menu.NONE, cmd.getAndroidLabel());
}
}
return super.onPrepareOptionsMenu(menu);
}
public void onAlbumPopUpMenuClickListener(View v, final int position) {
mSelectedPosition = position;
final PopupMenu menu = new PopupMenu(SearchActivity.this, v);
SubMenu sub = (menu.getMenu()).addSubMenu(0, ADD_TO_PLAYLIST, 1, R.string.add_to_playlist);
MusicUtils.makePlaylistMenu(mContext, sub, 0);
mSelectedId = ((Album) mSearchResults.get(position))._Id;
menu.setOnMenuItemClickListener(item -> {
switch (item.getItemId()) {
case R.id.popup_album_play_next:
new AsyncAddTo(((Album) mSearchResults.get(position))._albumName, false, CursorHelper.getTracksForSelection("ALBUMS", "" + ((Album) mSearchResults.get(position))._Id)).execute();
return true;
case R.id.popup_album_add_to_queue:
new AsyncAddTo(((Album) mSearchResults.get(position))._albumName, true, CursorHelper.getTracksForSelection("ALBUMS", "" + ((Album) mSearchResults.get(position))._Id)).execute();
return true;
case NEW_PLAYLIST:
PlaylistDialog playlistDialog = new PlaylistDialog();
Bundle bundle = new Bundle();
bundle.putLongArray("PLAYLIST_IDS", MusicUtils.getPlayListIds(CursorHelper.getTracksForSelection("ALBUMS", "" + ((Album) mSearchResults.get(position))._Id)));
playlistDialog.setArguments(bundle);
playlistDialog.show(getSupportFragmentManager(), "FRAGMENT_TAG");
return true;
case PLAYLIST_SELECTED:
MusicUtils.insertIntoPlayList(mContext, item, CursorHelper.getTracksForSelection("ALBUMS", "" + ((Album) mSearchResults.get(position))._Id));
return true;
case R.id.popup_album_delete:
try {
MusicUtils.deleteFile(SearchActivity.this, CursorHelper.getTracksForSelection("ALBUMS", "" + ((Album) mSearchResults.get(position))._Id), this);
} catch (Exception e) {
e.printStackTrace();
}
return true;
default:
break;
}
return false;
});
menu.inflate(R.menu.popup_album);
menu.show();
}
public void overrideTags(OnDrawerSelectionChangedListener listener, Collection<Tag> tags){
final Menu overview = view.getMenu();
final SubMenu tagSubmenu = overview.findItem(R.id.navigation_tags).getSubMenu();
tagSubmenu.clear();
for(Tag tag : tags){
addTag(tagSubmenu, listener, tag);
}
}
private void appendFragments(boolean setShortcuts) {
mActualFragments.clear();
Menu menu = mNavigationView.getMenu();
menu.clear();
SubMenu lastSubMenu = null;
for (NavigationFragment navigationFragment : mFragments) {
Class<? extends Fragment> fragmentClass = navigationFragment.mFragmentClass;
int id = navigationFragment.mId;
Drawable drawable = ContextCompat.getDrawable(this,
Utils.DONATED
&& AppSettings.isSectionIcons(this)
&& navigationFragment.mDrawable != 0 ? navigationFragment.mDrawable :
R.drawable.ic_blank);
if (fragmentClass == null) {
lastSubMenu = menu.addSubMenu(id);
mActualFragments.put(id, null);
} else if (AppSettings.isFragmentEnabled(fragmentClass, this)) {
MenuItem menuItem = lastSubMenu == null ? menu.add(0, id, 0, id) :
lastSubMenu.add(0, id, 0, id);
menuItem.setIcon(drawable);
menuItem.setCheckable(true);
if (mSelection != 0) {
mNavigationView.setCheckedItem(mSelection);
}
mActualFragments.put(id, fragmentClass);
}
}
if (setShortcuts) {
setShortcuts();
}
}
public static void overflowsubmenu(Context context, SubMenu subMenu) {
String[] cols = new String[]{
MediaStore.Audio.Playlists._ID,
MediaStore.Audio.Playlists.NAME
};
ContentResolver resolver = context.getContentResolver();
if (resolver == null) {
System.out.println("resolver = null");
} else {
String whereclause = MediaStore.Audio.Playlists.NAME + " != ''";
Cursor cur = resolver.query(MediaStore.Audio.Playlists.EXTERNAL_CONTENT_URI,
cols, whereclause, null,
MediaStore.Audio.Playlists.NAME);
subMenu.clear();
subMenu.add(0, Defs.NEW_PLAYLIST, 0, R.string.new_playlist);
if (cur != null && cur.getCount() > 0) {
//sub.addSeparator(1, 0);
cur.moveToFirst();
while (!cur.isAfterLast()) {
Intent intent = new Intent();
intent.putExtra("playlist", cur.getLong(0));
subMenu.add(0, Defs.PLAYLIST_SELECTED, 0, cur.getString(1)).setIntent(intent);
cur.moveToNext();
}
}
if (cur != null) {
cur.close();
}
}
}
public void overrideNotebooks(OnDrawerSelectionChangedListener listener, Collection<Notebook> notebooks){
final Menu overview = view.getMenu();
final SubMenu notebookSubmenu = overview.findItem(R.id.navigation_notebooks).getSubMenu();
notebookSubmenu.clear();
for(Notebook book : notebooks){
addNotebook(view.getContext(), notebookSubmenu, listener, book);
}
}
/**
* Fills out the given submenu with items for "new playlist" and
* any existing playlists. When the user selects an item, the
* application will receive PLAYLIST_SELECTED with the Uri of
* the selected playlist, NEW_PLAYLIST if a new playlist
* should be created, and QUEUE if the "current playlist" was
* selected.
*
* @param context The context to use for creating the menu items
* @param sub The submenu to add the items to.
*/
public static void makePlaylistMenu(Context context, SubMenu sub) {
String[] cols = new String[]{
MediaStore.Audio.Playlists._ID,
MediaStore.Audio.Playlists.NAME
};
ContentResolver resolver = context.getContentResolver();
if (resolver == null) {
System.out.println("resolver = null");
} else {
String whereclause = MediaStore.Audio.Playlists.NAME + " != ''";
Cursor cur = resolver.query(MediaStore.Audio.Playlists.EXTERNAL_CONTENT_URI,
cols, whereclause, null,
MediaStore.Audio.Playlists.NAME);
sub.clear();
sub.add(1, Defs.QUEUE, 0, R.string.queue);
sub.add(1, Defs.NEW_PLAYLIST, 0, R.string.new_playlist);
if (cur != null && cur.getCount() > 0) {
//sub.addSeparator(1, 0);
cur.moveToFirst();
while (!cur.isAfterLast()) {
Intent intent = new Intent();
intent.putExtra("playlist", cur.getLong(0));
sub.add(1, Defs.PLAYLIST_SELECTED, 0, cur.getString(1)).setIntent(intent);
cur.moveToNext();
}
}
if (cur != null) {
cur.close();
}
}
}
private void setUpSortOrderMenu(@NonNull SubMenu sortOrder) {
sortOrder.removeItem(R.id.action_sort_order_album_desc);
sortOrder.removeItem(R.id.action_sort_order_artist_desc);
switch (getSavedSortOrder()) {
case SongSortOrder.SONG_ALBUM:
sortOrder.findItem(R.id.action_sort_order_album).setChecked(true);
break;
case SongSortOrder.SONG_A_Z:
sortOrder.findItem(R.id.action_sort_order_title).setChecked(true);
break;
case SongSortOrder.SONG_ARTIST:
sortOrder.findItem(R.id.action_sort_order_artist).setChecked(true);
break;
case SongSortOrder.SONG_DATE:
sortOrder.findItem(R.id.action_sort_order_date).setChecked(true);
break;
case SongSortOrder.SONG_DURATION:
sortOrder.findItem(R.id.action_sort_order_duration).setChecked(true);
break;
case SongSortOrder.SONG_YEAR:
sortOrder.findItem(R.id.action_sort_order_year).setChecked(true);
break;
case SongSortOrder.SONG_Z_A:
sortOrder.findItem(R.id.action_sort_order_title_desc).setChecked(true);
break;
}
}
private void setUpSortOrderMenu(@NonNull AbsLibraryPagerRecyclerViewCustomGridSizeFragment fragment, @NonNull SubMenu sortOrderMenu) {
String currentSortOrder = fragment.getSortOrder();
sortOrderMenu.clear();
if (fragment instanceof AlbumsFragment) {
sortOrderMenu.add(0, R.id.action_album_sort_order_asc, 0, R.string.sort_order_a_z)
.setChecked(currentSortOrder.equals(SortOrder.AlbumSortOrder.ALBUM_A_Z));
sortOrderMenu.add(0, R.id.action_album_sort_order_desc, 1, R.string.sort_order_z_a)
.setChecked(currentSortOrder.equals(SortOrder.AlbumSortOrder.ALBUM_Z_A));
sortOrderMenu.add(0, R.id.action_album_sort_order_artist, 2, R.string.sort_order_artist)
.setChecked(currentSortOrder.equals(SortOrder.AlbumSortOrder.ALBUM_ARTIST));
sortOrderMenu.add(0, R.id.action_album_sort_order_year, 3, R.string.sort_order_year)
.setChecked(currentSortOrder.equals(SortOrder.AlbumSortOrder.ALBUM_YEAR));
sortOrderMenu.add(0, R.id.action_album_sort_order_date_added, 4, R.string.sort_order_date_added)
.setChecked(currentSortOrder.equals(SortOrder.AlbumSortOrder.ALBUM_DATE_ADDED));
} else if (fragment instanceof ArtistsFragment) {
sortOrderMenu.add(0, R.id.action_artist_sort_order_asc, 0, R.string.sort_order_a_z)
.setChecked(currentSortOrder.equals(SortOrder.ArtistSortOrder.ARTIST_A_Z));
sortOrderMenu.add(0, R.id.action_artist_sort_order_desc, 1, R.string.sort_order_z_a)
.setChecked(currentSortOrder.equals(SortOrder.ArtistSortOrder.ARTIST_Z_A));
} else if (fragment instanceof SongsFragment) {
sortOrderMenu.add(0, R.id.action_song_sort_order_asc, 0, R.string.sort_order_a_z)
.setChecked(currentSortOrder.equals(SortOrder.SongSortOrder.SONG_A_Z));
sortOrderMenu.add(0, R.id.action_song_sort_order_desc, 1, R.string.sort_order_z_a)
.setChecked(currentSortOrder.equals(SortOrder.SongSortOrder.SONG_Z_A));
sortOrderMenu.add(0, R.id.action_song_sort_order_artist, 2, R.string.sort_order_artist)
.setChecked(currentSortOrder.equals(SortOrder.SongSortOrder.SONG_ARTIST));
sortOrderMenu.add(0, R.id.action_song_sort_order_album, 3, R.string.sort_order_album)
.setChecked(currentSortOrder.equals(SortOrder.SongSortOrder.SONG_ALBUM));
sortOrderMenu.add(0, R.id.action_song_sort_order_year, 4, R.string.sort_order_year)
.setChecked(currentSortOrder.equals(SortOrder.SongSortOrder.SONG_YEAR));
sortOrderMenu.add(0, R.id.action_song_sort_order_date_added, 5, R.string.sort_order_date_added)
.setChecked(currentSortOrder.equals(SortOrder.SongSortOrder.SONG_DATE_ADDED));
}
sortOrderMenu.setGroupCheckable(0, true, true);
}