Commit Graph

36627 Commits

Author SHA1 Message Date
94d78a47a4 Merge branch 'master' into upgrade-guide-help 2022-12-23 17:22:04 +01:00
9a2cc04361 Fix wrong path being used in fail handler 2022-12-23 16:44:03 +01:00
67aea34e7e Merge branch 'master' into fix-breadcrumb-tab-item-click-area 2022-12-23 16:36:58 +01:00
a677c8be06 Change path on error 2022-12-23 21:17:42 +08:00
5eccafe190 Fix wiki overlay showing error message when load is cancelled 2022-12-23 16:45:40 +08:00
676d4a0d6d Merge branch 'master' into fix-waveform-zoom-reload 2022-12-22 23:48:50 +01:00
0cb9b79834 Fix ZoomableScrollContainer potentially not updating content width on setup 2022-12-23 00:56:38 +03:00
08d2fbeb8e Use new ArgumentNullException.ThrowIfNull throw-helper API 2022-12-22 21:27:59 +01:00
8be6350c01 Remove no longer necessary assert 2022-12-22 20:07:53 +03:00
5df440e20e dont use is..or syntax 2022-12-22 17:27:55 +01:00
422fdd8ae5 dont post notifications from custom log targets 2022-12-22 16:56:27 +01:00
28fc2f34b5 Merge branch 'master' into restore-default-button-hit-area 2022-12-22 13:32:57 +03:00
11321f1a41 Merge pull request #21738 from bdach/spectator-user-score-processed
Add score processed callback to spectator client
2022-12-22 13:55:43 +08:00
6948035a3c Ensure score submission attempt completion before notifying spectator server when exiting play early
When a `SubmittingPlayer` gameplay session ends with the successful
completion of a beatmap, `PrepareScoreForResultsAsync()` ensures that
the score submission request is sent to and responded to by osu-web
before calling `ISpectatorClient.EndPlaying()`.

While previously this was mostly an implementation detail, this becomes
important when considering that more and more server-side flows (replay
upload, notifying about score processing completion) hook into
`EndPlaying()`, and assume that by the point that message arrives at
osu-spectator-server, the score has already been submitted and has been
assigned a score ID that corresponds to the score submission token.

As it turns out, in the early-exit path (when the user exits the play
midway through, retries, or just fails), the same ordering guarantees
were not provided. The score's submission ran concurrently to the
spectator client `EndPlaying()` call, therefore creating a network
race. osu-server-spectator components that implciitly relied on the
ordering provided by the happy path, could therefore fail to unmap the
score submission token to a score ID.

Note that as written, the osu-server-spectator replay upload flow is
not really affected by this, as it self-corrects by essentially polling
the database and trying to unmap the score submission token to a score
ID for up to 30 seconds. However, this change would have the benefit of
reducing the polls required in such cases to just one DB retrieval.
2022-12-21 22:23:26 +01:00
3ec31a5f51 Fix language selector in first run dialog not updating after changing language in settings 2022-12-21 19:30:21 +01:00
19f66c806e Fix language dropdown in settings not updating after changing language in first run dialog
Closes #21744.
2022-12-21 16:31:55 +08:00
b03291330f Add score processed callback to spectator client 2022-12-20 21:23:50 +01:00
cebd5f6dc2 Fix restore default button having a minuscule hit area
Another casualty of edc78205d5. This
particular button was actually *relying* on receiving positional events
from its entire bounding box rather than `Content`, in order for the
button to be htitable more easily, which broke as other buttons were
fixed to behave more in line with expectations.

