Commit Graph

2798 Commits

Author SHA1 Message Date
464f251c0c Merge branch 'master' into beatmap-set-link-genre-language 2023-01-06 17:09:06 +08:00
96e81e7f41 Switch on NRT and add IEquatable to GetScoresRequest 2023-01-04 01:41:21 +08:00
2698d58c46 Merge branch 'master' into remember-chat-textbox-per-channel 2023-01-01 17:29:38 +01:00
70dbb8edac Fix stand alone chat display textbox not binding to local channel 2022-12-29 01:37:37 -08:00
c326745f96 Save / sync chat text box messages per channel 2022-12-28 16:09:40 -08:00
ea8beffa61 Merge pull request #21871 from bdach/solo-statistics-watcher-reliability
Improve reliability of solo statistics watcher
2022-12-28 21:05:38 +08: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
a0a26b1e8c Ignore statistics update subscriptions with invalid score ID
If score submission fails, the score will not receive a correct online
ID from web, but will still be passed on to the solo statistics watcher
on the results screen. This could lead to the watcher subscribing to
changes with score ID equal to the default of -1. If this happened more
than once, that would cause a crash due to duplicate keys in the
`callbacks` dictionary.

Closes #21837.
2022-12-28 07:54:01 +01:00
e9d32fca18 Fix various failures in initial statistics fetch
- If the local user is restricted, then attempting to fetch their data
  from the `/users` endpoint would result in an empty response.

- Even if the user was successfully fetched, their `RulesetsStatistics`
  may not be populated (and instead be `null`). Curiously this was not
  picked up by static analysis until the first issue was fixed.

Closes #21839.
2022-12-28 07:31:36 +01:00
0d78bc2248 Fix osu.ppy.sh links no longer opening in-game
Addresses https://github.com/ppy/osu/discussions/21838.
2022-12-28 06:42:35 +08:00
b3e44f20bc Use new lazer API endpoint
This is a temporary change to target the new experimental/next deploy.
The main change that should result from this is having the user profile
show the pp^next values from the new domain.
2022-12-27 17:20:40 +08:00
cb2b0d4178 Remove redundant type specs 2022-12-26 23:12:53 +01:00
c7ca4bbba5 Use generic Enum methods 2022-12-26 20:36:39 +01:00
209d44746a Merge pull request #21762 from bdach/score-stats-updates
Add solo statistics watcher component to deliver incremental global user statistics updates
2022-12-24 21:30:34 +08:00
78c47a3695 Add callback to dictionary rather than overwrite
Attempting to overwrite will henceforth throw an exception.
2022-12-24 13:45:04 +01:00
6c4ca387e0 Fix wrong handling of missing ruleset statistics 2022-12-24 13:44:11 +01:00
3c26016b61 Ensure latest stats are cleared on successful profile fetch 2022-12-24 13:44:08 +01:00
fd9110a61e Fix solo statistics watcher firing requests for invalid user with id 1
Can happen during login flow (see `APIAccess.attemptConnect()`).
2022-12-24 13:44:05 +01:00
d6e079a2b4 Ignore statistics update requests from third-party rulesets for now 2022-12-24 13:43:57 +01:00
08d2fbeb8e Use new ArgumentNullException.ThrowIfNull throw-helper API 2022-12-22 21:27:59 +01:00
fa2d50fe31 Limit tracking unhandled scores to just the last one 2022-12-22 19:59:39 +01:00
48dc2332fd Refactor test to be easier to work with 2022-12-22 19:59:35 +01:00
ac872fac9e Implement solo statistics watcher 2022-12-22 19:59:07 +01:00
f5b3988dd2 Add data structure for delivering statistics updates 2022-12-22 08:01:59 +01:00
b03291330f Add score processed callback to spectator client 2022-12-20 21:23:50 +01:00
01f09529a8 Link beatmap set genre and language to listing filters 2022-12-19 22:54:33 -08: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
0f34d908c7 Use LocalisableStrings for date and time formats 2022-12-16 00:05:47 +01:00
5fbd4ad3b4 Update usages of SupportsJIT in line with framework changes 2022-12-16 00:22:11 +03:00
660cc72f2a Avoid configuring web proxies on iOS for now 2022-12-16 00:22:11 +03:00
849245b90c Merge branch 'master' into beginplaying-score-token 2022-12-13 17:15:24 +01:00
caa0b7c290 Move score token to BeginPlaying 2022-12-12 13:59:27 +09:00
e9998f1690 Store maximum statistics to spectator state 2022-12-09 20:15:07 +09:00
4a65f5c864 Add score token to spectator state 2022-12-09 19:09:51 +09:00
3570fa8d93 Fix hub clients not reconnecting after connection error 2022-12-09 17:12:20 +09:00
56e94e49a3 Display nominated ranked beatmaps in user profile 2022-12-06 23:36:11 -08:00
8709b1f2ea Immediately send ack request when joining new channels 2022-12-07 14:24:20 +09:00
eea9bd3898 Merge pull request #21463 from peppy/fix-chat-system-message-ordering
Fix system messages appearing out of order in chat display
2022-12-02 17:39:20 +09:00
b1ce93e7bf Add fallback stable sort to avoid any change of misordered local messages 2022-11-30 16:55:39 +09:00
9ab4664fcc Merge branch 'master' into chat-profile-highlight-v2 2022-11-30 16:15:48 +09:00
b7f0310070 Merge pull request #21353 from peppy/no-initial-presence
Stop requesting messages as part of initial chat presence
2022-11-30 16:15:23 +09:00
6524914dbd Merge branch 'master' into chat-profile-highlight-v2 2022-11-30 16:00:52 +09:00
2d8854cbac Change message comparator to always use timestamp comparison if either message has a missing Id 2022-11-30 15:46:58 +09:00
9e34fe360a Ensure all LocalMessages get a timestamp 2022-11-30 15:46:36 +09:00
c84f011bb7 Improve ToString output of Message 2022-11-30 15:46:14 +09:00
8bf5d6884d Add ruleset to now playing string 2022-11-30 14:47:16 +09:00
b453eecebe Ensure empty pieces do not result in whitespace between elements 2022-11-30 14:43:21 +09:00
2df6ccf33e Tidy up code 2022-11-30 14:31:54 +09:00
b5c514a8f0 Make incoming Channel target non-nullable 2022-11-30 14:30:20 +09:00