Java 类android.provider.MediaStore.Audio.Playlists 实例源码

项目:KomaMusic    文件:MusicUtils.java   
/**
 * @param context The {@link Context} to use.
 * @param name    The name of the new playlist.
 * @return A new playlist ID.
 */
public static final long createPlaylist(final Context context, final String name) {
    if (name != null && name.length() > 0) {
        final ContentResolver resolver = context.getContentResolver();
        final String[] projection = new String[]{
                PlaylistsColumns.NAME
        };
        final String selection = PlaylistsColumns.NAME + " = '" + name + "'";
        Cursor cursor = resolver.query(MediaStore.Audio.Playlists.EXTERNAL_CONTENT_URI,
                projection, selection, null, null);
        if (cursor.getCount() <= 0) {
            final ContentValues values = new ContentValues(1);
            values.put(PlaylistsColumns.NAME, name);
            final Uri uri = resolver.insert(MediaStore.Audio.Playlists.EXTERNAL_CONTENT_URI,
                    values);
            return Long.parseLong(uri.getLastPathSegment());
        }
        if (cursor != null) {
            cursor.close();
            cursor = null;
        }
        return -1;
    }
    return -1;
}
项目:Hello-Music-droid    文件:PlaylistSongLoader.java   
private static int countPlaylist(final Context context, final long playlistId) {
    Cursor c = null;
    try {
        c = context.getContentResolver().query(
                MediaStore.Audio.Playlists.Members.getContentUri("external", playlistId),
                new String[]{
                        MediaStore.Audio.Playlists.Members.AUDIO_ID,
                }, null, null,
                MediaStore.Audio.Playlists.Members.DEFAULT_SORT_ORDER);

        if (c != null) {
            return c.getCount();
        }
    } finally {
        if (c != null) {
            c.close();
            c = null;
        }
    }

    return 0;
}
项目:Hello-Music-droid    文件:PlaylistSongLoader.java   
public static final Cursor makePlaylistSongCursor(final Context context, final Long playlistID) {
    final StringBuilder mSelection = new StringBuilder();
    mSelection.append(AudioColumns.IS_MUSIC + "=1");
    mSelection.append(" AND " + AudioColumns.TITLE + " != ''");
    return context.getContentResolver().query(
            MediaStore.Audio.Playlists.Members.getContentUri("external", playlistID),
            new String[]{
                    MediaStore.Audio.Playlists.Members._ID,
                    MediaStore.Audio.Playlists.Members.AUDIO_ID,
                    AudioColumns.TITLE,
                    AudioColumns.ARTIST,
                    AudioColumns.ALBUM_ID,
                    AudioColumns.ARTIST_ID,
                    AudioColumns.ALBUM,
                    AudioColumns.DURATION,
                    AudioColumns.TRACK,
                    Playlists.Members.PLAY_ORDER,
            }, mSelection.toString(), null,
            MediaStore.Audio.Playlists.Members.DEFAULT_SORT_ORDER);
}
项目:KomaMusic    文件:MusicUtils.java   
/**
 * @param cursor The {@link Cursor} used to perform our query.
 * @return The song list for a MIME type.
 */
public static final long[] getSongListForCursor(Cursor cursor) {
    if (cursor == null) {
        return sEmptyList;
    }
    final int len = cursor.getCount();
    final long[] list = new long[len];
    cursor.moveToFirst();
    int columnIndex = -1;
    try {
        columnIndex = cursor.getColumnIndexOrThrow(MediaStore.Audio.Playlists.Members.AUDIO_ID);
    } catch (final IllegalArgumentException notaplaylist) {
        columnIndex = cursor.getColumnIndexOrThrow(BaseColumns._ID);
    }
    for (int i = 0; i < len; i++) {
        list[i] = cursor.getLong(columnIndex);
        cursor.moveToNext();
    }
    cursor.close();
    cursor = null;
    return list;
}
项目:KomaMusic    文件:MusicUtils.java   
/**
 * Returns The ID for a playlist.
 *
 * @param context The {@link Context} to use.
 * @param name    The name of the playlist.
 * @return The ID for a playlist.
 */
