1
0
mirror of https://github.com/ppy/osu.git synced 2024-09-22 04:07:25 +08:00
osu-lazer/osu.Game/Screens
Bartłomiej Dach 7fbd47e9ee
Fix MultiplayerMatchSubScreen erroneously pushing exit dialog on API failure
If `IAPIProvider.State` changes from `Online` at any point when being on
an `OnlinePlayScreen`, it will be forcefully exited from. However,
`MultiplayerMatchSubScreen` had local logic that suppressed the exit in
order to show a confirmation dialog.

The problem is, that in the suppression logic,
`MultiplayerMatchSubScreen` was checking
`MultiplayerClient.IsConnected`, which is a SignalR flag, and was not
checking `IAPIAccess.State`, which is maintained separately. Due to
differing timeouts and failure thresholds, it is not impossible to have
`MultiplayerClient.IsConnected == true` but `IAPIAccess.State !=
APIState.Online`.

In such a case, the match subscreen would wrongly consider itself to be
still online and due to that, push useless confirmation dialogs, while
being in the process of being forcefully exited. This then caused the
dialog to cause a crash, as it was calling `.Exit()` on the screen which
would already have been exited by that point, by the force-exit flow.
2023-07-16 19:56:22 +02:00
..
Backgrounds Automated pass 2023-06-24 01:00:03 +09:00
Edit Resolve Clipboard via DI 2023-07-11 11:42:31 +02:00
Import Merge branch 'master' into update-framework 2022-11-26 16:19:36 +01:00
Menu Use more understandable cancel button text 2023-06-25 21:25:16 +09:00
OnlinePlay Fix MultiplayerMatchSubScreen erroneously pushing exit dialog on API failure 2023-07-16 19:56:22 +02:00
Play Allow autoplay to fail 2023-07-13 13:41:35 +09:00
Ranking Fix differing anchor specs on statistics panel flow items 2023-07-13 20:00:29 +02:00
Select simplify code 2023-07-16 10:21:32 +08:00
Spectate Bring realm library up-to-date 2023-07-06 13:37:43 +09:00
Utility Use generic Enum methods 2022-12-26 20:36:39 +01:00
BackgroundScreen.cs Partial everything 2022-11-27 00:00:27 +09:00
BackgroundScreenStack.cs Manual fixes to reduce warnings to zero 2023-06-24 01:52:53 +09:00
IHandlePresentBeatmap.cs Automated pass 2023-06-24 01:00:03 +09:00
IHasSubScreenStack.cs Automated pass 2023-06-24 01:00:03 +09:00
IOsuScreen.cs Automated pass 2023-06-24 01:00:03 +09:00
IPerformFromScreenRunner.cs Automated #nullable processing 2022-06-17 16:37:17 +09:00
Loader.cs Remove duplicate load rule from ShaderPrecompiler 2023-03-29 12:36:56 +09:00
OsuScreen.cs Remove OsuScreen.ApplyLogoArrivingDefaults() 2023-05-23 13:17:43 -07:00
OsuScreenDependencies.cs Automated #nullable processing 2022-06-17 16:37:17 +09:00
OsuScreenStack.cs Manual fixes to reduce warnings to zero 2023-06-24 01:52:53 +09:00
ScorePresentType.cs Remove redundant nullable suppression directives 2023-06-07 08:20:41 +03:00
ScreenWhiteBox.cs Partial everything 2022-11-27 00:00:27 +09:00
StartupScreen.cs Automated pass 2023-06-24 01:00:03 +09:00