@Override public void onSongUpdate(int songID) { PlaylistItem songInfo = MusicUtils.getInfoPack(context, songID, false); songTitle = songInfo.song; songArtist = songInfo.artist; Bitmap bitmap = MusicUtils.getArtwork(context, songInfo.albumId, 2); if (bitmap == null) { coverArt = null; } else { coverArt = Bitmap.createScaledBitmap(bitmap, notificationIconPixels, notificationIconPixels, false); } updateNotificationContent(); }
private void bindView(Cursor cursor) { long id = cursor.getLong(cursor.getColumnIndexOrThrow(MediaStore.Audio.AudioColumns._ID)); File file = new File( cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Audio.AudioColumns.DATA))); String mimeType = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Audio.AudioColumns.MIME_TYPE)); String title = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Audio.AudioColumns.TITLE)); String album = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Audio.AudioColumns.ALBUM)); String artist = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Audio.AudioColumns.ARTIST)); String composer = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Audio.AudioColumns.COMPOSER)); int duration = cursor.getInt(cursor.getColumnIndexOrThrow(MediaStore.Audio.AudioColumns.DURATION)); String year = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Audio.AudioColumns.YEAR)); Date dateAdded = new Date( cursor.getLong(cursor.getColumnIndexOrThrow(MediaStore.Audio.AudioColumns.DATE_ADDED)) * 1000); ((TextView) getView().findViewById(R.id.title)).setText(title); ((TextView) getView().findViewById(R.id.artist)).setText(artist); ((TextView) getView().findViewById(R.id.composer)).setText(composer); ((TextView) getView().findViewById(R.id.album)).setText(album); IdAndName genre = MusicUtils.fetchGenre(getActivity(), id); if (genre != null) { ((TextView) getView().findViewById(R.id.genre)).setText(genre.name); } ((TextView) getView().findViewById(R.id.year)).setText(year); ((TextView) getView().findViewById(R.id.duration)) .setText(MusicUtils.formatDuration(getActivity(), duration)); ((TextView) getView().findViewById(R.id.folder)).setText(file.getParent()); ((TextView) getView().findViewById(R.id.filename)).setText(file.getName()); ((TextView) getView().findViewById(R.id.filesize)).setText(formatFileSize(file.length())); ((TextView) getView().findViewById(R.id.mimetype)).setText(mimeType); ((TextView) getView().findViewById(R.id.date_added)).setText(formatDate(dateAdded)); ((TextView) getView().findViewById(R.id.id)).setText(String.valueOf(id)); }
public void onClick(View v) { // delete the selected item(s) MusicUtils.deleteTracks(DeleteItems.this, mItemList); finish(); }
@Override public boolean onMenuItemClick(MenuItem item) { if (item.getGroupId() == getGroupId()) { switch (item.getItemId()) { case FragmentMenuItems.REMOVE_FROM_RECENT: RecentStore.getInstance(mActivity).removeItem(getId()); MusicUtils.refresh(); return true; case FragmentMenuItems.PLAY_SELECTION: MusicUtils.playAll(mActivity, getIdList(), 0, getSourceId(), getSourceType(), false); return true; case FragmentMenuItems.ADD_TO_QUEUE: MusicUtils.addToQueue(mActivity, getIdList(), getSourceId(), getSourceType()); return true; case FragmentMenuItems.ADD_TO_PLAYLIST: ContextMenuBuilder builder = new ContextMenuBuilder(mActivity); MusicUtils.makePlaylistMenu(mActivity, getGroupId(), builder); builder.setHeaderTitle(R.string.add_to_playlist); builder.setCallback( new MenuBuilder.Callback() { @Override public boolean onMenuItemSelected(MenuBuilder menu, MenuItem item) { return onMenuItemClick(item); } @Override public void onMenuModeChange(MenuBuilder menu) { // do nothing } }); builder.show(null, null); return true; case FragmentMenuItems.NEW_PLAYLIST: CreateNewPlaylist.getInstance(getIdList()).show(mFragmentManager, "CreatePlaylist"); return true; case FragmentMenuItems.RENAME_PLAYLIST: RenamePlaylist.getInstance(getId()).show(mFragmentManager, "RenameDialog"); return true; case FragmentMenuItems.PLAYLIST_SELECTED: final long mPlaylistId = item.getIntent().getLongExtra("playlist", 0); MusicUtils.addToPlaylist(mActivity, getIdList(), mPlaylistId); return true; case FragmentMenuItems.MORE_BY_ARTIST: NavUtils.openArtistProfile(mActivity, getArtistName()); return true; case FragmentMenuItems.DELETE: onDeleteClicked(); return true; case FragmentMenuItems.USE_AS_RINGTONE: MusicUtils.setRingtone(mActivity, getId()); return true; case FragmentMenuItems.REMOVE_FROM_PLAYLIST: removeFromPlaylist(); return true; case FragmentMenuItems.REMOVE_FROM_QUEUE: removeFromQueue(); return true; case FragmentMenuItems.PLAY_NEXT: playNext(); return true; case FragmentMenuItems.PLAY_ALBUM: playAlbum(); return true; default: break; } } return false; }
/** Called when the user clicks "play next". Has a default implementation */ protected void playNext() { MusicUtils.playNext(getIdList(), getSourceId(), getSourceType()); }
@Override public void bindView(View view, Context context, Cursor cursor) { ViewHolder vh = (ViewHolder) view.getTag(); cursor.copyStringToBuffer(mTitleIdx, vh.buffer1); vh.line1.setText(vh.buffer1.data, 0, vh.buffer1.sizeCopied); int secs = cursor.getInt(mDurationIdx) / 1000; if (secs == 0) { vh.duration.setText(""); } else { vh.duration.setText(MusicUtils.makeTimeString(context, secs)); } final StringBuilder builder = mBuilder; builder.delete(0, builder.length()); String name = cursor.getString(mAlbumIdx); if (name == null || name.equals("<unknown>")) { builder.append(mUnknownAlbum); } else { builder.append(name); } builder.append('\n'); name = cursor.getString(mArtistIdx); if (name == null || name.equals("<unknown>")) { builder.append(mUnknownArtist); } else { builder.append(name); } int len = builder.length(); if (vh.buffer2.length < len) { vh.buffer2 = new char[len]; } builder.getChars(0, len, vh.buffer2, 0); vh.line2.setText(vh.buffer2, 0, len); // Update the checkbox of the item, based on which the user last // selected. Note that doing it this way means we must have the // list view update all of its items when the selected item // changes. final long id = cursor.getLong(mIdIdx); vh.radio.setChecked(id == mSelectedId); if (DBG) Log.v( TAG, "Binding id=" + id + " sel=" + mSelectedId + " playing=" + mPlayingId + " cursor=" + cursor); // Likewise, display the "now playing" icon if this item is // currently being previewed for the user. ImageView iv = vh.play_indicator; if (id == mPlayingId) { iv.setImageResource(R.drawable.indicator_ic_mp_playing_list); iv.setVisibility(View.VISIBLE); } else { iv.setVisibility(View.GONE); } }