public static final long getIdForPlaylist(final Context context, final String name) {
    Cursor cursor = context.getContentResolver().query(
            MediaStore.Audio.Playlists.EXTERNAL_CONTENT_URI, new String[]{
                    BaseColumns._ID
            }, PlaylistsColumns.NAME + "=?", new String[]{
                    name
            }, PlaylistsColumns.NAME);
    int id = -1;
    if (cursor != null) {
        cursor.moveToFirst();
        if (!cursor.isAfterLast()) {
            id = cursor.getInt(0);
        }
        cursor.close();
        cursor = null;
    }
    return id;
}
项目:KomaMusic    文件:MusicUtils.java   
/**
 * @param context The {@link Context} to use.
 * @param id      The id of the playlist.
 * @return The name for a playlist.
 */
public static final String getNameForPlaylist(final Context context, final long id) {
    Cursor cursor = context.getContentResolver().query(
            MediaStore.Audio.Playlists.EXTERNAL_CONTENT_URI,
            new String[]{PlaylistsColumns.NAME},
            BaseColumns._ID + "=?",
            new String[]{Long.toString(id)},
            null);
    if (cursor != null) {
        try {
            if (cursor.moveToFirst()) {
                return cursor.getString(0);
            }
        } finally {
            cursor.close();
        }
    }
    // nothing found
    return null;
}
项目:KomaMusic    文件:MusicUtils.java   
public static void makeInsertItems(final long[] ids, final int offset, int len, final int base) {
    if (offset + len > ids.length) {
        len = ids.length - offset;
    }

    if (mContentValuesCache == null || mContentValuesCache.length != len) {
        mContentValuesCache = new ContentValues[len];
    }
    for (int i = 0; i < len; i++) {
        if (mContentValuesCache[i] == null) {
            mContentValuesCache[i] = new ContentValues();
        }
        mContentValuesCache[i].put(Playlists.Members.PLAY_ORDER, base + offset + i);
        mContentValuesCache[i].put(Playlists.Members.AUDIO_ID, ids[offset + i]);
    }
}
项目:KomaMusic    文件:MusicUtils.java   
/**
 * Gets the number of songs for a playlist
 *
 * @param context    The {@link Context} to use.
 * @param playlistId the id of the playlist
 * @return the # of songs in the playlist
 */
public static final int getSongCountForPlaylist(final Context context, final long playlistId) {
    Cursor c = context.getContentResolver().query(
            MediaStore.Audio.Playlists.Members.getContentUri("external", playlistId),
            new String[]{BaseColumns._ID}, MusicUtils.MUSIC_ONLY_SELECTION, null, null);

    if (c != null) {
        int count = 0;
        if (c.moveToFirst()) {
            count = c.getCount();
        }
        c.close();
        c = null;
        return count;
    }

    return 0;
}
项目:Muzesto    文件:PlaylistSongLoader.java   
private static int countPlaylist(final Context context, final long playlistId) {
    Cursor c = null;
    try {
        c = context.getContentResolver().query(
                MediaStore.Audio.Playlists.Members.getContentUri("external", playlistId),
                new String[]{
                        MediaStore.Audio.Playlists.Members.AUDIO_ID,
                }, null, null,
                MediaStore.Audio.Playlists.Members.DEFAULT_SORT_ORDER);

        if (c != null) {
            return c.getCount();
        }
    } finally {
        if (c != null) {
            c.close();
            c = null;
        }
    }

    return 0;
}
项目:Muzesto    文件:PlaylistSongLoader.java   
public static final Cursor makePlaylistSongCursor(final Context context, final Long playlistID) {
    final StringBuilder mSelection = new StringBuilder();
    mSelection.append(AudioColumns.IS_MUSIC + "=1");
    mSelection.append(" AND " + AudioColumns.TITLE + " != ''");
    return context.getContentResolver().query(
            MediaStore.Audio.Playlists.Members.getContentUri("external", playlistID),
            new String[]{
                    MediaStore.Audio.Playlists.Members._ID,
                    MediaStore.Audio.Playlists.Members.AUDIO_ID,
                    AudioColumns.TITLE,
                    AudioColumns.ARTIST,
                    AudioColumns.ALBUM_ID,
                    AudioColumns.ARTIST_ID,
                    AudioColumns.ALBUM,
                    AudioColumns.DURATION,
                    AudioColumns.TRACK,
                    Playlists.Members.PLAY_ORDER,
            }, mSelection.toString(), null,
            MediaStore.Audio.Playlists.Members.DEFAULT_SORT_ORDER);
}
项目:mobile-manager-tool    文件:TracksBrowser.java   
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
    if (Audio.Artists.CONTENT_TYPE.equals(mimeType)) {

        menu.setHeaderTitle(R.string.image_edit_artists);
        getMenuInflater().inflate(R.menu.music_context_artistimage, menu);

    } else if (Audio.Albums.CONTENT_TYPE.equals(mimeType)) {

        menu.setHeaderTitle(R.string.image_edit_albums);
        getMenuInflater().inflate(R.menu.music_context_albumimage, menu);

    } else if (Playlists.CONTENT_TYPE.equals(mimeType)) {
        menu.setHeaderTitle(R.string.image_edit_playlist);
        getMenuInflater().inflate(R.menu.music_context_playlist_genreimage, menu);
    }
    else{
        menu.setHeaderTitle(R.string.image_edit_genre);
        getMenuInflater().inflate(R.menu.music_context_playlist_genreimage, menu);
    }
}
项目:mobile-manager-tool    文件:TracksBrowser.java   
public void onSearchWeb(){
    String query = "";
    if (Audio.Artists.CONTENT_TYPE.equals(mimeType)) {
        query = getArtist();
    } else if (Audio.Albums.CONTENT_TYPE.equals(mimeType)) {
        query = getAlbum() + " " + getArtist();
    } else if (Playlists.CONTENT_TYPE.equals(mimeType)) {
        query = bundle.getString(PLAYLIST_NAME);
    }
    else{
        Long id = bundle.getLong(BaseColumns._ID);
        query = MusicUtils.parseGenreName(this, MusicUtils.getGenreName(this, id, true));
    }
    final Intent googleSearch = new Intent(Intent.ACTION_WEB_SEARCH);
    googleSearch.putExtra(SearchManager.QUERY, query);
    startActivity(googleSearch);
}
项目:com.cp.monsterMod    文件:MusicUtils.java   
/**
 * @param cursor
 * @return
 */
