Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

release: 03-03-2025 #3469

Merged
merged 15 commits into from
Mar 4, 2025
Merged

release: 03-03-2025 #3469

merged 15 commits into from
Mar 4, 2025

Conversation

github-actions[bot]
Copy link
Contributor

@github-actions github-actions bot commented Mar 3, 2025

🚀 Automated release PR

* Chat prefab divided into 2 more prefabs

* Now new messages don't move the scroll view if it is not showing the bottom of its content.

Fixed: There was an event handler that was never unsubscribed.
The scroll view uses now clamped movement and the LoopListView is not using item snapping.

* feat: paste functionality + fix chat entry asset structure (#3084)

* Added new button to chat bubble + some layout fixes + show on hover

* Added paste logic and hasValue check for clipboard

* Added logic to show paste popup anywhere from anywhere + paste logic

* Fixed some logic + prefabs

* Fixed functionality + paste prefab tweaks

* missing changes

* Post dev merge fix

* Changes to Chat Entries to be properly reused prefabs

* Fixed chat scale

* Fixed paste popup canvas ref

* Fixed some rect issues with own chats

* Fix after merge

* Extracted design consts into SO for easier access

* Update ChatEntryConfigurationSO.cs

* fixed chat scale

* Re-added missing paste popup position marker

* Added character limit check when pasting text

* Added context menu with copy  option

* fixed closing task

* Update ChatController.cs

* Fixed non masked frame on chats

* Fixes from CR

* Added clipboard manager service class to handle clipboard operations and callbacks

* Update ChatController.cs

* tweaks to clipboard manager

* ChatController and ChatView refactoring: Now the view is a black box for the controller

Many fields and methods moved from ChatController to ChatView and adapted so the code flow is the same but separating concerns. The controller does not know anything about how the view is implemented. ChatView now exposes some public methods for the controller to call them, as well as some events to which the controller has to subscribe.
Some dependencies injected to ChatController (emoji menu prefabs) are now directly referenced by ChatView in the Chat prefab.
Some setting constants exposed in the inspector of ChatView.
Now the chat bubbles toggle uses the isOn property and its events instead of showing / hiding images of the toggle manually.
Functionality has not changed.
The rest of scripts only contain renamed events.

* Chat Emoji prefabs removed from the Global Plugins Settings

* ChatMessages do not store view data anymore, hasToAnimate removed

The flag hasToAnimate was added to the ChatMessage structure as a way to know which messages were already animated in the chat window (a fade-in FX is used when a new message arrives) when using LoopListView2, which reuses ChatEntryViews through internal pools. It made no sense to store data strictly related to a view in the model. This workaround is not necessary anymore, ChatView is now in charge of knowing how many messages to animate.

* Update TeleportPrompt.prefab

* Update teleport modal loading status

* Created a way to inject some specific dependencies into Views so they can access some external systems

Added a new asmdef MVC.ViewDependencies.
ChatView and EmojiSuggestionPanel inherit now from IViewWithSystemDependencies.

* Implemented MvcManagerMenusAccessFacade that allows showing a subset of prompts and menus

IViewWithSystemDependencies renamed to IViewWithGlobalDependencies.
In order to implement GlobalUIViews class, I had to create asmdefs: Chat.Commands, Chat.MessageBus, UI.ChatEntryMenuPopup and UI.PastePopupToast. Scripts related to each asmdef were moved too into their own folder.
Now the ViewDependencies instance is created in the Dynamic world container and sent to the ChatPlugin.

* Now IViewWithGlobalDependencies do not inherit from IView

Some original code of EmojiSuggestionPanel reverted.

* Implemented the concept of Chat channel, inside Chat history

Now it is possible to have multiple conversations that reuse the scroll view of the Chat view, and send messages to any of them.
Created the ChatChannelId struct which may be replaced by anything else in the future to identify a channel by its type and name.
Currently it's not possible to send messages to specific channels of other users, that has to be implemented in the future, although the base has been put in, the protobuf Chat message may store the Id of the channel at the start of the actual message and can be parsed by both endpoints (see MultiplayerChatMessageBus). Currently everything is sent to the special channel "nearby".
The ClearChatCommand had to be adapted since it has to be sent to the current chat channel, but only ChatView knows what's the current channel. So now the command does not change the Chat history, it calls the ChatController (injected in a later step during the initialization of the program).

* Make ViewDependencies readonly

* Compilation errors after merging fixed

* Fixed some asset refs

* Add chat icon animation textures

* Set chat textures as sprites

* Update inspector settings for Gallery icon

* Update inspector settings for Camera icon

* Update inspector settings for Backpack icon

* Update inspector settings for Emotes icon

* Update inspector settings for Map icon

* Update inspector settings for notifications icon

* Update inspector settings for Settings icon

* Fixed compilation errors after merging

* The scrollview of the chat has been converted into an independent UI element

Some functionality of the ChatView has been moved to the new ChatMessageViewerElement script.

* Removed commented test code

* Implemented Scroll to bottom button + scroll animation + unread messages separator

Created the ScrollToBottomButton prefab.
Created the UnreadMessagesSeparator prefab, used as a type of item in the prefab list of the LoopListView.
Added some images for the UI.

* Add new chat textures

* UI images fixed after merge

* Implemented the Main UI sidebar button that shows the number of unread messages

Created a new prefab variant for the new button. Added a new animation controller and all the animations of the icon.
Created a prefab for the numeric badge.
Added the new button at the bottom of the sidebar. The number updates as the amount of unread messages varies.
Connected the sidebar to the chat so it can open it when clicked.

* Fixed how the unread messages separator was managed

Added some small tolerance when checking if the scroll view is at the top or the bottom.
The maximum number in the numeric badge of the unread messages is now 9.

* Some Actions replaced with Delegates for code consistency

* Removed redundant field

* feat: hyperlinks for chat (#3252)

* Added new button to chat bubble + some layout fixes + show on hover

* Added paste logic and hasValue check for clipboard

* Added logic to show paste popup anywhere from anywhere + paste logic

* Fixed some logic + prefabs

* Fixed functionality + paste prefab tweaks

* missing changes

* Post dev merge fix

* Changes to Chat Entries to be properly reused prefabs

* Fixed chat scale

* Fixed paste popup canvas ref

* Fixed some rect issues with own chats

* Fix after merge

* Extracted design consts into SO for easier access

* Update ChatEntryConfigurationSO.cs

* fixed chat scale

* Re-added missing paste popup position marker

* Added character limit check when pasting text

* Added context menu with copy  option

* fixed closing task

* Update ChatController.cs

* Fixed non masked frame on chats

* Fixes from CR

* Added clipboard manager service class to handle clipboard operations and callbacks

* Added handling of hyperlink

* Fixed assembly refs for hyperlink handler + added settings

* Fixed some circular dependencies on assemblies used in the chat classes

* Fixed reference to plugin using proper bus to send events

* Added logic to handle cursor changes + hyperlink styling

* Added logic for highlighting using styles

* Fixed highlight change from one link to another

* Fixed hyperlink handler

* Applied new pattern for view element with dependencies

* fixed and removed redundancies

* Changes to Input validation

* Fixed validator when doing backspaces

* Added remaining regex + fixes when deleting text

* Small tweaks + enabled nametags in chat bubbles

* Extracted chat input box functionality from chatview into its own game object

* Fixed missing ref

* Fixed other references

* Improved logic on validated Input field

* more tweaks to validated input field

* Improved efficiency of validator

* Fixes to regex and validation on backspace

* Fixed regex to handle better TAG placement when removing characters

* Fixed character counting

* Optimized hyperlink validation and stringbuilder uses + added scene position validation

* Fixed ref for Change Realm Prompt

* Fixed Confirmation message for change realm prompt

* Tweaked some logic on hyperlink handler to improve efficiency + removed color from style of highlighted links

* Fixed assembly ref dependency hell using chat command bus

* fixed chat prefab refs

* Fixed dependencies for hyperlink handler

* Fixed issue with repeated matches overwriting the results

* Removed unused code + added comments + small tweaks to names + fixed issue with pasting

* Fixed input validation upon pasting and with commands

* Added better support for more website patterns

* Fixed realm change prompt text

* tweak to file so it can be changed from editor

* Applied comments from PR

* Fixed: The chat channel tag was visible for other players

* Fixes after the merge

* Now the NEW separator jumps down after new messages arrive if already seen by the user

* Now when clicking on the sidebar Chat icon the chat opens and shows the latest unread messages

The number in the badge of the Chat icon is updated while the chat is folded.

* Now the Scroll to bottom button's position adjusts according to input box's height

* Scroll to bottom button fades out after a time if the scroll is at the bottom

Added a CanvasGroup to the ScrollToBottom prefab.
Added a reference to the CanvasGroup to the Chat prefab.

* Now clearing the chat while there are unread messages works properly

* Added FoldingChanged event

* Now the NEW line appears at top of chat when clicking on sidebar button

ScrollToBottom prefab is disabled by default.
The size of the New tag sprite has been divided by 2.
Changed the anchor of the UnreadMessages separator prefab.

* Now the amount of unread messages matches the position of the separator

ChatChannel and ChatMessage classes moved to DCL.Chat.History.
Now when the unread messages separator has been viewed and a new message arrives, the count of unread messages resets to zero and reflects the new message so it matches the position of the separator.

* Member list feature fully implemented

Profile data is unreliable, a mechanism has to be implemented in order to wait for the data to be present in the cache.
Added prefabs of Friends branch to reuse the profile info item in the list.
Added the Profile cache to the view dependencies.

* Small visual fixes

Changed the font size of the Nearby text.
Now the text in the Memberlist button is 0 instead of 200.
Reduced the border of the soft mask in the scrollview.

* Minor fix of margins of the chat

* feat: user mentions (#3324)

* Added new button to chat bubble + some layout fixes + show on hover

* Added paste logic and hasValue check for clipboard

* Added logic to show paste popup anywhere from anywhere + paste logic

* Fixed some logic + prefabs

* Fixed functionality + paste prefab tweaks

* missing changes

* Post dev merge fix

* Changes to Chat Entries to be properly reused prefabs

* Fixed chat scale

* Fixed paste popup canvas ref

* Fixed some rect issues with own chats

* Fix after merge

* Extracted design consts into SO for easier access

* Update ChatEntryConfigurationSO.cs

* fixed chat scale

* Re-added missing paste popup position marker

* Added character limit check when pasting text

* Added context menu with copy  option

* fixed closing task

* Update ChatController.cs

* Fixed non masked frame on chats

* Fixes from CR

* Added clipboard manager service class to handle clipboard operations and callbacks

* Added handling of hyperlink

* Fixed assembly refs for hyperlink handler + added settings

* Fixed some circular dependencies on assemblies used in the chat classes

* Fixed reference to plugin using proper bus to send events

* Added logic to handle cursor changes + hyperlink styling

* Added logic for highlighting using styles

* Fixed highlight change from one link to another

* Fixed hyperlink handler

* Applied new pattern for view element with dependencies

* fixed and removed redundancies

* Changes to Input validation

* Fixed validator when doing backspaces

* Added remaining regex + fixes when deleting text

* Small tweaks + enabled nametags in chat bubbles

* Extracted chat input box functionality from chatview into its own game object

* Fixed missing ref

* Fixed other references

* Improved logic on validated Input field

* more tweaks to validated input field

* Improved efficiency of validator

* Fixes to regex and validation on backspace

* Fixed regex to handle better TAG placement when removing characters

* Fixed character counting

* Optimized hyperlink validation and stringbuilder uses + added scene position validation

* Fixed ref for Change Realm Prompt

* Fixed Confirmation message for change realm prompt

* Tweaked some logic on hyperlink handler to improve efficiency + removed color from style of highlighted links

* Fixed assembly ref dependency hell using chat command bus

* fixed chat prefab refs

* Fixed dependencies for hyperlink handler

* Fixed issue with repeated matches overwriting the results

* Removed unused code + added comments + small tweaks to names + fixed issue with pasting

* Fixed input validation upon pasting and with commands

* Added better support for more website patterns

* Fixed realm change prompt text

* tweak to file so it can be changed from editor

* Applied comments from PR

* Added classes to handle generic suggestion elements in a single suggestion box

* Replaced Emoji suggestions with a generic suggestions box

* Removed unused Emoji elements

* Replaced calls to a chat SO with a custom one to provide colors for profile

* Added username suggestions

* Implemented profile suggestion search and retrieval

* Fixed match group

* Added highlighting and linking to usernames

* Added hyperlink functionality to mentions

* Fixed validation issues after selecting username from list

* Added mention marker to chat messages

* fixes to mentions in messages

* Cleanup + extracted suggestions controller logic from ChatInputBox

* fixed dependencies

* fixes after cleanup

* fixes to input capturing

* fixed mixed up styles

* Added outline handling for chat bubbles when receiving mentions

* Improvements to hyperlink handler and hyperlink formatter

* Improvements to hyperlinks

* Added proper inputs for suggestion panel

* Many fixes to formatting and input field logic

* Fixed broken reference

* tweaks to how paste message is sent along with small fixes

* Fixed issues with event detection

* Fixed issue with ctrl + v detection

* Fixes to hyperlink formatter, handler, chat message bus and chat entries

* Added logic for mention background in nametags

* Cleanup and fixes of suggestion elements

* Fixed pattern detection for suggestions, making sure only current word is detected and replaced correctly

* fixed several issues with suggestions and replacement + removed comments

* Override OnUpdateSelected and copy code from TMP_InputField

* Update ChangeRealmPromptController.cs

* Fixed issue with input field

* Fixed logic for switching user links to mentions in messages

* Added mention and open profile menus to context menu

* Added proper outline resizing to nametag

* Update EmojiPanelController.cs

* Update MinimapController.cs

* Update chat assets

* Update mention asset name

* replaced chat entries and nametags assets

* Tweaks to name tags

* Update mention outline texture

* Fixed chat entry and nametag

* adjusted nametag peak thingy

* Implemented chat audio settings as a dropdown to enable/disable certain chat sounds

* Update ChatController.cs

* fixes after merge

* Fixed auto mentions logic

* Fixes for tests

* Update MentionUserButton.prefab.meta

* Update Profile.cs

* Removed lingering file

* Removed parse logic from MessageBuses

* Update ProfileNameColorsConfiguration.asset

* Changed where formatting happens + tweaks to formatting for own profile

* Update HyperlinkTextFormatter.cs

* Update HyperlinkTextFormatter.cs

* Update HyperlinkTextFormatter.cs

* Fixed chat bubble issues

* Fixed issue with caret position + nametagObject that got fcked up

* Update CustomInputField.cs

* Implemented suggestions from CR

* Update InputSuggestionPanelElement.cs

* Update InputSuggestionPanelController.cs

* Fixes from PR + tweaks

* Fixes from CR + added logic to handle clicks on user picture to open context menu

* Added anchor point option to generic context menu

* Update HyperlinkTextFormatter.cs

* added cancellation token support to the new async mvc manager methods + hyperlink handler

* Update UI.asset

* Applied suggestions about boxed suggestion data types

* Update Main.unity

* Fixes after merge

* Fixed bubble tail colors

* Fixed copy popup

* Removed lingering goto default calls from chat audio settings

---------

Co-authored-by: Romina Marchetti <rma.marchetti@gmail.com>

* propagate room sid

* Removed comment

* Restored old color calculation code

* Removed references to unused profileNameColorHelper

* Member list only updates when opened + Enter closes the member list

Now it shows the amount of members in a reliable way.
Now it updates when jumping to another world.
Now when Enter is pressed, the member list closes and the input box gains the focus.
Now new chat messages are correctly formatted when the member list is closed.
Many visual UI fixes. Now the member count button adjusts automatically to its content.

* Fixes after the merge

* Added some comments

* removed unused asset + fixed comment

* Update ChangeRealmPromptController.cs

* Added more summaries + renamed events

* Removed color from ProfileInputSuggestionData

* Applying changes from review + minor fixes

- Now the chat controller uses the cached color of the profile.
- Removed commented test code.
- Fixed: The input box was hiding when closing the chat window while the Member list panel was visible.

* Fixed references after merge

* Fixed method name

* Update Chat.prefab

* Fixed missing main reference to scene canvas

* added analytics

* Revert "removed unused asset + fixed comment"

This reverts commit bf31263.

* Update Profile.cs

* Fix for style issue on hyperlinks

* Fixed issue with matches for similar names

* Fixed: When opening the chat from sidebar, if at bottom it resets count

* Now the Nearby tag is not sent in the chat messages

* Now unread messages while in member list are properly displayed

When the chat message list was scrolled to the bottom, and the member list was opened, incoming messages were considered as read, as if the message list was visible. Now they are not marked as read if the member list is present.

* Added selected outline to ChatInputBox

* Update Chat.asmdef

* Fixes after merge

* Fixed color issues

* missing refs

* Minor UI prefab fixes

The order of the friends and chat icons in the sidebar has been swapped.
Some margins and positions of the chat UI elements were not correct.

* Fixed nametag tail visible from the start

* More chat UI prefab changes

* fixed issue when disposing of chat controller

* tweaks to code + first fix for issue with friends button

* mising MVCmanager merge :)

* Removed unused code in MultiplayerChatChannel

* Converted ProfileNameColorHelper to static + removed profile cache from view dependencies

* Removed RoomHub from ViewDependencies

* Fixes after the merge

* Fixed comments from CR

* Added missing logic to handle friends panels

* fixed issue with friendship status

* removed nullables

* added listPool when fetching profiles

* Added support for some punctuation marks after hyperlinks

* small tweak to suggestion panel

* Removed the FriendUserListItem script from the prefab

* Dictionary replaced with a List in ChatController

* Polish chat and numeric badge UI

* Polish chat and members nav bar UI

* Decrease size of the close button icon

* Remove mask from mentions list

* Make checkmark icon smaller for users names

* Fixed chat prefab curse

* Update Chat.prefab

* Fix numeric badge stroke

* fix chat activation using T hotkey + chat fade in/out

* Merge branch 'feat/chat/chat_improvements_main' of https://github.com/decentraland/unity-explorer into feat/chat/chat_improvements_main

* Fixed chat scale

* Update ChatEntryMenuPopupView.prefab

* Fix members list and chat colors

* Update friends panel colour

* Update SidebarUI.NumericBadge.prefab

* Fixed open close chat with button on sidebar

* Normalize containers colours

* Remove mask from mentions panel. Polish UI from suggestion element.

* Update outline texture for chat input

* Update ChatEntry_BASE.prefab

* Fix for members list title getting invisible

* context menu adjustments

* Fix for suggestion panel not autoselecting first entry

* Fixed suggestion box not masking properly

* Fixed overlap of scroll to bottom with suggestions

* Fix for repeated input messages sent

* Fix: Member list was scrolling back and forth when scrollbars were present

A VerticalLayout component in Content was causing that LoopListView was going crazy. Now the layout has been removed and the width of the items adjusted.
Added margins to Viewport, removed from Content (in Chat.prefab too).
Changed the fading effect in the viewport of the Member list, as top padding was removed (with the VerticalLayout), top is now zero.
The ChatMemberListItem prefab is now independent, it is not a variant of the Friends item prefab anymore. Unused components have been removed.

* Remove mask from InputSuggestionBox

* Update chat member list background asset and margins

* Make chat header darker

* Fixed issue with suggestion panel not resizing properly

* Fixed mentions close button dissappearing

* Fixed context menu separator line

* fix for position

* Fixed selected background for profile suggestions

* Added logic to handle closing parts of the input field with ESC key

* Added logic to keep chat entry menu button visible while options popup is on

* Re added mask to suggestion panel

* Fixed scrolling when using arrow keys

* Fixed formatting + min height when no results found

* Fix: Member list layout was breaking due to a VerticalLayout in Content

* Add modal missing animations and update copies

* Added logic to keep menu button open while context menu is open in members panel

* Add hover sound missing to teleport modal buttons

* Added logic to handle inserting text into input box from anywhere through a bus

* Fixed nametag so it shows emojis in bigger font when there is only one

* Re-added bigger emojis when there is a single one

* Add mention icon

* Fixed mention button

* Fixed issue with friends button on profile context menu when friends feature is disabled

* Fixed settings menu configuration after merge

---------

Co-authored-by: Alejandro Villalba <lince3d@gmail.com>
Co-authored-by: Romina Marchetti <rma.marchetti@gmail.com>
Co-authored-by: Mikhail Agapov <mikhail.agapov@decentraland.org>
Co-authored-by: NickKhalow <nickhalow@gmail.com>
* anonId from app args

* readonly struct
* log schedule operations

* disable flush count policy

* queue batcher

* fix batch limit

* write key address

* flush per minute

* update count cache

* debug tab for unflushed count

* manual flush + show without --debug arg

* pass deps

* update dll

* service info
* added default color and fallback when color is default on nametag placement system

* Update SelfProfile.cs
* Added index check on ChatMessageViewerElement & fixed masking on ProfileInputSuggestionElement

* Update ChatMessageViewerElement.cs
Copy link

@DafGreco DafGreco left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✔️ PR reviewed and approved by QA on both platforms following instructions playing both happy and un-happy path

Regressions for this ticket had been performed in order to verify that the normal flow is working as expected:

You will be able to see all the information of the sanity check here in this Document

@anicalbano anicalbano self-requested a review March 4, 2025 11:39
@anicalbano anicalbano added this pull request to the merge queue Mar 4, 2025
Merged via the queue into main with commit 58e7ec0 Mar 4, 2025
7 checks passed
@anicalbano anicalbano deleted the release/release-03-03-2025 branch March 4, 2025 12:08
# for free to join this conversation on GitHub. Already have an account? # to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

10 participants