public void AddToPlaylist(JukeBoxPlaylist playlist, Song song)
        {
            var db            = new DataService();
            var playlistModel = new PlaylistModel
            {
                playlistNameId = (int)playlist.Id,
                SongId         = song.Id
            };

            db.Insert(playlistModel);
            //  return null;


            //await Task.Run(() =>
            //{
            //    ContentValues cv = new ContentValues();
            //    cv.Put(MediaStore.Audio.Playlists.Members.PlayOrder, 0);
            //    cv.Put(MediaStore.Audio.Playlists.Members.AudioId, song.Id);
            //    Android.Net.Uri uri = MediaStore.Audio.Playlists.Members.GetContentUri("external", (long)playlist.Id);
            //    ContentResolver resolver = Android.App.Application.Context.ContentResolver;
            //    var rUri = resolver.Insert(uri, cv);
            //    resolver.NotifyChange(Android.Net.Uri.Parse("content://media"), null);
            //});
        }
Beispiel #2
0
 public PlaylistsSongPage(JukeBoxPlaylist playlist)
 {
     //  _vm = new PlaylistViewModel(playlistItem);
     //  this.BindingContext = _vm;
     InitializeComponent();
     if (playlist != null)
     {
         var main = MainViewModel.GetInstance();
         main.deletePlaylist = true;
         Title.Text          = playlist.Title;
         if (playlist.PlaylistSongs.Count > 0)
         {
             main.PlaylistId     = (int)playlist.Id;
             main.DeletePlaylist = true;
             Artist.Text         = playlist.PlaylistSongs[0].Artist;
             img.Source          = ImageSource.FromStream(() => new MemoryStream(playlist.PlaylistSongs[0].Artwork));
         }
         else
         {
             img.Source = "playlist.png";
         }
     }
     _nav = Navigation;
 }
        public async Task <IList <JukeBoxPlaylist> > GetPlaylists()
        {
            //IList<Playlist> playlists = new ObservableCollection<Playlist>();

            //ICursor playlistCursor = Android.App.Application.Context.ContentResolver.Query(
            //MediaStore.Audio.Playlists.ExternalContentUri,
            //_playlistProjections, null ,null,
            //MediaStore.Audio.Playlists.InterfaceConsts.Name);

            //int idColumn = playlistCursor.GetColumnIndex(MediaStore.Audio.Playlists.InterfaceConsts.Id);
            //int nameColumn = playlistCursor.GetColumnIndex(MediaStore.Audio.Playlists.InterfaceConsts.Name);
            //int dateModifiedColumn = playlistCursor.GetColumnIndex(MediaStore.Audio.Playlists.InterfaceConsts.DateModified);

            //ulong id;
            //string name;
            //long time;

            //if (playlistCursor.MoveToFirst())
            //{
            //    do
            //    {
            //        id = ulong.Parse(playlistCursor.GetString(idColumn));
            //        name = playlistCursor.GetString(nameColumn);
            //        time = long.Parse(playlistCursor.GetString(dateModifiedColumn));

            //        DateTime dateModified = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc).AddMilliseconds(time);
            //        playlists.Add(new Playlist { Id = id, Title = name, IsDynamic = true, DateModified = dateModified });
            //    } while (playlistCursor.MoveToNext());
            //}
            //playlistCursor?.Close();
            //return playlists;
            return(await Task.Run <IList <JukeBoxPlaylist> >(() =>
            {
                IList <JukeBoxPlaylist> playlists = new ObservableCollection <JukeBoxPlaylist>();
                var db = new DataService();
                var playlistList = db.GetAllPlaylist();
                if (playlistList.Count() > 0)
                {
                    foreach (var play in playlistList)
                    {
                        var playlist = new JukeBoxPlaylist
                        {
                            Id = (ulong)play.PlaylistNameId,
                            Title = play.Title,
                            PlaylistSongs = new List <Song>()
                        };
                        playlist.PlaylistSongs = new List <Song>();
                        var playlistModels = db.GetSongPlaylist((int)play.PlaylistNameId);
                        if (playlistModels.Count() > 0)
                        {
                            foreach (var playmodel in playlistModels)
                            {
                                var file = db.GetFileById(playmodel.SongId);
                                if (file != null)
                                {
                                    var song = new Song
                                    {
                                        Id = (int)file.LibraryId,
                                        Title = file.AudioTitle,
                                        Artist = file.ArtistName,
                                        Album = file.Album,
                                        Genre = file.Genre,
                                        Duration = 1000,
                                        Uri = file.AudioData,
                                        Artwork = file.ArtWork,
                                        ImageSource = ImageSource.FromStream(() => new MemoryStream(file.ArtWork))
                                    };
                                    playlist.PlaylistSongs.Add(song);
                                }
                            }
                        }

                        playlists.Add(playlist);
                        if (playlist.PlaylistSongs.Count > 0)
                        {
                            playlist.Artwork = playlist.PlaylistSongs[0].Artwork;
                            playlist.ImageSource = ImageSource.FromStream(() => new MemoryStream(playlist.PlaylistSongs[0].Artwork));
                        }
                        else
                        {
                            playlist.ImageSource = ImageSource.FromFile("playlist.png");
                        }
                    }
                }
                return playlists;
            }));
        }