public static long[] getSongListForCursor(Cursor cursor) {
    if (cursor == null) {
        return sEmptyList;
    }
    int len = cursor.getCount();
    long[] list = new long[len];
    cursor.moveToFirst();
    int colidx = -1;
    try {
        colidx = cursor.getColumnIndexOrThrow(Audio.Playlists.Members.AUDIO_ID);
    } catch (IllegalArgumentException ex) {
        colidx = cursor.getColumnIndexOrThrow(BaseColumns._ID);
    }
    for (int i = 0; i < len; i++) {
        list[i] = cursor.getLong(colidx);
        cursor.moveToNext();
    }
    return list;
}
项目:com.cp.monsterMod    文件:MusicUtils.java   
/**
 * @param context
 * @param name
 * @return
 */
public static long createPlaylist(Context context, String name) {

    if (name != null && name.length() > 0) {
        ContentResolver resolver = context.getContentResolver();
        String[] cols = new String[] {
            PlaylistsColumns.NAME
        };
        String whereclause = PlaylistsColumns.NAME + " = '" + name + "'";
        Cursor cur = resolver.query(Audio.Playlists.EXTERNAL_CONTENT_URI, cols, whereclause,
                null, null);
        if (cur.getCount() <= 0) {
            ContentValues values = new ContentValues(1);
            values.put(PlaylistsColumns.NAME, name);
            Uri uri = resolver.insert(Audio.Playlists.EXTERNAL_CONTENT_URI, values);
            return Long.parseLong(uri.getLastPathSegment());
        }
        return -1;
    }
    return -1;
}
项目:com.cp.monsterMod    文件:MusicUtils.java   
/**
 * @param context
 * @return
 */
public static long getFavoritesId(Context context) {
    long favorites_id = -1;
    String favorites_where = PlaylistsColumns.NAME + "='" + "Favorites" + "'";
    String[] favorites_cols = new String[] {
        BaseColumns._ID
    };
    Uri favorites_uri = Audio.Playlists.EXTERNAL_CONTENT_URI;
    Cursor cursor = query(context, favorites_uri, favorites_cols, favorites_where, null, null);
    if (cursor.getCount() <= 0) {
        favorites_id = createPlaylist(context, "Favorites");
    } else {
        cursor.moveToFirst();
        favorites_id = cursor.getLong(0);
        cursor.close();
    }
    return favorites_id;
}
项目:com.cp.monsterMod    文件:MusicUtils.java   
/**
 * @param ids
 * @param offset
 * @param len
 * @param base
 */
