예제 #1
0
        private async void PlayAll(object sender, RoutedEventArgs e)
        {
            var queueSongs = App.Locator.CollectionArtist.Artist.Songs.ToList();

            if (queueSongs != null && queueSongs.Count > 0)
            {
                await PlayAndQueueHelper.PlaySongsAsync(queueSongs[0], queueSongs, true);
            }
        }
        //private int _prevIndex = -1;
        //private async void SongsOnCollectionChanged(object sender, NotifyCollectionChangedEventArgs e)
        //{
        //    if (e.Action == NotifyCollectionChangedAction.Add && _prevIndex != -1)
        //    {
        //        //an item was move using reorder
        //        await _service.MovePlaylistFromToAsync(Playlist, _prevIndex, e.NewStartingIndex);
        //    }

        //    if (e.Action == NotifyCollectionChangedAction.Remove)
        //        _prevIndex = e.OldStartingIndex;
        //    else
        //        _prevIndex = -1;
        //}


        private async void SongClickExecute(ItemClickEventArgs e)
        {
            var queueSongs  = _playlist.Songs.Select(p => p.Song).ToList();
            var clickedsong = (e.ClickedItem as PlaylistSong).Song;

            if (queueSongs != null && queueSongs.Count > 0)
            {
                await PlayAndQueueHelper.PlaySongsAsync(clickedsong, queueSongs, true);
            }
        }
예제 #3
0
 private async void ShuffleAll(object sender, RoutedEventArgs e)
 {
     App.Locator.PBar.IsEnable = true;
     await DispatcherHelper.RunAsync(async() =>
     {
         var list = App.Locator.CollectionPlaylist.Playlist.Songs.Select(p => p.Song).ToList().Shuffle().ToList();
         await PlayAndQueueHelper.PlaySongsAsync(list[0], list);
         App.Locator.PBar.IsEnable = false;
     });
 }
예제 #4
0
        private async void SongClickExecute(ItemClickEventArgs e)
        {
            Song s          = e.ClickedItem as Song;
            var  queueSongs = Artist.Songs.ToList();
            int  index      = queueSongs.IndexOf(s);

            queueSongs = queueSongs.Skip(index).ToList();
            if (queueSongs != null && queueSongs.Count > 0)
            {
                await PlayAndQueueHelper.PlaySongsAsync(s, queueSongs, true);
            }
        }
예제 #5
0
        private async void HistorySongClick(object sender, ItemClickEventArgs e)
        {
            Song s          = e.ClickedItem as Song;
            var  queueSongs = App.Locator.HomePage.History.ToList();
            int  index      = queueSongs.IndexOf(s);

            queueSongs = queueSongs.Skip(index).ToList();

            //var queueSongs = App.Locator.HomePage.History;
            if (queueSongs != null && queueSongs.Count > 0)
            {
                await PlayAndQueueHelper.PlaySongsAsync(s, queueSongs, true);
            }
        }
예제 #6
0
        private async void songsSearchListClicked(object sender, ItemClickEventArgs e)
        {
            await DispatcherHelper.RunAsync(async() =>
            {
                SheetUtility.CloseSearchCollectionPage();

                Song s         = e.ClickedItem as Song;
                var queueSongs = App.Locator.CollectionSearch.Songs.ToList();
                int index      = queueSongs.IndexOf(s);
                queueSongs     = queueSongs.Skip(index).ToList();

                if (queueSongs != null && queueSongs.Count > 0)
                {
                    await PlayAndQueueHelper.PlaySongsAsync(s, queueSongs, true);
                }
            });
        }
예제 #7
0
        async void PlayClicked(object sender, RoutedEventArgs e)
        {
            if (SongList.SelectedItems.Count > 0)
            {
                var tracks = SongList.SelectedItems.Cast <Song>().ToList();
                await PlayAndQueueHelper.PlaySongsAsync(tracks[0], tracks, true);

                HardwareButtonsOnBackPressed(null, null);
                if (tracks != null)
                {
                    tracks = null;
                }
            }
            else
            {
                ToastManager.ShowError("Select an item first.");
            }
        }
예제 #8
0
        //add to queue
        private async void AddToQueueFlyoutItem_OnClick(object sender, RoutedEventArgs e)
        {
            if (App.Locator.Player.IsPlayerActive)
            {
                if (!_song.IsMatched)
                {
                    ToastManager.ShowError("Can not add.");
                    return;
                }

                await PlayAndQueueHelper.AddToQueueAsync(_song);
            }
            else
            {
                ToastManager.ShowError("Play any song before.");
            }


            //var currentTrack = App.Locator.Player.CurrentSong;
            //var queue = App.Locator.CollectionService.CurrentPlaybackQueue;
            //if (currentTrack.SongId == _song.Id) return;
            //if (queue.FirstOrDefault(p => p.SongId == _song.Id) != null) return;
            //if (App.Locator.Player.IsPlayerActive)
            //{
            //    App.Locator.AudioPlayerHelper.AddToQueueAsync(_song);
            //    QueueSong newQueueSong = new QueueSong
            //    {
            //        SongName = _song.Name,
            //        ArtistName = _song.ArtistName,
            //        AlbumUri = _song.Album.Artwork.Uri,
            //        IsStreaming = _song.IsStreaming,
            //        AudioUrl = _song.AudioUrl,
            //        SongId = _song.Id
            //    };

            //    MessageService.SendMessageToBackground(new AddToPlaylistMessage(new List<QueueSong> { newQueueSong }));
            //}
        }
예제 #9
0
 async void PlayClick(object sender, RoutedEventArgs e)
 {
     await PlayAndQueueHelper.PlaySongAsync(_song);
 }
예제 #10
0
 private void DatabaseExceptionHelper(object sender, bool e)
 {
     PlayAndQueueHelper.Error();
     MessageHelpers.ShowError("Unable to open databse file. We suggest reinstall Airstem.", "Database Error!!!");
 }