示例#1
0
 internal void HandleDidPressDownload(BeatSaverSharp.Beatmap song, Texture2D cover)
 {
     Plugin.log.Info("Download pressed for song: " + song.Metadata.SongName);
     //    Misc.SongDownloader.Instance.DownloadSong(song);
     _songDetailView.UpdateDownloadButtonStatus();
     _downloadQueueView.EnqueueSong(song, cover);
 }
示例#2
0
        private void HandleDidPressDownload(Beatmap song, Sprite cover)
        {
            Plugin.Log.Info($"Download pressed for song: {song.Metadata.SongName}");

            _songDetailView.UpdateDownloadButtonStatus();
            _downloadQueueView.EnqueueSong(song, cover);
        }
示例#3
0
 private void _songDetailViewController_downloadButtonPressed(Song song)
 {
     if (!SongDownloader.Instance.IsSongDownloaded(song))
     {
         _downloadQueueViewController.EnqueueSong(song, true);
         _songDetailViewController.SetDownloadState(DownloadState.Downloading);
     }
     else
     {
         _simpleDialog.Init("Delete song", $"Do you really want to delete \"{song.songName} {song.songSubName}\"?", "Delete", "Cancel",
                            (selectedButton) =>
         {
             DismissViewController(_simpleDialog, null, false);
             if (selectedButton == 0)
             {
                 DeleteSong(_lastSelectedSong);
             }
         });
         PresentViewController(_simpleDialog, null, false);
     }
 }
        public IEnumerator DownloadPlaylist(Playlist playlist)
        {
            PlaylistsCollection.MatchSongsForPlaylist(playlist, true);

            List <PlaylistSong> needToDownload = playlist.songs.Where(x => x.level == null).ToList();

            Logger.Log($"Need to download {needToDownload.Count} songs");

            _downloadingPlaylist = true;
            foreach (var item in needToDownload)
            {
                Song beatSaverSong = null;

                if (String.IsNullOrEmpty(playlist.customArchiveUrl))
                {
                    Logger.Log("Obtaining hash and url for " + item.key + ": " + item.songName);
                    yield return(GetInfoForSong(playlist, item, (Song song) => { beatSaverSong = song; }));
                }
                else
                {
                    string archiveUrl = playlist.customArchiveUrl.Replace("[KEY]", item.key);

                    beatSaverSong = new Song()
                    {
                        songName            = item.songName,
                        id                  = item.key,
                        downloadingProgress = 0f,
                        hash                = (item.levelId == null ? "" : item.levelId),
                        downloadUrl         = archiveUrl
                    };
                }

                if (beatSaverSong != null && !SongLoader.CustomLevels.Any(x => x.levelID.Substring(0, 32) == beatSaverSong.hash.ToUpper()))
                {
                    _downloadQueueViewController.EnqueueSong(beatSaverSong, true);
                }
            }
            _downloadingPlaylist = false;
        }
 private void _songDetailViewController_downloadButtonPressed(Song song)
 {
     if (!SongDownloader.Instance.IsSongDownloaded(song))
     {
         _downloadQueueViewController.EnqueueSong(song, true);
         _songDetailViewController.SetDownloadState(DownloadState.Downloading);
     }
     else
     {
         _simpleDialog.Init("Delete song", $"Do you really want to delete \"{ song.songName} {song.songSubName}\"?", "Delete", "Cancel");
         _simpleDialog.didFinishEvent -= (SimpleDialogPromptViewController sender, bool delete) => { DismissViewController(_simpleDialog, null, false); if (delete)
                                                                                                     {
                                                                                                         DeleteSong(song);
                                                                                                     }
         };
         _simpleDialog.didFinishEvent += (SimpleDialogPromptViewController sender, bool delete) => { DismissViewController(_simpleDialog, null, false); if (delete)
                                                                                                     {
                                                                                                         DeleteSong(song);
                                                                                                     }
         };
         PresentViewController(_simpleDialog, null, false);
     }
 }