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); //}); }
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; })); }