Java 类android.provider.MediaStore.Audio.Artists 实例源码
项目:itmarry
文件:TracksFragment.java
@Override
public Loader<Cursor> onCreateLoader(int id, Bundle args) {
String[] projection = new String[] {
BaseColumns._ID, MediaColumns.TITLE, AudioColumns.ALBUM, AudioColumns.ARTIST
};
StringBuilder where = new StringBuilder();
String sortOrder = Audio.Media.DEFAULT_SORT_ORDER;
where.append(AudioColumns.IS_MUSIC + "=1").append(" AND " + MediaColumns.TITLE + " != ''");
Uri uri = Audio.Media.EXTERNAL_CONTENT_URI;
if (getArguments() != null) {
mPlaylistId = getArguments().getLong(BaseColumns._ID);
String mimeType = getArguments().getString(MIME_TYPE);
if (Audio.Playlists.CONTENT_TYPE.equals(mimeType)) {
where = new StringBuilder();
where.append(AudioColumns.IS_MUSIC + "=1");
where.append(" AND " + MediaColumns.TITLE + " != ''");
switch ((int)mPlaylistId) {
case (int)PLAYLIST_QUEUE:
uri = Audio.Media.EXTERNAL_CONTENT_URI;
long[] mNowPlaying = MusicUtils.getQueue();
if (mNowPlaying.length == 0)
return null;
where = new StringBuilder();
where.append(BaseColumns._ID + " IN (");
if (mNowPlaying == null || mNowPlaying.length <= 0)
return null;
for (long queue_id : mNowPlaying) {
where.append(queue_id + ",");
}
where.deleteCharAt(where.length() - 1);
where.append(")");
break;
case (int)PLAYLIST_FAVORITES:
long favorites_id = MusicUtils.getFavoritesId(getActivity());
projection = new String[] {
Playlists.Members._ID, Playlists.Members.AUDIO_ID,
MediaColumns.TITLE, AudioColumns.ALBUM, AudioColumns.ARTIST
};
uri = Playlists.Members.getContentUri(EXTERNAL, favorites_id);
sortOrder = Playlists.Members.DEFAULT_SORT_ORDER;
break;
default:
if (id < 0)
return null;
projection = new String[] {
Playlists.Members._ID, Playlists.Members.AUDIO_ID,
MediaColumns.TITLE, AudioColumns.ALBUM, AudioColumns.ARTIST,
AudioColumns.DURATION
};
uri = Playlists.Members.getContentUri(EXTERNAL, mPlaylistId);
sortOrder = Playlists.Members.DEFAULT_SORT_ORDER;
break;
}
} else if (Audio.Genres.CONTENT_TYPE.equals(mimeType)) {
long genreId = getArguments().getLong(BaseColumns._ID);
uri = Genres.Members.getContentUri(EXTERNAL, genreId);
projection = new String[] {
BaseColumns._ID, MediaColumns.TITLE, AudioColumns.ALBUM,
AudioColumns.ARTIST
};
where = new StringBuilder();
where.append(AudioColumns.IS_MUSIC + "=1").append(
" AND " + MediaColumns.TITLE + " != ''");
sortOrder = Genres.Members.DEFAULT_SORT_ORDER;
} else {
if (Audio.Albums.CONTENT_TYPE.equals(mimeType)) {
long albumId = getArguments().getLong(BaseColumns._ID);
where.append(" AND " + AudioColumns.ALBUM_ID + "=" + albumId);
sortOrder = Audio.Media.TRACK + ", " + sortOrder;
} else if (Audio.Artists.CONTENT_TYPE.equals(mimeType)) {
sortOrder = MediaColumns.TITLE;
long artist_id = getArguments().getLong(BaseColumns._ID);
where.append(" AND " + AudioColumns.ARTIST_ID + "=" + artist_id);
}
}
}
return new CursorLoader(getActivity(), uri, projection, where.toString(), null, sortOrder);
}
项目:itmarry
文件:TracksFragment.java
@Override
public void onLoadFinished(Loader<Cursor> loader, Cursor data) {
// Check for database errors
if (data == null) {
return;
}
if (getArguments() != null
&& Playlists.CONTENT_TYPE.equals(getArguments().getString(MIME_TYPE))
&& (getArguments().getLong(BaseColumns._ID) >= 0 || getArguments().getLong(
BaseColumns._ID) == PLAYLIST_FAVORITES)) {
mMediaIdIndex = data.getColumnIndexOrThrow(Playlists.Members.AUDIO_ID);
mTitleIndex = data.getColumnIndexOrThrow(MediaColumns.TITLE);
mAlbumIndex = data.getColumnIndexOrThrow(AudioColumns.ALBUM);
// FIXME
// mArtistIndex =
// data.getColumnIndexOrThrow(Playlists.Members.ARTIST);
} else if (getArguments() != null
&& Genres.CONTENT_TYPE.equals(getArguments().getString(MIME_TYPE))) {
mMediaIdIndex = data.getColumnIndexOrThrow(BaseColumns._ID);
mTitleIndex = data.getColumnIndexOrThrow(MediaColumns.TITLE);
mArtistIndex = data.getColumnIndexOrThrow(AudioColumns.ARTIST);
mAlbumIndex = data.getColumnIndexOrThrow(AudioColumns.ALBUM);
} else if (getArguments() != null
&& Artists.CONTENT_TYPE.equals(getArguments().getString(MIME_TYPE))) {
mTitleIndex = data.getColumnIndexOrThrow(MediaColumns.TITLE);
// mArtistIndex is "line2" of the ListView
mArtistIndex = data.getColumnIndexOrThrow(AudioColumns.ALBUM);
} else if (getArguments() != null
&& Albums.CONTENT_TYPE.equals(getArguments().getString(MIME_TYPE))) {
mMediaIdIndex = data.getColumnIndexOrThrow(BaseColumns._ID);
mTitleIndex = data.getColumnIndexOrThrow(MediaColumns.TITLE);
mArtistIndex = data.getColumnIndexOrThrow(AudioColumns.ARTIST);
} else {
mMediaIdIndex = data.getColumnIndexOrThrow(BaseColumns._ID);
mTitleIndex = data.getColumnIndexOrThrow(MediaColumns.TITLE);
mArtistIndex = data.getColumnIndexOrThrow(AudioColumns.ARTIST);
mAlbumIndex = data.getColumnIndexOrThrow(AudioColumns.ALBUM);
}
mTrackAdapter.changeCursor(data);
mListView.invalidateViews();
mCursor = data;
}