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