private void _simpleDialog_didFinishEvent(SimpleDialogPromptViewController sender, bool delete) { _freePlayFlowCoordinator.InvokePrivateMethod("DismissViewController", new object[] { _simpleDialog, null, false }); if (delete) { try { SongDownloader.Instance.DeleteSong(new Song(SongLoader.CustomLevels.First(x => x.levelID == _detailViewController.difficultyBeatmap.level.levelID))); List <IBeatmapLevel> levels = _levelListViewController.GetPrivateField <IBeatmapLevel[]>("_levels").ToList(); int selectedIndex = levels.IndexOf(_detailViewController.difficultyBeatmap.level); if (selectedIndex > -1) { int removedLevels = levels.RemoveAll(x => x == _detailViewController.difficultyBeatmap.level); Logger.Log("Removed " + removedLevels + " level(s) from song list!"); if (selectedIndex > 0) { selectedIndex--; } _levelListViewController.SetLevels(levels.ToArray()); TableView listTableView = _levelListViewController.GetPrivateField <LevelListTableView>("_levelListTableView").GetPrivateField <TableView>("_tableView"); listTableView.ScrollToRow(selectedIndex, false); listTableView.SelectRow(selectedIndex, true); } }catch (Exception e) { Logger.Error("Unable to delete song! Exception: " + e); } } }
public void SetLevels(BeatmapCharacteristicSO characteristic) { LevelSO[] levels = null; if (StaticData.SongQueue.SongQueueList != null) { levels = StaticData.SongQueue.SongQueueList.Where(x => x.level != null).Select(x => x.level).ToArray(); } else { levels = _levelCollection.GetLevelsWithBeatmapCharacteristic(characteristic); } _levelListViewController.SetLevels(levels); }
public static void RemoveDuplicates() { _standardLevelListViewController.SetLevels(CurrentLevels.Distinct().ToArray()); }