Upon closer inspection this is another case of a weird carried-over
construction. The button doesn't really need to inherit `OsuButton` or
do any of the arcane stuff that it was doing, so it's now a plain
`OsuClickableContainer` with less `Content` hackery.
2022-12-20 20:47:58 +01:00
378486cbe0 Merge branch 'master' into argon-pro-skin 2022-12-20 19:34:56 +01:00
bf074adb13 Remove unused using directive 2022-12-20 18:24:26 +01:00
8ead606065 Merge branch 'master' into ui-scale-only-show-one-screen 2022-12-20 18:23:37 +01:00
2c402d4740 Update resources 2022-12-21 01:24:41 +09:00
f7c854f1b0 Change asset folder 2022-12-20 21:18:51 +09:00
2f0c772dcb Add argon pro skin 2022-12-20 21:18:51 +09:00
439b8ac56a Fix file select popup getting stuck when switching first run screens while selecting
Closes #21663
Supersedes #21724
2022-12-20 17:59:23 +09:00
c119d41a2d Only show song select for now at ui scale adjust first run screen
Having both was a bit too much. Still not happy with this but it's a bit
less sensory overload.

I think while it's cool being able to show nested screens like this, it
needs more thought to actually be a good experience.
2022-12-20 17:52:56 +09:00
64a45aa0e0 Merge branch 'master' into wiki-heading-id-attributes 2022-12-20 06:34:47 +01:00
4a9b58adda Merge branch 'master' into markdown-footnote-support 2022-12-20 13:48:35 +09:00
7c282d9def Enable generic attribute support for wiki markdown containers 2022-12-19 21:32:38 +01:00
db1380a346 Refactor markdown extension management 2022-12-19 20:19:51 +01:00
a88812861e Implement bidirectional footnote link navigation 2022-12-19 19:34:47 +01:00
73a4310935 Add styling for footnote groups 2022-12-19 19:34:40 +01:00
112613c2f0 Add styling for footnote links 2022-12-19 19:28:01 +01:00
0dce899634 Throw on OsuClickableContainer.ClearInternal() invocations
As they may cause critical failure due to getting rid of the `Content`.
2022-12-19 18:25:45 +01:00
186ccc64fd Fix welcome screen language buttons not working 2022-12-19 18:19:26 +01:00
ecac6299c6 Update framework 2022-12-19 22:01:20 +09:00
4a7d7c6ed9 Use MaxBy in all locations that can and update inspection level to match dotnet-build 2022-12-19 16:47:10 +09:00
8a01a22612 Fix two null refrences in OsuGame 2022-12-19 16:47:10 +09:00
877413524f Cherry-picked android changes from #17462 2022-12-19 15:46:54 +09:00
b64a5cbda6 Merge branch 'master' into guard-url-protocols 2022-12-19 15:46:45 +09:00
6e62033bc4 Fix some comment actions not being lowercased 2022-12-18 20:20:15 -08:00
fea0895f16 Call spectator EndPlaying() immediately after score submission
As it turns out, in current `master`, if a gameplay session ends
normally (i.e. by the player completing the beatmap in full), then
the spectator server `EndPlaying()` method will not be called until
`SubmittingPlayer.OnExiting()`, which in practice turns out to be
the moment where the user exits from the post-gameplay results screen
back to song select.

There is seemingly no reasonable cause for not calling this earlier. In
fact the solo spectator flow looks more broken without this call than
with, because without it the spectator view just hangs until the
spectated player exits gameplay, and *only then* shows results, rather
than do it upon normal gameplay completion.
2022-12-17 21:35:43 +01:00
813c351607 Fix breadcrumb tab item click area not extending to background height 2022-12-16 21:44:10 -08:00
192536643c Fix some more inspections 2022-12-16 20:21:19 +09:00
dd9a418549 Fix assembly location lookups 2022-12-16 19:19:59 +09:00
de079e08dc Fix incorrect ConfigureAwait call in ImportAsUpdate 2022-12-16 18:54:56 +09:00
ba54551313 Merge branch 'master' into guard-url-protocols 2022-12-16 18:23:16 +09:00
27c497145f Fix the MOTHERLOAD of undetected issues that are now visible thanks to net6.0 2022-12-16 18:16:26 +09:00
d5b2c7dfe9 Clamp SFX panning on results screen 2022-12-16 17:19:07 +09:00
d6cae991da Update netstandard2.1 references to net6.0 2022-12-16 17:16:13 +09:00