public async Task PlayAutoPlaylist(AutoPlaylist playlist, Song playlistSong, GroupInfo groupInfo = null) { if (groupInfo == null) { groupInfo = AutoPlaylistSongViewModel.CreateGroupInfo(playlist, Settings.ShowOfflineOnly); } LogManager.Shared.LogPlayback(playlist); SendEndNotification(ScrobbleManager.PlaybackEndedReason.Skipped); Settings.CurrentPlaybackContext = new PlaybackContext { IsContinuous = false, Type = PlaybackContext.PlaybackType.Playlist, ParentId = playlist.Id, }; Pause(); var song = playlistSong; var info = groupInfo.Clone(); await Task.WhenAll( NativePlayer.PlaySong(song), Task.Run(async() => { string query = $"select Id from Song {info.FilterString(true)} {info.OrderByString(true)} {info.LimitString()}"; var queryInfo = info.ConvertSqlFromNamed(query); await SetupCurrentPlaylist(queryInfo.Item1, song?.Id ?? "", queryInfo.Item2); })); if (song == null) { song = GetSong(CurrentSongIndex); await NativePlayer.PlaySong(song); } await PrepareNextTrack(); }
public AutoPlaylistSongsViewController(AutoPlaylist playlist) { model = new AutoPlaylistSongViewModel { Playlist = playlist, }; Title = model.Title; }