mirror of
https://github.com/ppy/osu.git
synced 2024-11-06 06:57:39 +08:00
Merge pull request #20292 from peppy/fix-preix-matching-status
Fix song select status prefix matching no longer working
This commit is contained in:
commit
024f7991ad
@ -191,6 +191,16 @@ namespace osu.Game.Tests.NonVisual.Filtering
|
||||
Assert.IsTrue(filterCriteria.BeatDivisor.IsUpperInclusive);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TestPartialStatusMatch()
|
||||
{
|
||||
const string query = "status=r";
|
||||
var filterCriteria = new FilterCriteria();
|
||||
FilterQueryParser.ApplyQueries(filterCriteria, query);
|
||||
Assert.AreEqual(BeatmapOnlineStatus.Ranked, filterCriteria.OnlineStatus.Min);
|
||||
Assert.AreEqual(BeatmapOnlineStatus.Ranked, filterCriteria.OnlineStatus.Max);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TestApplyStatusQueries()
|
||||
{
|
||||
|
@ -122,14 +122,17 @@ namespace osu.Game.Screens.Select
|
||||
|
||||
private static bool tryParseEnum<TEnum>(string value, out TEnum result) where TEnum : struct
|
||||
{
|
||||
if (Enum.TryParse(value, true, out result)) return true;
|
||||
// First try an exact match.
|
||||
if (Enum.TryParse(value, true, out result))
|
||||
return true;
|
||||
|
||||
// Then try a prefix match.
|
||||
string? prefixMatch = Enum.GetNames(typeof(TEnum)).FirstOrDefault(name => name.StartsWith(value, true, CultureInfo.InvariantCulture));
|
||||
|
||||
if (prefixMatch == null)
|
||||
return false;
|
||||
|
||||
return Enum.TryParse(value, true, out result);
|
||||
return Enum.TryParse(prefixMatch, true, out result);
|
||||
}
|
||||
|
||||
private static GroupCollection? tryMatchRegex(string value, string regex)
|
||||
|
Loading…
Reference in New Issue
Block a user