Ejemplo n.º 1
0
        // Ctor
        public MainViewModel()
        {
            LoadPlaylist();

            CurrentPlaylist = Playlists.FirstOrDefault();
            CurrentTrack    = CurrentPlaylist.TrackList.FirstOrDefault();
        }
Ejemplo n.º 2
0
        async Task ExecuteLoadChannelCommand()
        {
            if (IsBusy)
            {
                return;
            }

            IsBusy = true;

            try {
                Playlists.Clear();
                var items = await VideoRepository.LoadChannelAsync("");

                foreach (var item in items)
                {
                    Playlists.Add(item);
                }
            }
            catch (Exception ex)
            {
                Debug.WriteLine(ex);
            }
            finally
            {
                IsBusy = false;
            }

            CurrentPlayList = Playlists.FirstOrDefault(pl => pl.Id == "PLlZwsUoL6TOaEwk2wkvVrrZnsSiCl7VKb");
        }
        public void RemovePlaylist(string playlistId)
        {
            var playlistToRemove = Playlists.FirstOrDefault(x => x.Id == playlistId);

            if (playlistToRemove != null)
            {
                Playlists.Remove(playlistToRemove);
            }
        }
Ejemplo n.º 4
0
        public SongCollectionManager(StorageConfiguration storageConfiguration)
        {
            _storageConfiguration = storageConfiguration;

            storageConfiguration.OnMusicDirectoryChanged    += StorageConfiguration_OnMusicDirectoryChanged;
            storageConfiguration.OnPlaylistDirectoryChanged += StorageConfiguration_OnPlaylistDirectoryChanged;

            RetrieveSongs();
            RetrievePlaylists();

            SelectedPlaylist = Playlists.FirstOrDefault();
        }
Ejemplo n.º 5
0
        public void ReadXml(XmlReader reader)
        {
            string currentPlaylistPath = reader.GetAttribute("CurrentPlaylistPath");

            try
            {
                Playlists = XmlConverter.Deserialize(new PlaylistCollection(), reader.ReadInnerXml());
            }
            catch (Exception e)
            {
                MobileDebug.Service.WriteEvent("LibraryXmlLoadFail", e, reader.Name, reader.NodeType);
                throw;
            }

            CurrentPlaylist = Playlists.FirstOrDefault(p => p.AbsolutePath == currentPlaylistPath) ?? Playlists.FirstOrDefault();

            Loaded?.Invoke(this, System.EventArgs.Empty);
        }
Ejemplo n.º 6
0
        private void SetCurrentPlaylistAndCurrentSong(string currentSongPath, double currentSongPosition)
        {
            foreach (IPlaylist playlist in Playlists)
            {
                Song currentSong = playlist.Songs.FirstOrDefault(s => s.Path == currentSongPath);

                if (currentSong != null)
                {
                    CurrentPlaylist                     = playlist;
                    CurrentPlaylist.CurrentSong         = currentSong;
                    CurrentPlaylist.CurrentSongPosition = currentSongPosition;
                    return;
                }
            }

            CurrentPlaylist = Playlists.FirstOrDefault();
            if (CurrentPlaylist != null)
            {
                CurrentPlaylist.CurrentSong = CurrentPlaylist.Songs.FirstOrDefault();
            }
        }
Ejemplo n.º 7
0
 public void UndoRemoveMusic(Music music)
 {
     JustRemoved.Remove(music);
     if (Tree.FindTree(music) is FolderTree tree)
     {
         tree.Files.Add(music);
         tree.Sort();
     }
     foreach (var pair in RemovedPlaylist)
     {
         Playlists.FirstOrDefault(p => p.Name == pair.Key)?.Songs.Insert(pair.Value, music);
     }
     if (myFavoratesRemovedIndex > -1)
     {
         MyFavorites.Songs.Insert(myFavoratesRemovedIndex, music);
     }
     if (recentPlayedRemovedIndex > -1)
     {
         RecentPlayed.Insert(recentPlayedRemovedIndex, music.Path);
     }
     RecentPage.RecentAdded.Add(music);
 }
Ejemplo n.º 8
0
 private void OnMessagePlaylistRemoved(MessagePlaylistRemoved message)
 {
     Playlists.Remove(Playlists.FirstOrDefault(a => a.Id == message.Playlist.Id));
 }
Ejemplo n.º 9
0
        /// <summary>
        /// Drop down list changed event to bind the playlist to the view
        /// </summary>
        /// <returns></returns>
        public async Task BindPlaylist(ChangeEventArgs e)
        {
            if (IsRandifying || IsPlaylistLoading)
            {
                return;
            }

            var playlistId = e.Value.ToString();

            try
            {
                IsPlaylistLoading    = true;
                Seconds              = 0;
                NumberOfLoadedTracks = 0;

                Stopwatch = new Stopwatch();
                Stopwatch.Start();
                PlaylistTracks.Clear();

                try
                {
                    var tracks = new List <PlaylistTrack>();

                    CurrentPlaylist = Playlists.FirstOrDefault(o => o.Id == playlistId);
                    var page = await SpotifyService.GetPlaylistTracks(AuthenticationService.User, AuthenticationService.AuthenticationToken, CurrentPlaylist);

                    do
                    {
                        foreach (var playlistTrack in page.Items)
                        {
                            tracks.Add(playlistTrack);
                        }

                        Seconds = Stopwatch.Elapsed.Seconds;
                        NumberOfLoadedTracks = tracks.Count();

                        StateHasChanged();

                        if (page.HasNextPage)
                        {
                            page = await SpotifyService.GetNextPage(page, AuthenticationService.AuthenticationToken);
                        }
                        else
                        {
                            page = null;
                        }
                    }while (page != null);

                    PlaylistTracks = tracks;
                }
                catch (Exception ex)
                {
                    PageException = ex;
                }

                NumberOfLoadedTracks = PlaylistTracks.Count();
                IsPlaylistLoading    = false;
                Stopwatch.Stop();

                StateHasChanged();
            }
            catch (Exception ex)
            {
                PageException = ex;
            }
        }