private static void makeInsertItems(long[] ids, int offset, int len, int base) {

    // adjust 'len' if would extend beyond the end of the source array
    if (offset + len > ids.length) {
        len = ids.length - offset;
    }
    // allocate the ContentValues array, or reallocate if it is the wrong
    // size
    if (sContentValuesCache == null || sContentValuesCache.length != len) {
        sContentValuesCache = new ContentValues[len];
    }
    // fill in the ContentValues array with the right values for this pass
    for (int i = 0; i < len; i++) {
        if (sContentValuesCache[i] == null) {
            sContentValuesCache[i] = new ContentValues();
        }

        sContentValuesCache[i].put(Playlists.Members.PLAY_ORDER, base + offset + i);
        sContentValuesCache[i].put(Playlists.Members.AUDIO_ID, ids[offset + i]);
    }
}
项目:com.cp.monsterMod    文件:MusicUtils.java   
/**
 * @param context
 * @param id
 */
public static void removeFromFavorites(Context context, long id) {
    long favorites_id;
    if (id < 0) {
    } else {
        ContentResolver resolver = context.getContentResolver();
        String favorites_where = PlaylistsColumns.NAME + "='" + PLAYLIST_NAME_FAVORITES + "'";
        String[] favorites_cols = new String[] {
            BaseColumns._ID
        };
        Uri favorites_uri = Audio.Playlists.EXTERNAL_CONTENT_URI;
        Cursor cursor = resolver.query(favorites_uri, favorites_cols, favorites_where, null,
                null);
        if (cursor.getCount() <= 0) {
            favorites_id = createPlaylist(context, PLAYLIST_NAME_FAVORITES);
        } else {
            cursor.moveToFirst();
            favorites_id = cursor.getLong(0);
            cursor.close();
        }
        Uri uri = Playlists.Members.getContentUri(EXTERNAL, favorites_id);
        resolver.delete(uri, Playlists.Members.AUDIO_ID + "=" + id, null);
    }
}
项目:com.cp.monsterMod    文件:MusicUtils.java   
/**
 * @param playlist_id
 * @return playlist name
 */
public static String getPlaylistName(Context mContext, long playlist_id) {
    String where = BaseColumns._ID + "=" + playlist_id;
    String[] cols = new String[] {
        PlaylistsColumns.NAME
    };
    Uri uri = Audio.Playlists.EXTERNAL_CONTENT_URI;
    Cursor cursor = mContext.getContentResolver().query(uri, cols, where, null, null);
    if (cursor == null){
        return "";
    }
    if (cursor.getCount() <= 0)
        return "";
    cursor.moveToFirst();
    String name = cursor.getString(0);
    cursor.close();
    return name;
}
项目:com.cp.monsterMod    文件:TracksBrowser.java   
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
    if (Audio.Artists.CONTENT_TYPE.equals(mimeType)) {

        menu.setHeaderTitle(R.string.image_edit_artists);
        getMenuInflater().inflate(R.menu.context_artistimage, menu); 

    } else if (Audio.Albums.CONTENT_TYPE.equals(mimeType)) {

        menu.setHeaderTitle(R.string.image_edit_albums);
        getMenuInflater().inflate(R.menu.context_albumimage, menu); 

    } else if (Audio.Playlists.CONTENT_TYPE.equals(mimeType)) {         
        menu.setHeaderTitle(R.string.image_edit_playlist);
        getMenuInflater().inflate(R.menu.context_playlist_genreimage, menu);            
    }
    else{           
        menu.setHeaderTitle(R.string.image_edit_genre);
        getMenuInflater().inflate(R.menu.context_playlist_genreimage, menu);            
    }
}
项目:com.cp.monsterMod    文件:TracksBrowser.java   
public void onSearchWeb(){
    String query = "";
    if (Audio.Artists.CONTENT_TYPE.equals(mimeType)) {
        query = getArtist();
    } else if (Audio.Albums.CONTENT_TYPE.equals(mimeType)) {
        query = getAlbum() + " " + getArtist();
    } else if (Audio.Playlists.CONTENT_TYPE.equals(mimeType)) {
        query = bundle.getString(PLAYLIST_NAME);
    }
    else{
        Long id = bundle.getLong(BaseColumns._ID);
        query = MusicUtils.parseGenreName(this, MusicUtils.getGenreName(this, id, true));
    }
    final Intent googleSearch = new Intent(Intent.ACTION_WEB_SEARCH);
    googleSearch.putExtra(SearchManager.QUERY, query);
    startActivity(googleSearch);    
}
项目:itmarry    文件:MusicUtils.java   
/**
 * @param cursor
 * @return
 */
