public Video buildFromMediaDesc(MediaDescription desc) { return new Video( Long.parseLong(desc.getMediaId()), "", "", "", String.valueOf(desc.getTitle()), String.valueOf(desc.getDescription()), "", // Media URI - not provided by MediaDescription. "", // Background Image URI - not provided by MediaDescription. String.valueOf(desc.getIconUri()), "", String.valueOf(desc.getSubtitle()), "", 0, "", "", null, 0, 0, "", false, "" ); }
public static he a(Object paramObject) { if ((paramObject == null) || (Build.VERSION.SDK_INT < 21)) { return null; } hg localhg = new hg(); localhg.a = ((MediaDescription)paramObject).getMediaId(); localhg.b = ((MediaDescription)paramObject).getTitle(); localhg.c = ((MediaDescription)paramObject).getSubtitle(); localhg.d = ((MediaDescription)paramObject).getDescription(); localhg.e = ((MediaDescription)paramObject).getIconBitmap(); localhg.f = ((MediaDescription)paramObject).getIconUri(); localhg.g = ((MediaDescription)paramObject).getExtras(); if (Build.VERSION.SDK_INT >= 23) { localhg.h = ((MediaDescription)paramObject).getMediaUri(); } he localhe = localhg.a(); localhe.i = paramObject; return localhe; }
private void getAlbumLists(Result<List<MediaBrowser.MediaItem>> result) { List<Integer> albums = new ArrayList<>(); albums.add(R.string.main_albums_newest); albums.add(R.string.main_albums_random); if(!Util.isTagBrowsing(downloadService)) { albums.add(R.string.main_albums_highest); } albums.add(R.string.main_albums_starred); albums.add(R.string.main_albums_recent); albums.add(R.string.main_albums_frequent); List<MediaBrowser.MediaItem> mediaItems = new ArrayList<>(); for(Integer id: albums) { MediaDescription description = new MediaDescription.Builder() .setTitle(downloadService.getResources().getString(id)) .setMediaId(ALBUM_TYPE_PREFIX + id) .build(); mediaItems.add(new MediaBrowser.MediaItem(description, MediaBrowser.MediaItem.FLAG_BROWSABLE)); } result.sendResult(mediaItems); }
private void getLibrary(final Result<List<MediaBrowser.MediaItem>> result) { new SilentServiceTask<List<MusicFolder>>(downloadService) { @Override protected List<MusicFolder> doInBackground(MusicService musicService) throws Throwable { return musicService.getMusicFolders(false, downloadService, null); } @Override protected void done(List<MusicFolder> folders) { List<MediaBrowser.MediaItem> mediaItems = new ArrayList<>(); for(MusicFolder folder: folders) { MediaDescription description = new MediaDescription.Builder() .setTitle(folder.getName()) .setMediaId(MUSIC_FOLDER_PREFIX + folder.getId()) .build(); mediaItems.add(new MediaBrowser.MediaItem(description, MediaBrowser.MediaItem.FLAG_BROWSABLE)); } result.sendResult(mediaItems); } }.execute(); result.detach(); }
private void getPlaylists(final Result<List<MediaBrowser.MediaItem>> result) { new SilentServiceTask<List<Playlist>>(downloadService) { @Override protected List<Playlist> doInBackground(MusicService musicService) throws Throwable { return musicService.getPlaylists(false, downloadService, null); } @Override protected void done(List<Playlist> playlists) { List<MediaBrowser.MediaItem> mediaItems = new ArrayList<>(); for(Playlist playlist: playlists) { MediaDescription description = new MediaDescription.Builder() .setTitle(playlist.getName()) .setMediaId(PLAYLIST_PREFIX + playlist.getId()) .build(); mediaItems.add(new MediaBrowser.MediaItem(description, MediaBrowser.MediaItem.FLAG_BROWSABLE)); } result.sendResult(mediaItems); } }.execute(); result.detach(); }
private void getPodcasts(final Result<List<MediaBrowser.MediaItem>> result) { new SilentServiceTask<List<PodcastChannel>>(downloadService) { @Override protected List<PodcastChannel> doInBackground(MusicService musicService) throws Throwable { return musicService.getPodcastChannels(false, downloadService, null); } @Override protected void done(List<PodcastChannel> podcasts) { List<MediaBrowser.MediaItem> mediaItems = new ArrayList<>(); for(PodcastChannel podcast: podcasts) { MediaDescription description = new MediaDescription.Builder() .setTitle(podcast.getName()) .setMediaId(PODCAST_PREFIX + podcast.getId()) .build(); mediaItems.add(new MediaBrowser.MediaItem(description, MediaBrowser.MediaItem.FLAG_BROWSABLE)); } result.sendResult(mediaItems); } }.execute(); result.detach(); }
@Override public void updatePlaylist(List<DownloadFile> playlist) { List<MediaSession.QueueItem> queue = new ArrayList<>(); for(DownloadFile file: playlist) { Entry entry = file.getSong(); MediaDescription description = new MediaDescription.Builder() .setMediaId(entry.getId()) .setTitle(entry.getTitle()) .setSubtitle(entry.getAlbumDisplay()) .build(); MediaSession.QueueItem item = new MediaSession.QueueItem(description, entry.getId().hashCode()); queue.add(item); } mediaSession.setQueue(queue); currentQueue = playlist; }
private MediaBrowser.MediaItem generatePlayableMediaItem( Song song ) { if( song == null ) return null; MediaDescription.Builder mediaDescriptionBuilder = new MediaDescription.Builder(); mediaDescriptionBuilder.setMediaId( song.getuId() ); if( !TextUtils.isEmpty( song.getTitle() ) ) mediaDescriptionBuilder.setTitle( song.getTitle() ); if( !TextUtils.isEmpty( song.getArtist() ) ) mediaDescriptionBuilder.setSubtitle( song.getArtist() ); if( !TextUtils.isEmpty( song.getThumbnailUrl() ) ) mediaDescriptionBuilder.setIconUri( Uri.parse( song.getThumbnailUrl() ) ); return new MediaBrowser.MediaItem( mediaDescriptionBuilder.build(), MediaBrowser.MediaItem.FLAG_PLAYABLE ); }
@DebugLog @TargetApi(Build.VERSION_CODES.LOLLIPOP) public static List<MediaSession.QueueItem> buildQueueList(Context context, long[] songs) { List<MediaSession.QueueItem> list = new ArrayList<>(15); if (songs.length == 0) return list; final OrderPreservingCursor c = new OrderPreservingCursor(context, songs, MusicProvider.RECENTS_URI, Projections.RECENT_SONGS, "", null); c.moveToFirst(); int ii=0; do { list.add(new MediaSession.QueueItem( new MediaDescription.Builder() .setTitle(c.getString(c.getColumnIndex(MusicStore.Cols.NAME))) .setSubtitle(c.getString(c.getColumnIndex(MusicStore.Cols.ARTIST_NAME))) .setMediaId(c.getString(c.getColumnIndex(MusicStore.Cols.IDENTITY))) .build(), songs[ii] )); } while (c.moveToNext() && ++ii<15); c.close(); return list; }
private void fillMediaItems(List<MediaBrowser.MediaItem> mediaItems, String mediaId, String title, Uri icon, String subTitle, int playableOrBrowsable) { mediaItems.add(new MediaBrowser.MediaItem( new MediaDescription.Builder() .setMediaId(mediaId) .setTitle(title) .setIconUri(icon) .setSubtitle(subTitle) .build(), playableOrBrowsable )); }
public Video buildFromMediaDesc(MediaDescription desc) { return new Video( Long.parseLong(desc.getMediaId()), "", // Category - not provided by MediaDescription. String.valueOf(desc.getTitle()), String.valueOf(desc.getDescription()), "", // Media URI - not provided by MediaDescription. "", // Background Image URI - not provided by MediaDescription. String.valueOf(desc.getIconUri()), String.valueOf(desc.getSubtitle()) ); }
private void updateFromParams(Intent intent) { if (intent != null) { MediaDescription description = intent.getParcelableExtra( MusicPlayerActivity.EXTRA_CURRENT_MEDIA_DESCRIPTION); if (description != null) { updateMediaDescription(description); } } }
private void updateMediaDescription(MediaDescription description) { if (description == null) { return; } LogHelper.d(TAG, "updateMediaDescription called "); mLine1.setText(description.getTitle()); mLine2.setText(description.getSubtitle()); fetchImageAsync(description); }
private PendingIntent createContentIntent(MediaDescription description) { Intent openUI = new Intent(mService, MusicPlayerActivity.class); openUI.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP); openUI.putExtra(MusicPlayerActivity.EXTRA_START_FULLSCREEN, true); if (description != null) { openUI.putExtra(MusicPlayerActivity.EXTRA_CURRENT_MEDIA_DESCRIPTION, description); } return PendingIntent.getActivity(mService, REQUEST_CODE, openUI, PendingIntent.FLAG_CANCEL_CURRENT); }
private void getMusicDirectory(final Result<List<MediaBrowser.MediaItem>> result, final String musicDirectoryId) { new SilentServiceTask<MusicDirectory>(downloadService) { @Override protected MusicDirectory doInBackground(MusicService musicService) throws Throwable { return musicService.getMusicDirectory(musicDirectoryId, "", false, downloadService, null); } @Override protected void done(MusicDirectory directory) { List<MediaBrowser.MediaItem> mediaItems = new ArrayList<>(); addPlayOptions(mediaItems, musicDirectoryId, Constants.INTENT_EXTRA_NAME_ID); for(Entry entry : directory.getChildren()) { MediaDescription description; if (entry.isDirectory()) { // browse deeper description = new MediaDescription.Builder() .setTitle(entry.getTitle()) .setMediaId(MUSIC_DIRECTORY_CONTENTS_PREFIX + entry.getId()) .build(); } else { // playback options for a single item description = new MediaDescription.Builder() .setTitle(entry.getTitle()) .setMediaId(MUSIC_DIRECTORY_PREFIX + entry.getId()) .build(); } mediaItems.add(new MediaBrowser.MediaItem(description, MediaBrowser.MediaItem.FLAG_BROWSABLE)); } result.sendResult(mediaItems); } }.execute(); result.detach(); }
private void getPodcastEpisodes(final Result<List<MediaBrowser.MediaItem>> result, final String podcastId) { new SilentServiceTask<MusicDirectory>(downloadService) { @Override protected MusicDirectory doInBackground(MusicService musicService) throws Throwable { return musicService.getPodcastEpisodes(false, podcastId, downloadService, null); } @Override protected void done(MusicDirectory podcasts) { List<MediaBrowser.MediaItem> mediaItems = new ArrayList<>(); for(Entry entry: podcasts.getChildren(false, true)) { PodcastEpisode podcast = (PodcastEpisode) entry; Bundle podcastExtras = new Bundle(); podcastExtras.putSerializable(Constants.INTENT_EXTRA_ENTRY, podcast); podcastExtras.putString(Constants.INTENT_EXTRA_NAME_PODCAST_ID, podcast.getId()); MediaDescription description = new MediaDescription.Builder() .setTitle(podcast.getTitle()) .setSubtitle(Util.formatDate(downloadService, podcast.getDate(), false)) .setMediaId(PODCAST_PREFIX + podcast.getId()) .setExtras(podcastExtras) .build(); mediaItems.add(new MediaBrowser.MediaItem(description, MediaBrowser.MediaItem.FLAG_PLAYABLE)); } result.sendResult(mediaItems); } }.execute(); result.detach(); }
private void getBookmarks(final Result<List<MediaBrowser.MediaItem>> result) { new SilentServiceTask<MusicDirectory>(downloadService) { @Override protected MusicDirectory doInBackground(MusicService musicService) throws Throwable { return musicService.getBookmarks(false, downloadService, null); } @Override protected void done(MusicDirectory bookmarkList) { List<MediaBrowser.MediaItem> mediaItems = new ArrayList<>(); for(Entry entry: bookmarkList.getChildren(false, true)) { Bundle extras = new Bundle(); extras.putSerializable(Constants.INTENT_EXTRA_ENTRY, entry); extras.putString(Constants.INTENT_EXTRA_NAME_CHILD_ID, entry.getId()); MediaDescription description = new MediaDescription.Builder() .setTitle(entry.getTitle()) .setSubtitle(Util.formatDuration(entry.getBookmark().getPosition() / 1000)) .setMediaId(entry.getId()) .setExtras(extras) .build(); mediaItems.add(new MediaBrowser.MediaItem(description, MediaBrowser.MediaItem.FLAG_PLAYABLE)); } result.sendResult(mediaItems); } }.execute(); result.detach(); }
private void addPlayOptions(List<MediaBrowser.MediaItem> mediaItems, String id, String idConstant) { Bundle playAllExtras = new Bundle(); playAllExtras.putString(idConstant, id); MediaDescription.Builder playAll = new MediaDescription.Builder(); playAll.setTitle(downloadService.getString(R.string.menu_play)) .setMediaId("play-" + id) .setExtras(playAllExtras); mediaItems.add(new MediaBrowser.MediaItem(playAll.build(), MediaBrowser.MediaItem.FLAG_PLAYABLE)); Bundle shuffleExtras = new Bundle(); shuffleExtras.putString(idConstant, id); shuffleExtras.putBoolean(Constants.INTENT_EXTRA_NAME_SHUFFLE, true); MediaDescription.Builder shuffle = new MediaDescription.Builder(); shuffle.setTitle(downloadService.getString(R.string.menu_shuffle)) .setMediaId("shuffle-" + id) .setExtras(shuffleExtras); mediaItems.add(new MediaBrowser.MediaItem(shuffle.build(), MediaBrowser.MediaItem.FLAG_PLAYABLE)); Bundle playLastExtras = new Bundle(); playLastExtras.putString(idConstant, id); playLastExtras.putBoolean(Constants.INTENT_EXTRA_PLAY_LAST, true); MediaDescription.Builder playLast = new MediaDescription.Builder(); playLast.setTitle(downloadService.getString(R.string.menu_play_last)) .setMediaId("playLast-" + id) .setExtras(playLastExtras); mediaItems.add(new MediaBrowser.MediaItem(playLast.build(), MediaBrowser.MediaItem.FLAG_PLAYABLE)); }
private MediaBrowser.MediaItem generateBrowseableMediaItemByGenre( String genre ) { MediaDescription.Builder mediaDescriptionBuilder = new MediaDescription.Builder(); mediaDescriptionBuilder.setMediaId( genre ); mediaDescriptionBuilder.setTitle( genre ); mediaDescriptionBuilder.setIconBitmap( BitmapFactory.decodeResource( getResources(), R.drawable.folder ) ); return new MediaBrowser.MediaItem( mediaDescriptionBuilder.build(), MediaBrowser.MediaItem.FLAG_BROWSABLE ); }
private MediaItem episodeToMediaItem(Episode episode) { final Podcast podcast = episode.getPodcast(); final MediaDescription.Builder mediaDescription = new MediaDescription.Builder() .setMediaId(episode.getMediaUrl()) .setTitle(episode.getName()) .setSubtitle(podcast.getName()); if (podcast.hasLogoUrl()) mediaDescription.setIconUri(Uri.parse(podcast.getLogoUrl())); return new MediaItem(mediaDescription.build(), MediaItem.FLAG_PLAYABLE); }
private void addMediaRoots(List<MediaBrowser.MediaItem> mMediaRoot) { mMediaRoot.add(new MediaBrowser.MediaItem( new MediaDescription.Builder() .setMediaId(Integer.toString(TYPE_ARTIST)) .setTitle(getString(R.string.artists)) .setIconUri(Uri.parse("android.resource://" + "naman14.timber/drawable/ic_empty_music2")) .setSubtitle(getString(R.string.artists)) .build(), MediaBrowser.MediaItem.FLAG_BROWSABLE )); mMediaRoot.add(new MediaBrowser.MediaItem( new MediaDescription.Builder() .setMediaId(Integer.toString(TYPE_ALBUM)) .setTitle(getString(R.string.albums)) .setIconUri(Uri.parse("android.resource://" + "naman14.timber/drawable/ic_empty_music2")) .setSubtitle(getString(R.string.albums)) .build(), MediaBrowser.MediaItem.FLAG_BROWSABLE )); mMediaRoot.add(new MediaBrowser.MediaItem( new MediaDescription.Builder() .setMediaId(Integer.toString(TYPE_SONG)) .setTitle(getString(R.string.songs)) .setIconUri(Uri.parse("android.resource://" + "naman14.timber/drawable/ic_empty_music2")) .setSubtitle(getString(R.string.songs)) .build(), MediaBrowser.MediaItem.FLAG_BROWSABLE )); mMediaRoot.add(new MediaBrowser.MediaItem( new MediaDescription.Builder() .setMediaId(Integer.toString(TYPE_PLAYLIST)) .setTitle(getString(R.string.playlists)) .setIconUri(Uri.parse("android.resource://" + "naman14.timber/drawable/ic_empty_music2")) .setSubtitle(getString(R.string.playlists)) .build(), MediaBrowser.MediaItem.FLAG_BROWSABLE )); }
public static void setMediaUri(Object builderObj, Uri mediaUri) { ((android.media.MediaDescription.Builder) builderObj).setMediaUri(mediaUri); }
public static Uri getMediaUri(Object descriptionObj) { return ((MediaDescription) descriptionObj).getMediaUri(); }
public static Object newInstance() { return new android.media.MediaDescription.Builder(); }
public static void setMediaId(Object builderObj, String mediaId) { ((android.media.MediaDescription.Builder) builderObj).setMediaId(mediaId); }
public static void setTitle(Object builderObj, CharSequence title) { ((android.media.MediaDescription.Builder) builderObj).setTitle(title); }
public static void setSubtitle(Object builderObj, CharSequence subtitle) { ((android.media.MediaDescription.Builder) builderObj).setSubtitle(subtitle); }
public static void setDescription(Object builderObj, CharSequence description) { ((android.media.MediaDescription.Builder) builderObj).setDescription(description); }