1
0
mirror of https://github.com/ppy/osu.git synced 2024-11-18 07:32:54 +08:00
Commit Graph

2447 Commits

Author SHA1 Message Date
Dean Herbert
0d3ac4fd9c Fix delete local scores crashing the game 2022-01-28 15:54:53 +09:00
Dean Herbert
b7d8c9bf06 Fix a couple of cases of incorrect equality checks in the case both values are null 2022-01-28 14:29:56 +09:00
Jamie Taylor
f59828e2d9
Add audio feedback to song select 'random' 2022-01-28 13:43:37 +09:00
Bartłomiej Dach
04d6ca59a3
Merge branch 'master' into song-select-scroll-position-during-delete 2022-01-27 20:46:19 +01:00
Dean Herbert
7af23328a4
Merge branch 'master' into ruleset-ordering-fix 2022-01-27 21:46:03 +09:00
Dean Herbert
3ae5973ab7 Fix compilation error due to commit split 2022-01-27 17:08:31 +09:00
Dean Herbert
449e9bcf5c Ensure beatmap carousel scroll position is maintained during deletion operations 2022-01-27 16:52:02 +09:00
Dean Herbert
0a45aa80cb Remove unnecessary double-schedule in UpdateBeatmapSet 2022-01-27 16:52:02 +09:00
Dean Herbert
5637fd64d6 Perform ordering using IComparable instead 2022-01-27 15:59:20 +09:00
Dean Herbert
5288eedd31 Update all usages of RulesetID and Ruleset.ID to use Ruleset.OnlineID 2022-01-27 15:38:03 +09:00
Dean Herbert
f30d63107a Add SortID to RulesetInfo to allow stable ordering of rulesets for display 2022-01-27 15:35:16 +09:00
Dean Herbert
f70e10e8a4 Fix ruleset filter matching using OnlineID instead of ShortName 2022-01-27 01:25:57 +09:00
Derrick Timmermans
873d367615
Fix custom rulesets not being able to convert maps 2022-01-26 15:51:39 +01:00
Dean Herbert
473c4d00ca Fix grouped difficulty icons using incorrect lookup for ruleset grouping 2022-01-26 18:38:44 +09:00
Dean Herbert
d7342880f5 Update remaining cases of clashes with realm.Write and realm.RegisterForNotifications 2022-01-25 13:09:48 +09:00
Dean Herbert
e23b10e6a5 Update remaining cases of clashing variable name in realm.Run(realm.. 2022-01-25 13:04:05 +09:00
Dean Herbert
6eb2c28e41 Rename RealmContextFactory to RealmAccess 2022-01-24 20:38:07 +09:00
Dean Herbert
40aa873190 Rename register methods to better explain their purpose 2022-01-24 14:37:36 +09:00
Dean Herbert
e9e3e024a1 Update all usages of QueryAsyncWithNotifications to use new Register pathway 2022-01-23 20:28:04 +09:00
Dean Herbert
61cef42be9 Proof of concept realm subscriptions via Register 2022-01-23 20:28:04 +09:00
Dean Herbert
1f157d729d Update existing subscriptions to new style
Fix missing detach calls in `MusicController`
2022-01-21 20:05:03 +09:00
Dean Herbert
8f1dfa33a2 Merge branch 'master' into realm-context-use-update-when-feasible 2022-01-21 18:03:09 +09:00
Dean Herbert
114c9e8c1f Update all usages of CreateContext to use either Run or Write 2022-01-21 17:27:08 +09:00
Dean Herbert
3bcdce128c Use dictionary add for safety 2022-01-21 15:29:21 +09:00
Dean Herbert
ff4f40db8a Merge branch 'master' into carousel-performance-n 2022-01-21 15:27:42 +09:00
Dan Balasescu
c4f24ef96c
Merge pull request #16542 from peppy/carousel-search-performance-less-simple
Avoid performing full filter when updating carousel beatmap sets
2022-01-21 15:05:30 +09:00
Dean Herbert
bed7b69464 Apply NRT to CarouselGroup 2022-01-21 13:26:29 +09:00
Dean Herbert
5b24800b0e Avoid applying filter in UpdateBeatmapSet flow 2022-01-21 13:26:25 +09:00
Dean Herbert
45bf35c425 Avoid performing keyword filtering at song select unless keywords are specified 2022-01-21 12:26:24 +09:00
Dean Herbert
ba31ddee01 Revert beatmapSets reference to fix tests
New version changed order.
2022-01-21 00:34:12 +09:00
Dean Herbert
80f3a67876 Use for instead of foreach to avoid enumerator overhead 2022-01-20 22:21:00 +09:00
Dean Herbert
0b93f3c88f Add <Guid,CarouselBeatmapSet> dictionary to speed up update operations in carousel 2022-01-20 22:12:49 +09:00
Dean Herbert
9a864267d2 Fix CarouselGroupEagerSelect not invoking subclassed AddChild from AddChildren calls 2022-01-20 21:57:16 +09:00
Dean Herbert
a8ce2c5edf Detach before sending BeatmapSetInfo to any handling method 2022-01-20 21:14:10 +09:00
Dean Herbert
b1cf3befa6 Fix incorrect query in comment 2022-01-20 18:36:20 +09:00
Dean Herbert
3ba712703b Add a note about hidden beatmap check 2022-01-20 17:50:17 +09:00
Dean Herbert
1dabf6c8a5 Fix BeatmapCarousel signalling it is finished loading before catching up on realm changes 2022-01-20 16:39:42 +09:00
Dean Herbert
6c46fd6931 Fix some failing tests due to realm beatmaps overwriting test beatmaps 2022-01-20 00:19:16 +09:00
Dean Herbert
2789986699 Use asynchronous loading for beatmap carousel again 2022-01-19 18:15:43 +09:00
Dean Herbert
200fcb6f83 Detach beatmap set before checking hidden state 2022-01-19 16:59:49 +09:00
Dan Balasescu
581873f944
Merge pull request #16497 from peppy/top-local-rank-optimisation
Rewrite `TopLocalRank` to use realm subscriptions
2022-01-19 14:22:12 +09:00
Dean Herbert
9be5bf38c6 Simplify binding/invalidation in TopLocalRank 2022-01-19 13:20:52 +09:00
Dean Herbert
7f65f3a47f Remove all usage of BaseDifficulty (and access Difficulty instead) 2022-01-18 22:57:39 +09:00
Dean Herbert
f5b8653491 Add spaces to query string 2022-01-18 19:28:09 +09:00
Dean Herbert
27ea37c690 Rewrite TopLocalRank to use realm subscriptions
This addresses the number one performance concern with realm (when
entering song select). Previous logic was causing instantiation and
property reads of every score in the database due to the `AsEnumerable`
specfication.
2022-01-18 18:17:53 +09:00
Dean Herbert
11ca1b6e7b Remove one more usage of IsManaged which could potentially go wrong 2022-01-17 13:40:27 +09:00
Bartłomiej Dach
03e4ec4214
Merge branch 'master' into realm-integration/score-and-beatmaps 2022-01-15 14:45:42 +01:00
Susko3
19467e58c1 Remove unused params from BDL methods 2022-01-15 01:06:39 +01:00
Dean Herbert
54804ebfbd Fix delete/clear scores buttons not working 2022-01-13 18:38:38 +09:00
Dean Herbert
069d6d2954 Remove pointless compatibility parameter BeatmapSetInfoID 2022-01-13 18:02:10 +09:00
Dean Herbert
6025fe325d Fix filter criteria not being applied after carousel loads new beatmap sets 2022-01-13 15:08:51 +09:00
Dean Herbert
b2d09b7b10 Fix further warnings 2022-01-12 23:42:12 +09:00
Dean Herbert
51251e3204 Fix CI reported warnings 2022-01-12 22:39:00 +09:00
Dean Herbert
ef0f794fd6 Remove stay newline 2022-01-12 18:13:14 +09:00
Dean Herbert
eb70a1eeb7 Replace compatibility properties with direct references 2022-01-12 18:13:14 +09:00
Dean Herbert
34aa1bf21d Sanitise and remove some usages of Detach which are no longer required 2022-01-12 17:49:11 +09:00
Dean Herbert
dc3730f334 Fix song select import popup not always showing 2022-01-12 17:49:11 +09:00
Dean Herbert
0aff1c232b Fix deleted/hidden carousel queries 2022-01-12 17:49:11 +09:00
Dean Herbert
7dba3c3551 Fix most remaining test issues 2022-01-12 17:49:11 +09:00
Dean Herbert
58f8aae731 Fix one missed instance of GetResultSafely 2022-01-12 17:49:11 +09:00
Dean Herbert
02d0ca2741 Fix protected beatmaps showing up in the song select carousel 2022-01-12 17:49:10 +09:00
Dean Herbert
41d90cd0b5 Fix beatmap carousel test failures 2022-01-12 17:49:10 +09:00
Dean Herbert
e74a5022c9 Fix multiple tests via null checks and changing ToLive to Detach
flow
2022-01-12 17:00:17 +09:00
Dean Herbert
6919df18fa Fix incorrect ordering and grouping of difficulties at song select 2022-01-12 17:00:17 +09:00
Dean Herbert
2b8706b6ce Detach and reattach scores to make work 2022-01-12 17:00:16 +09:00
Dean Herbert
60d2de8a3b Fix potential nullref when song select filters to no results 2022-01-12 17:00:16 +09:00
Dean Herbert
de3a338d02 Update realm queries to use Filter to allow for indirect property filtering 2022-01-12 17:00:16 +09:00
Dean Herbert
8461eaab46 BeatmapSetInfo detach support 2022-01-12 17:00:16 +09:00
Dean Herbert
3811bd8520 Fix some null inspections 2022-01-12 17:00:16 +09:00
Dean Herbert
33060990b7 Temporarily disable WorkingBeatmapCache and fix multiple invalid data flows 2022-01-12 17:00:16 +09:00
Dean Herbert
4295815c7d Fix invalid equality comparison in BeatmapLeaderboard 2022-01-12 17:00:16 +09:00
Dean Herbert
6d60aa7d9c Replace TopLocalRank event flow with realm subscriptions 2022-01-12 17:00:16 +09:00
Dean Herbert
c9257e9ecc Fix missing disposal of realm subscriptions in BeatmapCarousel 2022-01-12 17:00:16 +09:00
Dean Herbert
5dc497e949 Replace BeatmapLeaderboard event flow with realm subscriptions 2022-01-12 17:00:16 +09:00
Dean Herbert
db05727ec4 Remove unused includeProtected parameter 2022-01-12 17:00:16 +09:00
Dean Herbert
3152d2d8a0 "Update" BeatmapCarousel 2022-01-12 17:00:16 +09:00
Dean Herbert
00e3af3366 Update model manager and many related classes to get things compiling again 2022-01-12 17:00:00 +09:00
Dean Herbert
4f6a05ce3d Reimplement all query methods 2022-01-12 16:57:27 +09:00
Dean Herbert
2a4bee61dd Update many score-related classes to move closer to being able to persist to realm 2022-01-12 16:57:27 +09:00
Dean Herbert
b8cd3cdbbc Various updates to ruleset and primary key usages to move closer to realm support 2022-01-12 16:57:13 +09:00
Dean Herbert
e6fdd0e969 Miscellaneous fixes that don't fit elsewhere 2022-01-12 16:39:36 +09:00
Dean Herbert
213d89b479 Update null fallback cases involving OnlineID 2022-01-12 16:39:36 +09:00
Dan Balasescu
af9fad00c3 Merge branch 'master' into async-deadlock-safety 2022-01-10 16:11:09 +09:00
Dean Herbert
02d8a6359a Update FilterMatchingTest and filter code to use ruleset's OnlineID
The tests were relying on the `RulesetID` being set to 0 in the example
beatmap, even though the ruleset *instance* was set to ID 5.

This explicitly adds that 0 value to show intent, and also removes the
incorrect specification of 5 (which would cause the convert filter tests
to fail).

Also updates the filter code to use `OnlineID`, which is required in
realm changes.
2022-01-10 12:30:34 +09:00
Dean Herbert
2ef791069c Fix typon on AdvancedStats 2022-01-07 17:33:38 +09:00
Dean Herbert
00177a3ae1 Update usages to new naming 2022-01-06 22:54:43 +09:00
Dean Herbert
3ea7588a91 Update continuation usages to use GetCompletedResult 2022-01-06 22:53:07 +09:00
Dean Herbert
73b40e6833 Replace usage of .Result with .WaitSafelyForResult 2022-01-04 11:51:41 +09:00
Dean Herbert
5b3a154431 Fix potential errors thrown during beatmap leaderboard display due to incorrect beatmap reference
Specifically, the global `BeatmapInfo` is referenced inside the web
request's success callback, and used to attempt population via methods
which expect non-null beatmap inputs.

Closes #16211.
2021-12-22 17:24:48 +09:00
Dean Herbert
9ac8e6c81c Add missing null check before attempting to populate bpm info 2021-12-10 13:53:48 +09:00
Dean Herbert
e7e61cd9ab Fix potential crash due to children being mutated after disposal
This is a bit of an unfortunate edge case where the unbind-on-disposal
doesn't help, since the binding is happening in BDL, and the usage is in
a nested `LoadComponentAsync` call. Combine those and you have a recipe
for disaster.
2021-12-09 18:52:00 +09:00
Dean Herbert
8d9c37a825 Merge branch 'master' into primary-key-consistency 2021-12-08 21:34:38 +09:00
Dean Herbert
1eed2436e6 Clean up unused resolved properties 2021-12-03 18:49:49 +09:00
Dean Herbert
7a3c69544b
Merge pull request #15799 from smoogipoo/fix-songselect-test-failures-2
Fix SongSelect-related test failures
2021-11-25 23:01:06 +09:00
Dan Balasescu
09dd054283 Fix SongSelect-related test failures 2021-11-25 21:11:13 +09:00
Dean Herbert
79459c1aeb Fix typo in class and variable names 2021-11-25 17:12:15 +09:00
Dean Herbert
9dcb20a821 Rename Stable to Legacy and add xmldoc 2021-11-25 15:39:05 +09:00
Dean Herbert
183b95cbc2 Rename BeatmapSetOnlineStatus to BeatmapOnlineStatus
This variable is used at more than just a set level.
2021-11-24 18:42:49 +09:00
Dean Herbert
729f681938 Update cases where equality can be used instead of primary key equality 2021-11-24 12:49:57 +09:00
Bartłomiej Dach
15feb17da8
Change difficulty cache storage type to nullable
The recent changes related to adding support for working beatmap load
cancellation exposed a flaw in the beatmap difficulty cache. With the
way the difficulty computation logic was written, any error in the
calculation process (including beatmap load timeout, or cancellation)
would result in a 0.00 star rating being permanently cached in memory
for the given beatmap.

To resolve, change the difficulty cache's return type to nullable.
In failure scenarios, `null` is returned, rather than
`default(StarDifficulty)` as done previously.
2021-11-20 17:00:50 +01:00