Commit Graph

48084 Commits

Author SHA1 Message Date
93c78253d6 Add synchronous fetch flow to BeatmapOnlineLookupQueue
The async flow doesn't work great with the realm import process. We
might be able to improve on this going forward, but for the time being
adding a synchronous path seems safest.

After all, we are already an an asynchronous (dedicated) thread pool at
this point.
2022-01-13 16:36:54 +09:00
bdb2979b2e Remove async from Populate method 2022-01-13 16:36:54 +09:00
70c107b434 Remove pointless override method in RealmArchiveModelManager 2022-01-13 16:27:12 +09:00
88145dedf1 Remove oudated comments 2022-01-13 15:27:43 +09:00
6025fe325d Fix filter criteria not being applied after carousel loads new beatmap sets 2022-01-13 15:08:51 +09:00
0a133c7e97 Fix typo in comment in IntroScreen 2022-01-13 13:47:23 +09:00
dcc354aa7c Fix deleted scores not being cleaned up on next startup 2022-01-13 13:40:09 +09:00
7a81fe19f6 Bump realm schema version to allow upgrades 2022-01-13 13:28:46 +09:00
b77cb344d5 Use ctor rather than MemberwiseClone to guarantee a safer clone of BeatmapDifficulty 2022-01-13 13:23:41 +09:00
86b2ac3217 Remove unnecessary Ruleset null check in BeatmapDifficultyCache 2022-01-13 13:19:49 +09:00
7baff18764 Add back PerformRead return safety by checking IsManaged status of returned data 2022-01-13 13:14:44 +09:00
085893c9b4 Fix stray bracket 2022-01-13 13:03:57 +09:00
65dd80e6f6 Sanitise mods / statistics cache logic in ScoreInfo 2022-01-13 12:59:16 +09:00
1a29098f3b Change default value and add comment explaining why skins are never "locally available" 2022-01-13 12:50:18 +09:00
ebe8ba3c3c Fix unintended change to dotsetting 2022-01-13 12:47:11 +09:00
e1f5acd689 Remove names from user dictionary 2022-01-13 12:40:19 +09:00
24f02cab8a Merge pull request #16436 from smoogipoo/fix-intermittent-tests 2022-01-13 09:45:22 +09:00
a18b283626 Revert identifier typo bump 2022-01-12 15:52:33 -08:00
66773f6d7d Use comments to disable identifier typos instead 2022-01-12 15:49:28 -08:00
5185f6010e Fix missed identifier typos 2022-01-12 15:46:20 -08:00
b245ffefc1 Merge remote-tracking branch 'upstream/master' into fix-remaining-identifier-names 2022-01-12 15:05:07 -08:00
672c1d36dc Fix intermitten screen navigation tests 2022-01-13 05:52:04 +09:00
afce976f08 Fix oversubscription to StartTimeBindable.ValueChanged 2022-01-12 19:29:49 +01:00
07fc772c24 Merge branch 'master' into slider-paste-parsing-failures-2 2022-01-12 19:06:36 +01:00
6b7896ec69 Merge pull request #16434 from peppy/fix-being-playing-test-failures
Fix test failures due to double `BeginPlaying` calls
2022-01-13 02:43:42 +09:00
2212bea17f Fix test failures due to double BeginPlaying calls 2022-01-13 01:34:29 +09:00
4c79145c11 Fix potential mod nullref in APIUserScoreAggregate's CreateScoreInfo implementation 2022-01-13 00:28:16 +09:00
b2d09b7b10 Fix further warnings 2022-01-12 23:42:12 +09:00
b5f670cc5b Add far too many fixes for ruleset non-nullable requirements 2022-01-12 23:24:11 +09:00
51251e3204 Fix CI reported warnings 2022-01-12 22:39:00 +09:00
08da948afc Merge branch 'master' into realm-integration/score-and-beatmaps 2022-01-12 19:22:55 +09:00
017f5a9b9b Merge pull request #16430 from smoogipoo/less-harsh-mania-hp
Fix mania requiring PERFECTs to maintain HP
2022-01-12 19:07:13 +09:00
c97db5a863 Merge pull request #16431 from peppy/skin-hash-repopulation
Fix skin hash repopulation not working since realm migration
2022-01-12 19:03:56 +09:00
38cc1ce098 Add missing ruleset in test scores 2022-01-12 18:51:30 +09:00
8c8c5f4c33 Fix skin hash repopulation not working since realm migration 2022-01-12 18:32:51 +09:00
4106ebf881 Fix mania requiring PERFECTs to maintain HP 2022-01-12 18:29:23 +09:00
ef0f794fd6 Remove stay newline 2022-01-12 18:13:14 +09:00
eb70a1eeb7 Replace compatibility properties with direct references 2022-01-12 18:13:14 +09:00
482cf29e28 Merge branch 'master' into realm-integration/score-and-beatmaps 2022-01-12 17:57:14 +09:00
e12025dd48 Cascade delete metadata when beatmaps are deleted 2022-01-12 17:49:11 +09:00
34aa1bf21d Sanitise and remove some usages of Detach which are no longer required 2022-01-12 17:49:11 +09:00
5f7365e8f3 Ensure scores are cleaned up alongside beatmap so they don't have a null reference 2022-01-12 17:49:11 +09:00
f24b2b1be3 Make copying detached changes to realm only exposed for BeatmapSet
Also fixes remaining issues with the copy process.
2022-01-12 17:49:11 +09:00
a4de0f93fa Move manager Update methods to be explicit to where they are still used by legacy code
Also fixes skin hash repopulation being completely broken.
2022-01-12 17:49:11 +09:00
a307f7e90e Add test coverage of updating via copying changes from detached instance 2022-01-12 17:49:11 +09:00
580ad03f8d Combine mapper configurations and add more explanation about special cases 2022-01-12 17:49:11 +09:00
c92aff8d2b Add test of cyclic beatmap/beatmapset references 2022-01-12 17:49:11 +09:00
509301d94f Update detach test to assert correct behaviour 2022-01-12 17:49:11 +09:00
51d6db1bca Add equatable support to IUser and RealmUser
Not sure this will stick, but let's add it for now to make testing
detach support work nicely.
2022-01-12 17:49:11 +09:00
6db3c32dd1 Handle automapper realm cyclic references via AfterMaps
This may not be the cleanest solution, but there don't seem to be any
way towards this either.

