-
-
Notifications
You must be signed in to change notification settings - Fork 2.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Integrate new chat into game #18377
Integrate new chat into game #18377
Conversation
I added some issues that the redesign resolves, but I'm not sure about these behavioral ones:
I think they are fixed, as the channel selector is now in the same place as chat. I haven't been following the implementations, but there are some parts that I think should be different:
|
At the moment, I've just implemented as is specified in the design, which may change and evolve from usability feedback.
This is because the overlay binds and sets the current channel to a non-null value before the channel manager can poll and join the default channels. Oversight, will fix.
This is just placeholder design, as the top bar will have channel filters added in subsequent PR as per design. |
I'm able to connect to chat fine on the latest release, |
It's a non-issue, I've found the cause and will fix separately. |
osu.Game/Overlays/ChatOverlayV2.cs
Outdated
|
||
private void cycleChannel() | ||
{ | ||
List<Channel> overlayChannels = filterChannels(channelManager.JoinedChannels).ToList(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This isn't working as expected. The order here is not the visual order and therefore results in weird traversal:
osu.2022-05-25.at.09.43.37.mp4
Also, the channel scroll view should be re-centering itself after selecting a new channel via keyboard. You can call ScrollIntoView
on the drawable to make this happen.
osu.Game/Overlays/ChatOverlayV2.cs
Outdated
currentChannel.Value = overlayChannels[(currentIndex + direction + overlayChannels.Count) % overlayChannels.Count]; | ||
} | ||
|
||
private IEnumerable<Channel> filterToChatChannels(IEnumerable channels) => channels.Cast<Channel>().Where(c => c.Type != ChannelType.System); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is this change correct? It implies that channels like multiplayer channels should show up in the overlay?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
probably not, but should show that the function is not clear. i was changing it to fix traversal and things like announce channels not being considered.
it should be written to exclude rather than include, i think.
Yeah this was intended as, since the channel filter method changed, I decided that the top "CHANNELS" section would be the catch all for all types of channel except for DMs. Will improve in a follow up PR 👍 |
Reference design: https://www.figma.com/file/f8b2dHp9LJCMOqYP4mdrPZ/
2022-05-23_22-31-09.mp4
Integrates
ChatOverlayV2
into game, matching existing functionality and passing existing testsManual flows tested:
Features present in design but not in this PR: