/// <summary> /// Unapplies the filters in the FilterViewController, but saves their current status. /// </summary> /// <param name="songBrowserFilterSelected">Used only by the SongBrowser mod. Set this to true when another filter (Favorites/Playlist) was selected.</param> public void UnapplyFilters(bool songBrowserFilterSelected = false) { if (_filterViewController != null) { _filterViewController.UnapplyFilters(false); } if (!SongBrowserTweaks.ModLoaded) { FilterButton.SetButtonText(FilterButtonText); FilterButton.SetButtonTextSize(3f); if ((ClearButton as NoTransitionsButton).selectionState == NoTransitionsButton.SelectionState.Highlighted) { ClearButton.SetButtonText(ClearFilterButtonHighlightedText); } else { ClearButton.SetButtonText(ClearFilterButtonText); } } else if (SongBrowserTweaks.Initialized && !songBrowserFilterSelected) { LevelsViewController.SetData(_lastPack); } }
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 FilterViewControllerSetFilteredSongs(IPreviewBeatmapLevel[] levels) { // filter application should be handled by FilterViewController calling stuff in SongBrowserTweaks if (SongBrowserTweaks.Initialized) { return; } BeatmapLevelPack levelPack = new BeatmapLevelPack("", FilteredSongsPackName, LevelsViewController.levelPack.coverImage, new BeatmapLevelCollection(levels)); LevelsViewController.SetData(levelPack); FilterButton.SetButtonText(FilterButtonAppliedText); FilterButton.SetButtonTextSize(2.3f); ClearButton.SetButtonText(ClearFilterButtonAppliedText); }
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); }