- `UseDestinationValue` has been inherited by default as noted in
https://docs.automapper.org/en/stable/10.0-Upgrade-Guide.html#usedestinationvalue-is-now-inherited-by-default, and its behaviour in this case would be using the nested **managed** realm object for the destination member rather than creating an unmanaged version.

- `MaxDepth` already sets `PreserveReferences` so there's no point of using it.

- `MaxDepth` should probably not be set for all maps, only for those with
cyclic references, to avoid the expensive overhead of `PreserveReferences`, as mentioned in https://docs.automapper.org/en/stable/5.0-Upgrade-Guide.html#circular-references.

That aside, `MaxDepth` should actually only be set to `1` for
`BeatmapSetInfo` mapping, because we don't want AutoMapper to create a
nested instance of `BeatmapSetInfo` in each mapped/detached beatmap, but
for some reason, doing that will cause automapper to not map any beatmap
inside the set and leave it with 0 beatmaps.

While on the other hand, using `MaxDepth(2)` for `BeatmapSetInfo` works,
but creates an unused instance of a `BeatmapSetInfo` inside each mapped
beatmap, which may not be ideal.

For `BeatmapInfo`, it has to be `MaxDepth(2)`, in which the first
`BeatmapInfo` depth would be itself (when detaching a beatmap), and the
second would be nested beatmaps inside the mapped/detached
`BeatmapSetInfo` within the beatmap. (note that when detaching a beatmap
set, the unused instance of `BeatmapSetInfo` within each beatmap of that
beatmap set doesn't also have a list of unused beatmaps as one might expect from the depth specification, it surprisingly has 0 beatmaps)

This causes it to create an unused instance of `BeatmapInfo` in the beatmap set resembling the root mapped/detached beatmap, but that one might be inevitable.
2022-01-12 17:49:11 +09:00