Ejemplo n.º 1
0
 private void StreamManagerOnError(object sender, EventArgs eventArgs)
 {
     _torrentStreamService.Stop();
     _dispatcherUtility.Run(() =>
     {
         CurtainPrompt.ShowError("Problem starting playback.");
         _navigationService.GoBack();
     });
 }
Ejemplo n.º 2
0
 private void BootStrapper_BackRequested(object sender, HandledEventArgs e)
 {
     e.Handled = Handled;
     foreach (IAction item in Actions)
     {
         _dispatcher.Run(() => item.Execute(sender, null));
     }
 }
Ejemplo n.º 3
0
        public void AddTrack(Track track)
        {
            var existing = Find(track) != null;

            if (existing)
            {
                throw new LibraryException("Track already saved.");
            }

            track.Id = 0;
            _sqLiteConnection.Insert(track);

            _dispatcherUtility.Run(() =>
            {
                CreateRelatedObjects(track);
                track.IsFromLibrary = true;
                Tracks.Add(track);
            });
        }
Ejemplo n.º 4
0
        private void OnCollectionChanged(object sender, NotifyCollectionChangedEventArgs arg)
        {
            _dispatcherUtility.Run(() =>
            {
                object item;
                var removed = false;

                switch (arg.Action)
                {
                case NotifyCollectionChangedAction.Reset:
                    ResetSortedCollections();
                    return;

                case NotifyCollectionChangedAction.Add:
                    item = arg.NewItems[0];
                    break;

                default:
                    item    = arg.OldItems[0];
                    removed = true;
                    break;
                }

                if (item is Track)
                {
                    var song = item as Track;

                    if (removed)
                    {
                        TracksByDateAdded.Remove(song);
                    }
                    else
                    {
                        TracksByDateAdded.Insert(0, song);
                    }

                    UpdateSortedCollection(song, removed, song.Title, () => TracksByTitle);
                    UpdateSortedCollection(song, removed, song.DisplayArtist, () => TracksByArtist);
                    UpdateSortedCollection(song, removed, song.AlbumTitle, () => TracksByAlbum);
                }
                else if (item is Artist)
                {
                    var artist = item as Artist;

                    if (removed)
                    {
                        artist.Tracks.CollectionChanged -= TracksOnCollectionChanged;
                    }
                    else
                    {
                        artist.Tracks.CollectionChanged += TracksOnCollectionChanged;
                    }

                    if (!artist.IsSecondaryArtist || removed)
                    {
                        UpdateSortedCollection(artist, removed, artist.Name, () => ArtistsByName);
                    }
                }
                else if (item is Album)
                {
                    var album = item as Album;

                    if (removed)
                    {
                        AlbumsByDateAdded.Remove(album);
                    }
                    else
                    {
                        AlbumsByDateAdded.Insert(0, album);
                    }

                    UpdateSortedCollection(album, removed, album.Title, () => AlbumsByTitle);
                    UpdateSortedCollection(album, removed, album.Artist.Name, () => AlbumsByArtist);
                }
            });
        }