public static long[] getSongListForCursor(Cursor cursor) {
    if (cursor == null) {
        return sEmptyList;
    }
    int len = cursor.getCount();
    long[] list = new long[len];
    cursor.moveToFirst();
    int colidx = -1;
    try {
        colidx = cursor.getColumnIndexOrThrow(Audio.Playlists.Members.AUDIO_ID);
    } catch (IllegalArgumentException ex) {
        colidx = cursor.getColumnIndexOrThrow(BaseColumns._ID);
    }
    for (int i = 0; i < len; i++) {
        list[i] = cursor.getLong(colidx);
        cursor.moveToNext();
    }
    return list;
}
项目:itmarry    文件:MusicUtils.java   
/**
 * @param context
 * @param name
 * @return
 */
public static long createPlaylist(Context context, String name) {

    if (name != null && name.length() > 0) {
        ContentResolver resolver = context.getContentResolver();
        String[] cols = new String[] {
            PlaylistsColumns.NAME
        };
        String whereclause = PlaylistsColumns.NAME + " = '" + name + "'";
        Cursor cur = resolver.query(Audio.Playlists.EXTERNAL_CONTENT_URI, cols, whereclause,
                null, null);
        if (cur.getCount() <= 0) {
            ContentValues values = new ContentValues(1);
            values.put(PlaylistsColumns.NAME, name);
            Uri uri = resolver.insert(Audio.Playlists.EXTERNAL_CONTENT_URI, values);
            return Long.parseLong(uri.getLastPathSegment());
        }
        return -1;
    }
    return -1;
}
项目:itmarry    文件:MusicUtils.java   
/**
 * @param context
 * @return
 */
public static long getFavoritesId(Context context) {
    long favorites_id = -1;
    String favorites_where = PlaylistsColumns.NAME + "='" + "Favorites" + "'";
    String[] favorites_cols = new String[] {
        BaseColumns._ID
    };
    Uri favorites_uri = Audio.Playlists.EXTERNAL_CONTENT_URI;
    Cursor cursor = query(context, favorites_uri, favorites_cols, favorites_where, null, null);
    if (cursor.getCount() <= 0) {
        favorites_id = createPlaylist(context, "Favorites");
    } else {
        cursor.moveToFirst();
        favorites_id = cursor.getLong(0);
        cursor.close();
    }
    return favorites_id;
}
项目:itmarry    文件:MusicUtils.java   
/**
 * @param ids
 * @param offset
 * @param len
 * @param base
 */
private static void makeInsertItems(long[] ids, int offset, int len, int base) {

    // adjust 'len' if would extend beyond the end of the source array
    if (offset + len > ids.length) {
        len = ids.length - offset;
    }
    // allocate the ContentValues array, or reallocate if it is the wrong
    // size
    if (sContentValuesCache == null || sContentValuesCache.length != len) {
        sContentValuesCache = new ContentValues[len];
    }
    // fill in the ContentValues array with the right values for this pass
    for (int i = 0; i < len; i++) {
        if (sContentValuesCache[i] == null) {
            sContentValuesCache[i] = new ContentValues();
        }

        sContentValuesCache[i].put(Playlists.Members.PLAY_ORDER, base + offset + i);
        sContentValuesCache[i].put(Playlists.Members.AUDIO_ID, ids[offset + i]);
    }
}
项目:itmarry    文件:MusicUtils.java   
/**
 * @param context
 * @param id
 */
public static void removeFromFavorites(Context context, long id) {
    long favorites_id;
    if (id < 0) {
    } else {
        ContentResolver resolver = context.getContentResolver();
        String favorites_where = PlaylistsColumns.NAME + "='" + PLAYLIST_NAME_FAVORITES + "'";
        String[] favorites_cols = new String[] {
            BaseColumns._ID
        };
        Uri favorites_uri = Audio.Playlists.EXTERNAL_CONTENT_URI;
        Cursor cursor = resolver.query(favorites_uri, favorites_cols, favorites_where, null,
                null);
        if (cursor.getCount() <= 0) {
            favorites_id = createPlaylist(context, PLAYLIST_NAME_FAVORITES);
        } else {
            cursor.moveToFirst();
            favorites_id = cursor.getLong(0);
            cursor.close();
        }
        Uri uri = Playlists.Members.getContentUri(EXTERNAL, favorites_id);
        resolver.delete(uri, Playlists.Members.AUDIO_ID + "=" + id, null);
    }
}
项目:itmarry    文件:MusicUtils.java   
/**
 * @param playlist_id
 * @return playlist name
 */
