Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 242d0cdc authored by Mike Lockwood's avatar Mike Lockwood
Browse files

MediaScanner: Make sure name field is set for file based playlists



Change-Id: I7df1ff783d815d6021ec2432467ba56cb3f3ad1b
Signed-off-by: default avatarMike Lockwood <lockwood@android.com>
parent a1c91804
Loading
Loading
Loading
Loading
+16 −9
Original line number Diff line number Diff line
@@ -1462,22 +1462,29 @@ public class MediaScanner
        if (lastSlash < 0) throw new IllegalArgumentException("bad path " + path);
        Uri uri, membersUri;
        long rowId = entry.mRowId;
        if (rowId == 0) {
            // Create a new playlist

        // make sure we have a name
        String name = values.getAsString(MediaStore.Audio.Playlists.NAME);
        if (name == null) {
            name = values.getAsString(MediaStore.MediaColumns.TITLE);
            if (name == null) {
                // extract name from file name
                int lastDot = path.lastIndexOf('.');
            String name = (lastDot < 0 ? path.substring(lastSlash + 1) : path.substring(lastSlash + 1, lastDot));
                name = (lastDot < 0 ? path.substring(lastSlash + 1)
                        : path.substring(lastSlash + 1, lastDot));
            }
        }

        values.put(MediaStore.Audio.Playlists.NAME, name);
            values.put(MediaStore.Audio.Playlists.DATA, path);
        values.put(MediaStore.Audio.Playlists.DATE_MODIFIED, entry.mLastModified);

        if (rowId == 0) {
            values.put(MediaStore.Audio.Playlists.DATA, path);
            uri = mMediaProvider.insert(mPlaylistsUri, values);
            rowId = ContentUris.parseId(uri);
            membersUri = Uri.withAppendedPath(uri, Playlists.Members.CONTENT_DIRECTORY);
        } else {
            uri = ContentUris.withAppendedId(mPlaylistsUri, rowId);

            // update lastModified value of existing playlist
            values.put(MediaStore.Audio.Playlists.DATE_MODIFIED, entry.mLastModified);
            mMediaProvider.update(uri, values, null, null);

            // delete members of existing playlist