public void SearchButtonPressed() { if (_searchFlowCoordinator == null) { _searchFlowCoordinator = new GameObject("EnhancedSearchFlowCoordinator").AddComponent <SearchFlowCoordinator>(); _searchFlowCoordinator.BackButtonPressed += DismissSearchFlowCoordinator; _searchFlowCoordinator.SongSelected += SelectSongFromSearchResult; } // TODO?: toggle to search every level pack instead of just the current? IBeatmapLevelPack levelPack = LevelsViewController.GetPrivateField <IBeatmapLevelPack>("_levelPack"); _searchFlowCoordinator.Activate(_freePlayFlowCoordinator, levelPack); Logger.log.Debug("'Search' button pressed."); }
private void SelectSongFromSearchResult(IPreviewBeatmapLevel level) { Logger.log.Debug($"Level selected from search: {level.songName} - {level.songSubName}"); DismissSearchFlowCoordinator(); IPreviewBeatmapLevel[] levels = LevelsViewController.GetPrivateField <IBeatmapLevelPack>("_levelPack").beatmapLevelCollection.beatmapLevels; int row = Array.IndexOf(levels, level); if (row >= 0) { if (_levelsTableViewContainer.GetPrivateField <bool>("_showLevelPackHeader")) { ++row; } _levelsTableView.ScrollToCellWithIdx(row, TableViewScroller.ScrollPositionType.Beginning, false); _levelsTableView.SelectCellWithIdx(row); } LevelsViewController.HandleLevelPackLevelsTableViewDidSelectLevel(null, level); }