Exemplo n.º 1
0
        public async void AddToPlaylist(string path, string playList, long playlistID)
        {
            if (playList == GetString(Resource.String.create_playlist))
            {
                CreatePlalistDialog(path);
            }

            else
            {
                await MainActivity.instance.GetWritePermission();

                int playSlot = await PlaylistManager.GetLastPlayCount(playlistID);

                List <ContentValues> values   = new List <ContentValues>();
                ContentResolver      resolver = MainActivity.instance.ContentResolver;

                Uri          musicUri     = MediaStore.Audio.Media.GetContentUriForPath(path);
                CursorLoader cursorLoader = new CursorLoader(Android.App.Application.Context, musicUri, null, null, null, null);
                ICursor      musicCursor  = (ICursor)cursorLoader.LoadInBackground();

                if (musicCursor != null && musicCursor.MoveToFirst())
                {
                    int thisID = musicCursor.GetColumnIndex(MediaStore.Audio.Media.InterfaceConsts.Id);
                    int pathID = musicCursor.GetColumnIndex(MediaStore.Audio.Media.InterfaceConsts.Data);
                    do
                    {
                        string songPath = musicCursor.GetString(pathID);

                        if (!songPath.Contains(path))
                        {
                            continue;
                        }

                        long id = musicCursor.GetLong(thisID);

                        ContentValues value = new ContentValues();
                        value.Put(MediaStore.Audio.Playlists.Members.AudioId, id);
                        value.Put(MediaStore.Audio.Playlists.Members.PlayOrder, playSlot + 1);
                        values.Add(value);

                        playSlot++;
                    }while (musicCursor.MoveToNext());
                    musicCursor.Close();
                }
                resolver.BulkInsert(MediaStore.Audio.Playlists.Members.GetContentUri("external", playlistID), values.ToArray());
            }
        }