Releases: GetStream/stream-chat-unity
Releases · GetStream/stream-chat-unity
v5.0.0
Check out the Migration Guide to 5.x for guidance on adjusting your project.
Added:
StreamChatClient.SetAuthorizationCredentials
- allows setting the authorization credentials without connecting a user to the Stream Chat Service. This can be used in scenarios where you want to fetch unread counts viaStreamChatClient.GetLatestUnreadCountsAsync
in "offline" mode, without establishing a persistent connection, which would contribute towards CCU.
Deprecated (will be removed in a future major release):
MessageRequest
deprecated fields:Html
,PinnedBy
,User
,UserId
StreamUpdateMessageRequest
deprecated field:PinnedBy
StreamSendMessageRequest
deprecated field:PinnedBy
StreamMessageRequest
deprecated field:PinnedBy
MessageRequest
deprecated field:Html
Moved:
StreamChat.Core.Requests.CreateDeviceRequest
->StreamChat.Core.LowLevelClient.Requests.CreateDeviceRequest
StreamChat.Core.Responses.ListDevicesResponse
->StreamChat.Core.LowLevelClient.Responses.ListDevicesResponse
Improvements:
- Improved
StreamChannel.MemberCount
updates from additional API events. - Replaced enums with structs:
StreamChat.Core.Models.StreamMessageType
StreamChat.Core.Responses.StreamImageCropType
StreamChat.Core.Responses.StreamImageResizeType
StreamChat.Core.InternalDTO.Models.AutomodBehaviourType
StreamChat.Core.InternalDTO.Models.AutomodType
StreamChat.Core.InternalDTO.Models.BlockListOptionsBehavior
StreamChat.Core.InternalDTO.Models.ImageCropType
StreamChat.Core.InternalDTO.Models.ImageResizeType
StreamChat.Core.InternalDTO.Models.MessageType
StreamChat.Core.InternalDTO.Models.PushProviderType
StreamChat.Core.InternalDTO.Requests.CreateCallRequestType
StreamChat.Core.InternalDTO.Requests.CreatePollRequestVotingVisibility
StreamChat.Core.InternalDTO.Requests.MessageRequestType
StreamChat.Core.InternalDTO.Requests.TranslateMessageRequestLanguage
StreamChat.Core.InternalDTO.Requests.UpdatePollRequestVotingVisibility
StreamChat.Core.InternalDTO.Responses.ChannelMemberResponseRole
v4.9.0
v4.8.0
Features:
- Add method to get the current state of the unread counts with
IStreamChatClient.GetLatestUnreadCountsAsync()
-> this method also works when the client is disconnected. The unread counts state provides a detailed information about unread messages in each channel and thread.
v4.7.0
Fixes:
- Fix the
IStreamChannel
instance provided by an event not triggering its own events (the channel was not being watched if it was only returned via event) (#149) - Fix client events:
IStreamChatClient.AddedToChannelAsMember
,IStreamChatClient.RemovedFromChannelAsMember
,IStreamChatClient.ChannelInviteReceived
,IStreamChatClient.ChannelInviteAccepted
,IStreamChatClient.ChannelInviteRejected
not being executed on the main thread (#151) - Fix the client not reconnecting immediately after losing network connection when the network is available again (#153)
- Fix internal WebSocket client sometimes getting stuck in the Connecting state on Android when the network was not available (#154)
Features:
- Add state recovery after the disconnected period - once the client reconnects, it will fetch any missed events (like new messages, etc.) from the server and reconstruct the missed state (#152)
v4.6.0
Improvements:
- Added client events that are fired when the local user is added to a new channel ->
IStreamChatClient.AddedToChannelAsMember
or removed from a channelIStreamChatClient.RemovedFromChannelAsMember
- These two events fire only for channels that are not tracked locally. For tracked channels, theIStreamChannel.MemberAdded
&IStreamChannel.MemberRemoved
should be used (#146)
v.4.5.0
v4.4.0
Fixes:
- Fixed
Unity 2019.4
compiler errors (due to older C# syntax) (#137) - Fixed unnecessary DLLs being added to the Windows build. Test framework dependencies (
Tasks.Extensions
,CompilerServices.Unsafe
) + changedNativeWebSocket
to be only included in aWebGL
build (#138)
Sample Project:
- Fixes:
- Fixed Json deserialization error due to code being stripped by the IL2CPP (#137)
v4.3.0
Fixes:
- Fixed state update after
channel.truncated
event with a past date (#130) - Added a potential fix for a crash on Android with IL2CPP (#135)
Improvements:
- Improved reconnection logic to monitor Unity's Network Reachability for faster reaction to when the network is available again (#122)
- Reduced the overhead and potential heating issues on mobile devices by optimizing the background tasks that handle WebSocket connection (#123)
- Updated DTOs to the latest OpenAPI spec (#125)
- Implemented invites (#126) -> Invites Docs
- Added optional hide history & message parameters to
IStreamChannel.AddMembersAsync
(#127) - Implemented
IStreamChannel.UpdateOverwriteAsync
(#129) -> Channel Overwrite Update Docs - Added channel freezing & unfreezing (#133) -> Channel Freeze Docs
Sample Project:
- Fixes:
- Fixed excessive
TryLoadPreviousMessagesAsync
calling - this could lead to performance issues after loading older messages
- Fixed excessive
- Improvements
- Added invite mechanics
v4.2.0
Deprecated (will be removed in a future release):
- Update code samples + mark previous channels query method as obsolete
Fixes:
- Change connection update monitor to not throw an error if the client is disposed or closing (#89)
- Fix StreamChannel members list not always being updated (#91)
- Fix
IStreamChatClient.QueryChannelsAsync
pagination (#100) - Fix emoji sprites sometimes having missing references when importing SDK to a fresh project (#114)
- Fix
reaction.new
clearing the OwnReactions - this field is by design for performance reasons (#119) - Remove this sample "mini" project as it is not finished and not helpful in its current form (#96)
- Fix
IStreamUser.MarkVisibleAsync
&IStreamUser.MarkInvisibleAsync
(#90) - Fix
PresenceChanged
to be always called when Online status changes (#90) - Added Rest Call Log if case deserialization of the stream API error failed (#103)
Improvements:
- Implement
IStreamChatClient.QueryUsersAsync
pagination and sorting (#104) - Add simple starting prefab + remove config asset (#109)
- Implement
IStreamChannel.MembersChanged
event to trigger on add, remove, update + add integration tests (#106) - Implement syntax based users query filters + add integration tests & code samples (#97)
- Improve XML comments
- Change
IStreamChatClient.QueryUsersAsync
filters parameter to be optional (#81) - Add
IStreamChannel
helper methodJoinAsMemberAsync
andLeaveAsMemberChannelAsync
(#82) - Remove default allocations for the user upsert DTOs (#92)
- Add code samples for user and channel mute/unmute
- Refactor dependencies so they can be easier replaced with C# Console or .NET MAUI projects (#112)
Code Samples:
- Add code samples for channel query filters (#86)
- Update code examples using
IStreamChatClient.QueryUsersAsync
to use the new syntax-based filters (#98)
Sample Project:
-
Fixes:
- Fix null ref when closing the project (#83)
- Fix images not showing at the start
- fix loading of previous messages called when the message list is empty
- Fix input height
- Change missing credentials error not to be thrown per frame (#116)
- Fix online status sprites sometimes breaking after project import (#117)
-
Improvements:
- UI/UX improvements
- Change
ChannelView
to show an icon if possible or a letter symbol - Implement members list with an online status (#93)
- Implement local user header with online and invisibility status (#93)
- Support mobile touch for popup (show on touch and hide when touching outside) (#113)
- Change default mobile screen orientation (#115)
Tests:
- Disable update monitor when tests are enabled
- Improve integration tests stability (#84)
v4.1.0
Fixes:
- Fix "no await in async method" warning (#77)
- Fix the
When_delete_multiple_channels_expect_no_channels_in_state_client
test failing when test unrelated channels were already present in watched channels - Fix non-deterministic
SearchMessages
test due to data propagation search result not being instant (takes few ms to propagate across a network of servers) so make few attempts before failing the test - Add fix for nondeterministic tests where WS event is not received during REST API call -> Add optional waiting for state to update
Improvements:
- Implement token provider with auto refresh when the token expires (#72)
- refactor API client to disconnect and wait for reconnect if the API call failed due to expired token
- Change reconnection logic to have few instant attempts + Add TokenProviderException
- reduce default reconnection intervals
- Add a simple menu option to toggle Debug mode for the SDK
- Add overloads to StreamChannel to allow adding/removing members by their ID (#76)
- Add WebGL support (#78)
- Add sort parameter to
IStreamChatClient.QueryChannelsAsync
- Make filters parameter optional in
IStreamChatClient.QueryChannelsAsync