Add language selection to first run overlay
Ensure that multiple `BeatmapSetInfo` with same `OnlineID` don't cause import failures
BeatmapSetInfo
Really this shouldn't happen but I managed to make it happen. Until this comes up again in a way that matters, let's just fix the LINQ crash from `SingleOrDefault`. I've tested this to work as expected in the broken scenario.
LanguageButton.Selected
BindValueChanged
PopOut
CollectionManager
Disable tournament client "save changes" button when there's no changes to save
ContextMenuItems
GetBeatmapSetRequest
Required for `BeatmapSetOverlay` lookups to work under dummy API. Not 100% sure about it, but works for now.
Fix potential crash when exiting editor test mode
Update framework
Add "Single Tap" mod for osu! ruleset, abstract Alternate & Single Tap into InputBlockingMod
Add "last played" sort mode to song select
Fix audio and background file equality incorrectly comparing `BeatmapSet.Hash`
Add log output for custom storage usage