Commit Graph

47480 Commits

Author SHA1 Message Date
d69552fbcf Fix potential crash from cross-thread drawable mutation in collection management
As seen at https://github.com/peppy/osu/runs/4613800663?check_suite_focus=true.
2021-12-23 13:21:17 +09:00
e1b539fa9e Merge pull request #16213 from peppy/working-beatmap-live
Tidy up `WorkingBeatmap`
2021-12-23 13:02:37 +09:00
c0add5661e Merge pull request #16214 from bdach/beatmap-listing-overlay-flaky-hide
Fix placeholder drawables on beatmap listing not always showing correctly
2021-12-23 11:56:06 +09:00
25e38560ce Fix placeholder drawables on beatmap listing not always hiding correctly
`BeatmapListingOverlay.addContentToPlaceholder()`, in order to make
transitions between different beatmap listing content (whether it is
actual cards, or placeholders for no beatmaps found/supporter-specific
filters chosen), would set `BypassAutoSizeAxes = Y` on content as it is
fading out, to make the transition smoother. The property in question
was supposed to be getting restored to `None` on the next show.

In testing scenarios, it sometimes turned out that this wasn't the case,
therefore making the placeholders effectively not show - while they
were present and fully opaque, they would be the only child of
an auto-sized container with `BypassAutoSizeAxes = Y`, so the parent
auto-sized to a zero height, which logically follows from the premise,
but is not what was desired.

This in turn was caused by the fact that the `BypassAutoSizeAxes = Y`
set was scheduled, and sometimes it would be scheduled in such a way
that the drawable would cease to be present on the next frame due to its
alpha being past the cutoff point of 0.0001. Therefore the scheduled set
would not execute until the *next* time the placeholder was shown,
therefore causing the bug.