public static String getPlaylistName(Context mContext, long playlist_id) {
    String where = BaseColumns._ID + "=" + playlist_id;
    String[] cols = new String[] {
        PlaylistsColumns.NAME
    };
    Uri uri = Audio.Playlists.EXTERNAL_CONTENT_URI;
    Cursor cursor = mContext.getContentResolver().query(uri, cols, where, null, null);
    if (cursor == null){
        return "";
    }
    if (cursor.getCount() <= 0)
        return "";
    cursor.moveToFirst();
    String name = cursor.getString(0);
    cursor.close();
    return name;
}
项目:itmarry    文件:TracksFragment.java   
/**
 * @param which
 */
private void removePlaylistItem(int which) {

    mCursor.moveToPosition(which);
    long id = mCursor.getLong(mMediaIdIndex);
    if (mPlaylistId >= 0) {
        Uri uri = Playlists.Members.getContentUri(EXTERNAL, mPlaylistId);
        getActivity().getContentResolver().delete(uri, Playlists.Members.AUDIO_ID + "=" + id,
                null);
    } else if (mPlaylistId == PLAYLIST_QUEUE) {
        MusicUtils.removeTrack(id);
        reloadQueueCursor();
    } else if (mPlaylistId == PLAYLIST_FAVORITES) {
        MusicUtils.removeFromFavorites(getActivity(), id);
    }
    mListView.invalidateViews();
}
项目:itmarry    文件:TracksFragment.java   
/**
 * Check if we're viewing the contents of a playlist
 */
public void isEditMode() {
    if (getArguments() != null) {
        String mimetype = getArguments().getString(MIME_TYPE);
        if (Audio.Playlists.CONTENT_TYPE.equals(mimetype)) {
            mPlaylistId = getArguments().getLong(BaseColumns._ID);
            switch ((int)mPlaylistId) {
                case (int)PLAYLIST_QUEUE:
                    mEditMode = true;
                    break;
                case (int)PLAYLIST_FAVORITES:
                    mEditMode = true;
                    break;
                default:
                    if (mPlaylistId > 0) {
                        mEditMode = true;
                    }
                    break;
            }
        }
    }
}
项目:Orpheus    文件:MusicUtils.java   
/**
 * Returns The ID for a playlist.
 *
 * @param context The {@link Context} to use.
 * @param name The name of the playlist.
 * @return The ID for a playlist.
 */
public static long getIdForPlaylist(final Context context, final String name) {
    Cursor cursor = context.getContentResolver().query(
            MediaStore.Audio.Playlists.EXTERNAL_CONTENT_URI, new String[] {
                BaseColumns._ID
            }, PlaylistsColumns.NAME + "=?", new String[] {
                name
            }, PlaylistsColumns.NAME);
    int id = -1;
    if (cursor != null) {
        cursor.moveToFirst();
        if (!cursor.isAfterLast()) {
            id = cursor.getInt(0);
        }
        cursor.close();
        cursor = null;
    }
    return id;
}
项目:Orpheus    文件:MusicUtils.java   
public static void makeInsertItems(final long[] ids, final int offset, int len, final int base) {
    if (offset + len > ids.length) {
        len = ids.length - offset;
    }

    if (mContentValuesCache == null || mContentValuesCache.length != len) {
        mContentValuesCache = new ContentValues[len];
    }
    for (int i = 0; i < len; i++) {
        if (mContentValuesCache[i] == null) {
            mContentValuesCache[i] = new ContentValues();
        }
        mContentValuesCache[i].put(Playlists.Members.PLAY_ORDER, base + offset + i);
        mContentValuesCache[i].put(Playlists.Members.AUDIO_ID, ids[offset + i]);
    }
}
项目:Orpheus    文件:MusicUtils.java   
/**
 * @param context The {@link Context} to use.
 * @param name The name of the new playlist.
 * @return A new playlist ID.
 */
public static long createPlaylist(final Context context, final String name) {
    if (name != null && name.length() > 0) {
        final ContentResolver resolver = context.getContentResolver();
        final String[] projection = new String[] {
            PlaylistsColumns.NAME
        };
        final String selection = PlaylistsColumns.NAME + " = '" + name + "'";
        Cursor cursor = resolver.query(MediaStore.Audio.Playlists.EXTERNAL_CONTENT_URI,
                projection, selection, null, null);
        int count = 1;
        if (cursor != null) {
            count = cursor.getCount();
            cursor.close();
        }
        if (count <= 0) {
            final ContentValues values = new ContentValues(1);
            values.put(PlaylistsColumns.NAME, name);
            final Uri uri = resolver.insert(MediaStore.Audio.Playlists.EXTERNAL_CONTENT_URI,
                    values);
            return Long.parseLong(uri.getLastPathSegment());
        }
        return -1;
    }
    return -1;
}
项目:Orpheus    文件:MusicUtils.java   
/**
 * @param context The {@link Context} to use.
 * @param ids The id of the song(s) to add.
 * @param playlistid The id of the playlist being added to.
 */
