Open Joehuu opened 1 year ago
Note: I'm ~planning~working on fixing / adding more activities, but this needs to be fixed before.
I'm willing to fix this by reverting the refactor done in the mentioned PR https://github.com/ppy/osu/pull/10740. From PR:
I also took this opportunity to refactor the user activity handling logic in OsuScreen which was making it basically impossible to share the current activity to the screen stack (in the case of screens being subscreens and not actual screens). The logic now uses a bindable flow, very similarly to how it's done for OverlayActivationMode.
The previous implementation now works with the current code thanks to https://github.com/ppy/osu/commit/a97681a5daa18b6e4374a901b65e836a1bef82eb + a tweak in OnResuming()
in which base (main screen) is called first before the subscreen.
Another reason why I want to revert is because of the update flow. BindTo
is inside a method that is called when the screen stack ScreenPushed
and ScreenExited
is invoked:
https://github.com/ppy/osu/blob/209d44746ad0386029a375a2c87fe8a217c4184d/osu.Game/OsuGame.cs#L1346-L1355
Those are invoked right after a push or exit is made: https://github.com/ppy/osu-framework/blob/8afa7d26386095b21f76f76ca4ce1f0b52a6567a/osu.Framework/Screens/ScreenStack.cs#L105-L117
The screen doesn't have the time to load()
/ LoadComplete()
, so Activity.Value
can potentially be null and resulting in a brief Idle
on discord rich presence:
https://github.com/ppy/osu/blob/209d44746ad0386029a375a2c87fe8a217c4184d/osu.Game/Screens/OsuScreen.cs#L154-L157
Type
Game behaviour
Bug description
Regressed since https://github.com/ppy/osu/pull/10740.
For example
PlayerLoader
: https://github.com/ppy/osu/blob/b1232a7ee7d7b5eed34cca0b3f2ee6148615a61c/osu.Game/Screens/Play/PlayerLoader.cs#L49-L50Screenshots or videos
Version
Since 2020.1114.0 / https://github.com/ppy/osu/pull/10740
Logs
N/A