Commit Graph

7243 Commits

Author SHA1 Message Date
e38d9eafa0 Use BindTarget instead of caching for ControlItem unread flow 2022-03-15 22:37:15 +00:00
49b74d7867 Use BindTarget instead of caching for ControlItem mentions bindable flow 2022-03-15 22:33:36 +00:00
481b8fe80b Use Orange1 for ControlItemMention background colour 2022-03-15 22:22:32 +00:00
7621e779fa Move ControlItem Action assignments into BDL 2022-03-15 22:19:58 +00:00
73a0373b4e Code quality fixes 2022-03-14 21:56:56 +00:00
ec61b88ec2 Adjust ControlItem padding 2022-03-14 21:39:57 +00:00
75958bf270 Refactor ControlItemText to use bindable flow for unread state 2022-03-14 21:32:30 +00:00
b01a809d55 Refactor ControlItemMention to use bindable flow 2022-03-14 21:26:33 +00:00
1f0f6990f0 Use ColourProvider.Content1 for ControlItemText colour 2022-03-14 21:16:28 +00:00
3aa343b987 Use OsuColour.YellowLight for ControlItemMention background 2022-03-14 21:14:33 +00:00
9621ef9437 Use OsuColour.Red1 for ControlItemClose hover colour 2022-03-14 21:10:39 +00:00
e91af664ef Adjust ControlItemAvatar placeholder animation and colour 2022-03-14 20:37:54 +00:00
12472593cc Mark required dependencies as non-nullable 2022-03-14 20:14:04 +00:00
c0d82dfb41 Code quality fixes 2022-03-14 19:42:55 +00:00
39c30516d0 Implement ChannelControlItem for new chat design
Adds new component `ChannelControlItem` and it's child components to be
used as the clickable control in the new chat sidebar for joined
channels.

Has public properties `HasUnread` and `MentionCount` to control the
display of the channel having unread messages or mentions of the user.

Channel select/join requests are exposed via `OnRequestSelect` and
`OnRequestLeave` events respectively which should be handled by a parent
component.

Requires a cached `Bindable<Channel>` instance to be managed by a parent
component.

Requires a cached `OveralayColourScheme` instance to be provided by a
parent component.
2022-03-14 18:55:27 +00:00
53c57661c7 Move implementtaion detail to inline comment 2022-03-11 18:34:22 +03:00
5b70139b33 Avoid running message highlight processing more than once 2022-03-11 18:32:49 +03:00
cc87563d57 Merge branch 'master' into chat-mention-highlight 2022-03-11 17:51:22 +03:00
d07e3101ea Improve message highlight handling in DrawableChannel 2022-03-10 23:07:15 +03:00
a31611bdec Improve channel switching flow in HighlightMessage 2022-03-10 23:07:15 +03:00
5315ff794a Handle non-existing channels on message highlighting gracefully 2022-03-10 21:29:32 +03:00
717ddbba4e Fix skin components toolbox not autosizing properly 2022-03-10 16:30:20 +03:00
46f2db1712 Move ChannelListingItem spacing into item so input is always handled by an item in the list
Without this change, there would be a couple of pixels between each list
item where nothing would be hovered. This is a pretty annoying UX which
we should be avoiding we possible.
2022-03-10 15:58:57 +09:00
1a187d4dec Add animation to checkbox when joning/leaving a channel 2022-03-10 15:54:42 +09:00
0155519343 Merge branch 'master' into new-chat-channel-listing 2022-03-10 15:49:06 +09:00
022dd88aef Merge branch 'master' into chat-mention-highlight 2022-03-10 14:23:23 +09:00
b25c37ce62 Instantiate highlight background container on animation
Also removes the necessity of scheduling as it actually never worked as
intended, `Scheduler` will still update even when the chat line is
masked away, and the animation will never be held anyways.

