public PlaylistVideoPageViewModel(string playlistId, Func <IDataSource> getDataSource, IConnectionListener connectionListener) { _connectionListener = connectionListener; _getDataSource = getDataSource; _videoViewModel = new VideoPageViewModel(); _playlistVideosViewModel = new PlaylistVideosViewModel(playlistId, getDataSource, connectionListener, PlaylistVideoItemClick); LoadPlaylistVideos(playlistId); }
protected void PlaylistVideoItemClick(NavigationObject navObject) { if (navObject == null) { return; } _playlistVideosViewModel.SetPlayingVideo(navObject.ViewModel); VideoViewModel = new VideoPageViewModel(navObject.ViewModel.VideoId, _getDataSource, _connectionListener); }
public void SkipPrevious() { var previous = _playlistVideosViewModel.GetPreviousVideo(); if (previous == null) { return; } _playlistVideosViewModel.SetPlayingVideo(previous); VideoViewModel = new VideoPageViewModel(previous.VideoId, _getDataSource, _connectionListener); }
public void SkipNext() { var next = _playlistVideosViewModel.GetNextVideo(); if (next == null) { return; } _playlistVideosViewModel.SetPlayingVideo(next); VideoViewModel = new VideoPageViewModel(next.VideoId, _getDataSource, _connectionListener); }
private void LoadPlaylistVideos(string playlistId) { LayoutHelper.InvokeFromUiThread(async() => { await _playlistVideosViewModel.FirstLoad(); var firstVideo = _playlistVideosViewModel.Items.FirstOrDefault(); if (firstVideo == null) { return; } VideoViewModel = new VideoPageViewModel(firstVideo.VideoId, _getDataSource, _connectionListener); var videoNode = firstVideo as VideoItemViewModel; if (videoNode == null) { return; } videoNode.IsNowPlaying = true; }); }