Commit Graph

12469 Commits

Author SHA1 Message Date
aaeb43fbb2 Return older file if new one is null 2023-01-07 18:15:57 +03:00
b47cef838c Nullability 2023-01-07 03:08:02 +03:00
167ac8b5dd Fix editor object being requered 2023-01-07 03:03:52 +03:00
9364c7775d Refresh background on file change in editor 2023-01-06 19:26:30 +03:00
c0cfa66510 Merge pull request #21754 from Feodor0090/waveform-invalidate
Reload waveform on track replacement in editor
2023-01-06 19:57:27 +08:00
938658649e Merge pull request #22043 from frenzibyte/fix-solo-leaderboard-hyphen
Fix gameplay leaderboard showing "-" on non-tracked scores
2023-01-06 18:12:00 +08:00
464f251c0c Merge branch 'master' into beatmap-set-link-genre-language 2023-01-06 17:09:06 +08:00
408356d05e Fix gameplay leaderboard showing "-" on non-tracked scores 2023-01-06 12:06:47 +03:00
c6e2104ec2 Refresh waveforms instead of recreating the whole component 2023-01-06 03:46:49 +03:00
88148567c0 Merge branch 'master' into fix-playlist-item-regressions 2023-01-05 15:31:27 +03:00
5fb6f220e6 Fix playlist items not animating when rearranging 2023-01-03 11:10:02 -08:00
5dfd4180c8 Fix playlist selecting random item when not allowed after deleting 2023-01-03 11:10:02 -08:00
beb3b96aca Harden request equality checks 2023-01-04 01:44:00 +08:00
8f7ae0395a Fix song select leaderboard potentially showing wrong scores on quick beatmap changes
Closes #22002.
2023-01-03 00:55:09 +08:00
6509d3538c Fix counter initially rolling down from 100% to 0% in minimum achievable mode 2022-12-30 21:13:41 +01:00
7580ab78be Move binding to LoadComplete() 2022-12-30 21:08:48 +01:00
6d42cc5a36 Naming pass 2022-12-30 20:30:58 +01:00
d60349c7c6 add description 2022-12-30 23:24:41 +09:00
8beb168be9 remove nullable disabled 2022-12-30 23:24:20 +09:00
784fe7ecf2 rename AccType to AccuracyDisplay 2022-12-30 23:06:10 +09:00
3c32a50c12 add new accuracy counter display 2022-12-30 21:19:46 +09:00
3c0b8af8f1 Allow unsubscribing from solo statistics updates
This is more of a safety item. To avoid potential duplicate key in
dictionary errors (and also avoid being slightly memory-leaky), allow
`SoloStatisticsWatcher` consumers to dispose of the subscriptions they
take out.
2022-12-28 08:07:48 +01:00
04f9a354c3 Convert SoloResultsScreen to NRT 2022-12-28 07:54:36 +01:00
e90619244d Fix incorrect accuracy display on overall ranking view 2022-12-27 19:51:51 +01:00
df6f2ad0a1 Merge pull request #21804 from bdach/hide-global-rankings-when-presenting-scores
Only show global rankings on solo results screen when progressing from gameplay
2022-12-27 16:39:26 +08:00
01cf96e240 Only show global rankings on results screen when progressing from gameplay 2022-12-26 23:35:45 +01:00
c7ca4bbba5 Use generic Enum methods 2022-12-26 20:36:39 +01:00
36a6f3685e Don't show global rankings display when not logged in 2022-12-24 14:35:11 +01:00
da519acb20 Add overall ranking display to solo results 2022-12-24 14:35:04 +01:00
3abdf557ea Add protected method for customising statistics panel rows 2022-12-24 14:35:00 +01:00
600ada46be Add protected method for customising statistics panel 2022-12-24 14:34:54 +01:00
cf0b3ec879 Merge branch 'master' into score-stats-display 2022-12-24 14:32:08 +01:00
83a50816b6 Remove unused constructor param 2022-12-24 10:44:38 +01:00
4e5109a649 Use plain bindable flow instead of binding to watcher directly 2022-12-24 10:27:28 +01:00
c7f248e13c Implement overall ranking display for solo results screen 2022-12-24 00:30:38 +01:00
494886ef92 Rename Text to Metadata 2022-12-23 11:11:15 -08:00
f25439e359 Move track change subscription to LoadComplete 2022-12-23 01:54:49 +03: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
30de9ba795 Dispose previous waveform on track reload 2022-12-23 00:35:59 +03:00
08d2fbeb8e Use new ArgumentNullException.ThrowIfNull throw-helper API 2022-12-22 21:27:59 +01:00
20370bd5ae Invalidate waveform on track load 2022-12-22 20:49:09 +03:00
d0645ce151 Rewrite waveform invalidation 2022-12-22 15:59:51 +03:00
f2e8776529 Bind to clock instead of music controller 2022-12-22 15:35:53 +03:00
a18ece8610 Listen for track reload in timing screen 2022-12-22 01:24:23 +03:00
7089bb6c23 Listen for track reload in timeline 2022-12-22 01:23:59 +03:00
66a02374da Clear cached waveform on track change in editor 2022-12-22 01:23:24 +03: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
1d39e8d0ce Refactor MetadataSection to use generics and inheritance 2022-12-21 10:18:47 -08: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