The new duration of the animation should be enough for long scrolls
either way.
2022-03-10 03:49:42 +03:00
cf9671cafb Increase highlight delay to 1500ms 2022-03-10 02:50:15 +03:00
80c0df6af5 Scroll chat line to channel center
We may eventually want that encapsulated within `ScrollIntoView`, as it
would also come in handy for `GameplayLeaderboard`.
2022-03-10 02:50:15 +03:00
93cf93943f Schedule chat line highlight after children to handle non-loaded lines 2022-03-10 02:48:33 +03:00
2d8983383a Revert newMessagesArrived changes and always schedule highlight
In the case a message arrives and the chat overlay is hidden, clicking
on the mention notification will not work as the `HighlightedMessage`
bindable callback will execute before the scheduled `newMessagesArrived`
logic (which was hanging since the message arrived until the chat
overlay became open because of the notification).

Simplify things by always scheduling the `HighlightedMessage` bindable
callback.
2022-03-10 01:11:27 +03:00
b67f9269f9 Remove NewChat namespace 2022-03-09 18:13:56 +00:00
affcf5180b Merge pull request #17161 from smoogipoo/fix-listing-score-conversion
Fix scores not being recalculated in beatmap overlay
2022-03-09 13:32:45 +09:00
58aef25ad5 Merge pull request #17152 from bdach/mod-overlay/difficulty-multiplier
Implement difficulty multiplier display for new mod select design
2022-03-09 12:11:16 +09:00
7daa2d0ea4 Use correct fonts and colours in ChannelListingItem 2022-03-09 00:36:19 +00:00
7dd51a9c4a Reorder class attributes 2022-03-09 00:12:44 +00:00
a3477c3841 Implement ChannelListing for new chat design
Adds components `ChannelListing` and `ChannelListing` item with visual
test. Essentially a more simplified version of the existing
`ChannelSelectionOverlay` component.

Correctly implements `IFilterable` behaviour to filter child channel
items. Channel joined state is based on the underlying `Joined` bindable
of the `Channel` class.

Channel join/leave events are exposed via `OnRequestJoin` and
`OnRequestLeave` events which should be handled by parent component.

Requires a cached `OverlayColourScheme` instance to be provided by the
parent overlay component when added.
2022-03-08 22:30:58 +00:00
a2ef086c1f Fix potential crash on rare incorrect firing of skin dropdown update methods
As brought to light by https://gist.github.com/smoogipoo/56eda7ab56b9d1966556f2ca7a80a847.

There's a chance that the dropdown is not populated by the time
`updateSelectedSkinFromConfig` is fired via an external means (config
changes).
2022-03-09 01:08:13 +09:00
f5cd967635 Fix scores not being recalculated in beatmap listing 2022-03-08 19:07:39 +09:00
5e0882df8d Simplify message highlighting transforms 2022-03-08 04:00:11 +03:00
d74064b94b Use Equals instead of reference equality operator 2022-03-08 03:56:27 +03:00
f645869958 Update ChannelManager.CurrentChannel directly to handle non-loaded chat scenario
`currentChannel` gets instantiated once the chat overlay is open, while
`HighlightMessage` could be called while the chat overlay has never been
open.

This will all be rewritten with the new chat overlay design anyways, so
should be fine for now.
2022-03-08 03:42:18 +03:00
7f47be4680 Refactor message highlighting logic to rely on a Channel data bindable 2022-03-08 03:19:37 +03:00
22a2ef42c5 Check channel ID on message highlight using currentDrawableChannel 2022-03-08 01:22:47 +03:00
643f68e844 Better annotate initial rolling counter value set 2022-03-07 23:11:20 +01:00
019f4d965d Show two decimal digits on mod multiplier rather than one 2022-03-07 22:55:55 +01:00
c25d7a1c75 Use rolling counter for multiplier display 2022-03-07 22:50:51 +01:00
78a3b5961e Implement basic difficulty multiplier display 2022-03-07 22:50:51 +01:00
f4fa80c1e3 Add support to highlight messages in chat overlay 2022-03-07 05:10:49 +03:00
30b38345aa Add ability to highlight chat lines 2022-03-07 05:08:36 +03:00