public static void addToPlaylist(final Activity context, final long[] ids, final long playlistid) {
    final int size = ids.length;
    final ContentResolver resolver = context.getContentResolver();
    final String[] projection = new String[] {
        "count(*)"
    };
    final Uri uri = MediaStore.Audio.Playlists.Members.getContentUri("external", playlistid);
    Cursor cursor = resolver.query(uri, projection, null, null, null);
    cursor.moveToFirst();
    final int base = cursor.getInt(0);
    cursor.close();
    cursor = null;
    int numinserted = 0;
    for (int offSet = 0; offSet < size; offSet += 1000) {
        makeInsertItems(ids, offSet, 1000, base);
        numinserted += resolver.bulkInsert(uri, mContentValuesCache);
    }
    final String message = context.getResources().getQuantityString(
            R.plurals.NNNtrackstoplaylist, numinserted, numinserted);
    Toast.makeText((Activity) context, message, Toast.LENGTH_LONG).show();
    context.getContentResolver().notifyChange(Uris.EXTERNAL_MEDIASTORE_PLAYLISTS, null);
}
项目:Player-by-TweekProject    文件:MusicUtils.java   
/**
 * @param cursor The {@link Cursor} used to perform our query.
 * @return The song list for a MIME type.
 */
public static final long[] getSongListForCursor(Cursor cursor) {
    if (cursor == null) {
        return sEmptyList;
    }
    final int len = cursor.getCount();
    final long[] list = new long[len];
    cursor.moveToFirst();
    int columnIndex = -1;
    try {
        columnIndex = cursor.getColumnIndexOrThrow(MediaStore.Audio.Playlists.Members.AUDIO_ID);
    } catch (final IllegalArgumentException notaplaylist) {
        columnIndex = cursor.getColumnIndexOrThrow(BaseColumns._ID);
    }
    for (int i = 0; i < len; i++) {
        list[i] = cursor.getLong(columnIndex);
        cursor.moveToNext();
    }
    cursor.close();
    cursor = null;
    return list;
}
项目:Player-by-TweekProject    文件:MusicUtils.java   
/**
 * Returns The ID for a playlist.
 * 
 * @param context The {@link Context} to use.
 * @param name The name of the playlist.
 * @return The ID for a playlist.
 */
public static final long getIdForPlaylist(final Context context, final String name) {
    Cursor cursor = context.getContentResolver().query(
            MediaStore.Audio.Playlists.EXTERNAL_CONTENT_URI, new String[] {
                BaseColumns._ID
            }, PlaylistsColumns.NAME + "=?", new String[] {
                name
            }, PlaylistsColumns.NAME);
    int id = -1;
    if (cursor != null) {
        cursor.moveToFirst();
        if (!cursor.isAfterLast()) {
            id = cursor.getInt(0);
        }
        cursor.close();
        cursor = null;
    }
    return id;
}
项目:Player-by-TweekProject    文件:MusicUtils.java   
public static void makeInsertItems(final long[] ids, final int offset, int len, final int base) {
    if (offset + len > ids.length) {
        len = ids.length - offset;
    }

    if (mContentValuesCache == null || mContentValuesCache.length != len) {
        mContentValuesCache = new ContentValues[len];
    }
    for (int i = 0; i < len; i++) {
        if (mContentValuesCache[i] == null) {
            mContentValuesCache[i] = new ContentValues();
        }
        mContentValuesCache[i].put(Playlists.Members.PLAY_ORDER, base + offset + i);
        mContentValuesCache[i].put(Playlists.Members.AUDIO_ID, ids[offset + i]);
    }
}
项目:Player-by-TweekProject    文件:MusicUtils.java   
/**
 * @param context The {@link Context} to use.
 * @param name The name of the new playlist.
 * @return A new playlist ID.
 */