Fix by ensuring that the placeholder drawables are always present if
their schedulers have any tasks enqueued, on top of the usual checks of
alpha and scale performed via the base implementation.
2021-12-22 15:05:23 +01:00
02fa1c21b7 Adjust existing placeholder test to demonstrate failure case 2021-12-22 15:03:20 +01:00
f179ff33c9 Remove all NRT changes
This reverts commit bb9877adab.
2021-12-22 21:02:06 +09:00
bb9877adab Reapply IWorkingBeatmap nullability fixed 2021-12-22 20:48:48 +09:00
67e6b50c12 Merge pull request #16135 from stanriders/refactor-diffcalc
Slightly refactor difficulty and pp calculators
2021-12-22 19:44:02 +09:00
fa5ee5f72c Merge pull request #16212 from peppy/fix-beatmap-leaderboard-global-reference
Fix potential errors thrown during beatmap leaderboard display due to incorrect beatmap reference
2021-12-22 19:26:32 +09:00
bc47801cbb Revert "Apply NRT to WorkingBeatmap"
This reverts commit 9e17d7d4e3.
2021-12-22 19:14:18 +09:00
9e17d7d4e3 Apply NRT to WorkingBeatmap 2021-12-22 18:41:45 +09:00
53c0a6708f Move public accessor properties to top of file 2021-12-22 18:25:09 +09:00
a5f77a86ef Move load methods and rename loadedTrack to match other private fields 2021-12-22 18:24:51 +09:00
7344c87b16 Remove RecyclableLazy 2021-12-22 18:18:12 +09:00
f3f491374b Remove unused load checks 2021-12-22 18:17:00 +09:00
3c95497ed7 Reorder methods to hopefully make more sense 2021-12-22 18:17:00 +09:00
e38e4c0adc Enable NRT on IWorkingBeatmap 2021-12-22 18:17:00 +09:00
967419c9ac Remove BeatmapSetInfo and Metadata from interface
There were very few accesses to this, and after realm they should all be
done via the `BeatmapInfo`, so let's remove this.
2021-12-22 18:17:00 +09:00
1b0af78831 Simplify WorkingBeatmap in multiple ways
Just a clean-up pass.
2021-12-22 18:17:00 +09:00
b38b300159 Convert BeatmapMetadata access to be via a computed property 2021-12-22 18:17:00 +09:00
ea7d2c06fc Merge pull request #16206 from peppy/fix-collection-import-test-cleanup
Fix `ImportCollectionsTest.TestSaveAndReload` not cleaning up before run
2021-12-22 18:16:48 +09:00
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
a866572ca8 Add comment regarding host name choice 2021-12-22 15:44:47 +09:00
cfdfe81afb Merge pull request #16205 from smoogipoo/fix-multiplayer-tests
Fix multiplayer test failures when checking for parted room
2021-12-22 13:42:05 +09:00
f81e32149b Fix ImportCollectionsTest.TestSaveAndReload not cleaning up before/after run 2021-12-22 13:38:20 +09:00
a88800c99a Merge pull request #16198 from smoogipoo/fix-current-item-before-population
Fix delete button showing on current item before beatmap retrieval
2021-12-22 13:15:07 +09:00
24c6f8fafa Fix multiplayer test failures when checking for parted room 2021-12-22 12:55:37 +09:00
98f044881e Merge branch 'master' into refactor-diffcalc 2021-12-22 12:31:28 +09:00
e50609c546 Rename method 2021-12-22 12:28:07 +09:00
7bc5079485 Merge pull request #16201 from bdach/timeline-blueprint-contrast-improvement
Improve contrast of timeline blueprint foreground content for pastel combo colours
2021-12-22 11:33:29 +09:00
ee64ab6383 Fix delete button test failures
Can be tested by adding a Thread.Sleep() in
DrawableRoomPlaylistItem.load().
2021-12-22 09:55:19 +09:00
c71942a350 Merge pull request #16200 from bdach/lookup-cache-racing
Fix online lookup caches potentially getting stuck
2021-12-22 09:48:58 +09:00
dca081979f Merge pull request #16199 from peppy/fix-custom-directory-tests
Ensure `CustomDataDirectoryTest` methods use a fresh directory to avoid IO errors
2021-12-21 13:56:07 +01:00
e35a8cab65 Merge branch 'master' into fix-custom-directory-tests 2021-12-21 13:08:27 +01:00
7ab1c0c99d Improve contrast of timeline blueprint foreground content for pastel combo colours 2021-12-21 12:54:17 +01:00
40b3ce0ade Clean up comments 2021-12-21 14:03:24 +03:00
88436d51ae Remove using 2021-12-21 13:44:20 +03:00
ca7303a50a Fix online lookup cache not clearing completed task on early return
The task not being cleared in the early return path would cause
`pendingRequestTask` to become stuck as a completed task, and
`queryValue()` would not recreate it due to the null check there,
therefore stalling all lookups forevermore until a game restart.
2021-12-21 11:13:41 +01:00
ee89d8643e Extract abstract implementation of online lookup cache 2021-12-21 11:12:51 +01:00
cca02a8016 Create PerformanceAttributes 2021-12-21 13:08:31 +03:00
df975fb29e Merge pull request #16181 from dekrain/statics-reset-no-sb
Split session statics reset method to prevent unloading seasonal backgrounds
2021-12-21 18:52:04 +09:00
0bda7892f7 Merge pull request #16197 from bdach/beatmap-card/renames
Rename beatmap card-related classes
2021-12-21 18:51:34 +09:00
4a3a5054fd Ensure CustomDataDirectoryTest methods use a fresh directory to avoid IO errors
Resolves test failures like https://github.com/ppy/osu/runs/4592088736?check_suite_focus=true.
2021-12-21 18:42:39 +09:00
4ce61d4260 Directly bind to room updates
Currently doesn't really cause any difference, however it may in the
future if we decide the queueing algorithm shouldn't update PlaylistOrder
when an item has been played.
2021-12-21 18:40:29 +09:00
e2f8c71081 Fix test 2021-12-21 18:38:31 +09:00
a34d24fb20 Disallow expired items from showing delete button
This isn't possible in practice since expired items are removed from the
queue list, but this helps out in tests.
2021-12-21 18:37:42 +09:00
d7136d6b48 Merge pull request #16196 from peppy/update-framework
Update framework
2021-12-21 18:23:02 +09:00
4ba5a939db Merge pull request #16178 from bdach/lounge-background-screen-correct
Fix lounge screen showing information sourced from wrong playlist item
2021-12-21 17:36:23 +09:00
05b79f864e Merge pull request #15867 from MBmasher/fl-cumulative-strain
Fix cumulative strain time calculation in Flashlight skill
2021-12-21 17:19:09 +09:00
51b7e920c0 Fix delete button being able to show on current item 2021-12-21 16:57:58 +09:00