Skip to content

Releases: GetStream/stream-chat-unity

v5.0.0

04 Oct 14:49
302144f
Compare
Choose a tag to compare

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 via StreamChatClient.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

23 Aug 11:36
a8da04c
Compare
Choose a tag to compare

Fixes:

  • Fix compiler errors after switching to the WebGL platform (#179)

v4.8.0

07 Aug 12:35
59357eb
Compare
Choose a tag to compare

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

27 Jun 12:33
f7c138a
Compare
Choose a tag to compare

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

11 Jun 16:49
f24bae1
Compare
Choose a tag to compare

Improvements:

  • Added client events that are fired when the local user is added to a new channel -> IStreamChatClient.AddedToChannelAsMember or removed from a channel IStreamChatClient.RemovedFromChannelAsMember - These two events fire only for channels that are not tracked locally. For tracked channels, the IStreamChannel.MemberAdded & IStreamChannel.MemberRemoved should be used (#146)

v.4.5.0

06 Jun 09:08
23204df
Compare
Choose a tag to compare

Fixes:

  • Fixed channel member role deserialization breaking (#143)

Improvements:

  • Reduced memory allocations (#144)

Code Samples:

  • Added code examples for the user presence (online status) (#142)

v4.4.0

27 Mar 10:44
6604878
Compare
Choose a tag to compare

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) + changed NativeWebSocket to be only included in a WebGL build (#138)

Sample Project:

  • Fixes:
    • Fixed Json deserialization error due to code being stripped by the IL2CPP (#137)

v4.3.0

03 Jan 11:55
Compare
Choose a tag to compare

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
  • Improvements
    • Added invite mechanics

v4.2.0

20 Apr 14:43
f2a33d4
Compare
Choose a tag to compare

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 method JoinAsMemberAsync and LeaveAsMemberChannelAsync (#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

12 Jan 11:04
10ada48
Compare
Choose a tag to compare

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