public void ExecuteManipulateSliderCommand(EpisodeViewModel episode)
 {
     if (m_MediaPlayer.IsEpisodePlaying(episode.Data))
     {
         episode.Data.PostEvent(EpisodeEvent.Scan);
     }
 }
 public void ExecuteReleaseSliderCommand(EpisodeViewModel episode, long sliderValue)
 {
     if (m_MediaPlayer.IsEpisodePlaying(episode.Data))
     {
         episode.Data.Position = m_MediaPlayer.Position = TimeSpan.FromTicks(sliderValue);
         episode.Data.PostEvent(EpisodeEvent.Play);
     }
 }
Beispiel #3
0
 protected override void UpdateFields()
 {
     UpdateFields(null);
     if (m_MediaPlayer != null && m_MediaPlayer.NowPlaying != null)
     {
         NowPlaying = new EpisodeViewModel(m_MediaPlayer.NowPlaying, ServiceContext);
     }
     ShowNowPlaying = NowPlaying != null;
 }
        public async void ExecuteEpisodeRightClickedCommand(EpisodeViewModel episode, Point point)
        {
            PopupMenu popupMenu = new PopupMenu();

            if (episode.Played)
            {
                popupMenu.Commands.Add(new UICommand()
                {
                    Id = 1, Label = "Mark as unplayed"
                });
            }
            else
            {
                popupMenu.Commands.Add(new UICommand()
                {
                    Id = 2, Label = "Mark as played"
                });
            }

            if (episode.Data.State is EpisodeStateDownloaded)
            {
                popupMenu.Commands.Add(new UICommand()
                {
                    Id = 3, Label = "Download again"
                });
            }
            try
            {
                IUICommand selectedCommand = await popupMenu.ShowAsync(point);

                if (selectedCommand == null)
                {
                    return;
                }
                switch ((int)selectedCommand.Id)
                {
                case 1:
                    episode.Data.Played = false;
                    UIThread.RunInBackground(() => Data.Store());
                    break;

                case 2:
                    episode.Data.Played = true;
                    UIThread.RunInBackground(() => Data.Store());

                    break;

                case 3:
                    Task t = episode.Data.PostEvent(EpisodeEvent.Refresh);
                    break;
                }
            }
            catch (Exception ex)
            {
                Tracer.TraceError("PodcastPage.xaml.Grid_RightTapped() - Error occured displaying popup menu {0}", ex);
            }
        }
 private void UpdateVisibleEpisodes()
 {
     UIThread.Dispatch(() =>
     {
         m_Episodes.Clear();
         int i = 0;
         lock (m_AllEpisodes)
         {
             foreach (Episode episode in m_AllEpisodes)
             {
                 if (i >= m_NumEpisodesToShow)
                 {
                     break;
                 }
                 EpisodeViewModel viewModel = new EpisodeViewModel(episode, ServiceContext);
                 viewModel.Index            = i++;
                 viewModel.Data.UpdateDownloadStatus();
                 m_Episodes.Add(viewModel);
             }
         }
     });
 }