public static final long createPlaylist(final Context context, final String name) {
    if (name != null && name.length() > 0) {
        final ContentResolver resolver = context.getContentResolver();
        final String[] projection = new String[] {
            PlaylistsColumns.NAME
        };
        final String selection = PlaylistsColumns.NAME + " = '" + name + "'";
        Cursor cursor = resolver.query(MediaStore.Audio.Playlists.EXTERNAL_CONTENT_URI,
                projection, selection, null, null);
        if (cursor.getCount() <= 0) {
            final ContentValues values = new ContentValues(1);
            values.put(PlaylistsColumns.NAME, name);
            final Uri uri = resolver.insert(MediaStore.Audio.Playlists.EXTERNAL_CONTENT_URI,
                    values);
            return Long.parseLong(uri.getLastPathSegment());
        }
        if (cursor != null) {
            cursor.close();
            cursor = null;
        }
        return -1;
    }
    return -1;
}
项目:Player-by-TweekProject    文件:MusicUtils.java   
/**
 * @param context The {@link Context} to use.
 * @param ids The id of the song(s) to add.
 * @param playlistid The id of the playlist being added to.
 */
public static void addToPlaylist(final Context context, final long[] ids, final long playlistid) {
    final int size = ids.length;
    final ContentResolver resolver = context.getContentResolver();
    final String[] projection = new String[] {
        "count(*)"
    };
    final Uri uri = MediaStore.Audio.Playlists.Members.getContentUri("external", playlistid);
    Cursor cursor = resolver.query(uri, projection, null, null, null);
    cursor.moveToFirst();
    final int base = cursor.getInt(0);
    cursor.close();
    cursor = null;
    int numinserted = 0;
    for (int offSet = 0; offSet < size; offSet += 1000) {
        makeInsertItems(ids, offSet, 1000, base);
        numinserted += resolver.bulkInsert(uri, mContentValuesCache);
    }
    final String message = context.getResources().getQuantityString(
            R.plurals.NNNtrackstoplaylist, numinserted, numinserted);
    Crouton.makeText((Activity)context, message, Crouton.STYLE_CONFIRM).show();
}
项目:Player-by-TweekProject    文件:MusicUtils.java   
/**
 * @param context The {@link Context} to sue
 * @param playlistId The playlist Id
 * @return The track list for a playlist
 */
public static final long[] getSongListForPlaylist(final Context context, final String playlistId) {
    final String[] projection = new String[] {
        MediaStore.Audio.Playlists.Members.AUDIO_ID
    };
    Cursor cursor = context.getContentResolver().query(
            MediaStore.Audio.Playlists.Members.getContentUri("external",
                    Long.valueOf(playlistId)), projection, null, null,
            MediaStore.Audio.Playlists.Members.DEFAULT_SORT_ORDER);

    if (cursor != null) {
        final long[] list = getSongListForCursor(cursor);
        cursor.close();
        cursor = null;
        return list;
    }
    return sEmptyList;
}
项目:Android-Application-Using-CAF-Library    文件:TrackBrowserActivity.java   
private void getColumnIndices(Cursor cursor) {
    if (cursor != null) {
        mTitleIdx = cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.TITLE);
        mArtistIdx = cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.ARTIST);
        mDurationIdx = cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.DURATION);
        try {
            mAudioIdIdx = cursor.getColumnIndexOrThrow(
                    MediaStore.Audio.Playlists.Members.AUDIO_ID);
        } catch (IllegalArgumentException ex) {
            mAudioIdIdx = cursor.getColumnIndexOrThrow(MediaStore.Audio.Media._ID);
        }

        if (mIndexer != null) {
            mIndexer.setCursor(cursor);
        } else if (!mActivity.mEditMode && mActivity.mAlbumId == null) {
            String alpha = mActivity.getString(R.string.fast_scroll_alphabet);

            mIndexer = new MusicAlphabetIndexer(cursor, mTitleIdx, alpha);
        }
    }
}
项目:xPlodMusic    文件:MusicUtils.java   
/**
 * @param cursor
 * @return
 */
public static long[] getSongListForCursor(Cursor cursor) {
    if (cursor == null) {
        return sEmptyList;
    }
    int len = cursor.getCount();
    long[] list = new long[len];
    cursor.moveToFirst();
    int colidx = -1;
    try {
        colidx = cursor.getColumnIndexOrThrow(Audio.Playlists.Members.AUDIO_ID);
    } catch (IllegalArgumentException ex) {
        colidx = cursor.getColumnIndexOrThrow(BaseColumns._ID);
    }
    for (int i = 0; i < len; i++) {
        list[i] = cursor.getLong(colidx);
        cursor.moveToNext();
    }
    return list;
}