Files
stream-chat-flutter/packages/stream_chat/CHANGELOG.md
T

745 lines
17 KiB
Markdown

## Upcoming
🐞 Fixed
- [[#799]](https://github.com/GetStream/stream-chat-flutter/issues/799) Fixed `totalUnreadCount` is not updating when
app is resumed from background mode.
- Fix retry mechanism failing in some cases.
## 3.3.0
✅ Added
- Extra properties added to `PaginationParams` to aid in fetching messages.
- Added hard delete functionality.
🐞 Fixed
- `closeConnection()` now uses `normalClosure` status when closing websocket.
- Fixed local unread count indicator increasing for thread replies.
- Fixed user presence indicator not updating correctly.
- `ChannelEvent.membersCount` defaults to 0 avoiding parsing errors due to missing `members_count` field.
## 3.2.0
🐞 Fixed
- `markAllRead()` now updates local channel states.
- [[#744]](https://github.com/GetStream/stream-chat-flutter/issues/744) Fixed unread count not updating correctly
## 3.1.1
✅ Added
- Added `Filter.notExists`.
🐞 Fixed
- [[#710]](https://github.com/GetStream/stream-chat-flutter/issues/710) Fixed JWT requiring using `String` as id.
- Fixed expired CDN attachment links not updating correctly.
## 3.0.0
🛑️ Breaking Changes from `2.2.1`
- Added 6 new methods in `ChatPersistenceClient`.
- `bulkUpdateMessages`
- `bulkUpdatePinnedMessages`
- `bulkUpdateMembers`
- `bulkUpdateReads`
- `updatePinnedMessageReactions`
- `deletePinnedMessageReactionsByMessageId`
✅ Added
- Added `Filter.contains` and `Filter.empty`
- Added support for `next`, `previous` value pagination in `client.search`
, [read more.](https://getstream.io/chat/docs/other-rest/search/#pagination)
- `Attachment` class now has a `fileSize` and `mimeType` property. Setting a `file` will also set the `file_size`
, `mime_type` key on `extraData`, so `attachment.fileSize`, `attachment.mimetype`
and `attachment.extraData['file_size']`
, `attachment.extraData['mime_type]` is same respectively.
🐞 Fixed
- [[#659]](https://github.com/GetStream/stream-chat-flutter/issues/659) Fixed unread count not updating correctly.
- Fix `Filter.empty()` json encoding.
- [[#700]](https://github.com/GetStream/stream-chat-flutter/issues/700) Connecting user without providing `name`
uses `id` instead for setting `user.name`.
## 2.2.1
🐞 Fixed
- Fixed unread indicator not updating correctly
- Fix `channel.show` not working because of null body
## 2.2.0
🐞 Fixed
- Fixed `channel.markAllRead` throwing failed host lookup.
✅ Added
- `User` and `OwnUser` classes now have an `image` property. Setting an image will also set the 'image' key
on `extraData`, so `user.image` and `user.extraData['image']` is the same.
- `User` and `OwnUser` classes now have a `name` property. Setting a name will also set the 'name' key on `extraData`,
so `user.name` and `user.extraData['name']` is the same.
- `Channel` class now has extra `image` getter and setter. As well as an `updateImage` to do a partial update after a
channel has been initialized.
- `Channel` class now has extra `name` getter and setter. As well as an `updateName` to do a partial update after a
channel has been initialized.
- Added slow mode which allows a cooldown period after a user sends a message.
## 2.1.1
🐞 Fixed
- Mutes were not working correctly in 2.1.0
## 2.1.0
🛑️ Removed
- The `MessageTranslation` class has been removed. Use the new `i18n` field in the `Message` class instead.
✅ Added
- The `Message` class now has an `i18n` field for translations
- The `User` class now has a `language` field for the user's language preference.
🔄 Changed
- `client.user` is now deprecated in favor of `client.currentUser`.
- `client.userStream` is now deprecated in favor of `client.currentUserStream`.
🐞 Fixed
- [#563](https://github.com/GetStream/stream-chat-flutter/issues/563): `Channel.stopWatching()` not working
- [#575](https://github.com/GetStream/stream-chat-flutter/issues/575): Wrong `OwnUser.*`
## 2.0.0
🛑️ Breaking Changes from `1.5.3`
- migrate this package to null safety
- `ConnectUserWithProvider` now requires `tokenProvider` as a required param. (Removed from the constructor)
- `client.disconnect()` is now divided into two different functions
- `client.closeConnection()` -> for closing user websocket connection.
- `client.disconnectUser()` -> for disconnecting user and resetting client state.
- `client.devToken()` now returns a `Token` model instead of `String`.
- `ApiError` is removed in favor of `StreamChatError`
- `StreamChatError` -> parent type for all the stream errors.
- `StreamWebSocketError` -> for user websocket related errors.
- `StreamChatNetworkError` -> for network related errors.
- `client.queryChannels()`, `channel.query()` options param is removed in favor of individual params
- `option.state` -> bool state
- `option.watch` -> bool watch
- `option.presence` -> bool presence
- `client.queryUsers()` options param is removed in favor of individual params
- `option.presence` -> bool presence
- Migrate this package to null safety
- Added typed filters
🐞 Fixed
- [#369](https://github.com/GetStream/stream-chat-flutter/issues/369): Client does not return without internet
connection
- several minor fixes
- performance improvements
✅ Added
- New `Location` enum is introduced for easily changing the client location/baseUrl.
- New `client.openConnection()` and `client.closeConnection()` is introduced to connect/disconnect user ws connection.
- New `client.partialUpdateMessage` and `channel.partialUpdateMessage` methods
- `connectWebSocket` parameter in connect user calls to use the client in "connection-less" mode.
🔄 Changed
- `baseURL` is now deprecated in favor of using `Location` to change data location.
## 2.0.0-nullsafety.8
🐞 Fixed
- Export `PushProvider` enum
## 2.0.0-nullsafety.7
🛑️ Breaking Changes from `2.0.0-nullsafety.6`
- `ConnectUserWithProvider` now requires `tokenProvider` as a required param. (Removed from the constructor)
- `client.disconnect()` is now divided into two different functions
- `client.closeConnection()` -> for closing user websocket connection.
- `client.disconnectUser()` -> for disconnecting user and resetting client state.
- `client.devToken()` now returns a `Token` model instead of `String`.
- `ApiError` is removed in favor of `StreamChatError`
- `StreamChatError` -> parent type for all the stream errors.
- `StreamWebSocketError` -> for user websocket related errors.
- `StreamChatNetworkError` -> for network related errors.
- `client.queryChannels()`, `channel.query()` options param is removed in favor of individual params
- `option.state` -> bool state
- `option.watch` -> bool watch
- `option.presence` -> bool presence
- `client.queryUsers()` options param is removed in favor of individual params
- `option.presence` -> bool presence
✅ Added
- New `Location` enum is introduced for easily changing the client location/baseUrl.
- New `client.openConnection()` and `client.closeConnection()` is introduced to connect/disconnect user ws connection.
🔄 Changed
- `baseURL` is now deprecated in favor of using `Location` to change data location.
## 2.0.0-nullsafety.6
- Fix thread reply not working with attachments
- Minor fixes
## 2.0.0-nullsafety.5
- Minor fixes
- Performance improvements
- Fixed `skip_push` in `client.sendMessage`
- Added partial message update method
## 2.0.0-nullsafety.2
- Added new `Filter.raw` constructor
- Changed extraData
- Minor fixes
## 2.0.0-nullsafety.1
- Migrate this package to null safety
- Added typed filters
## 1.5.3
- fix: `StreamChatClient.connect` returns quicker when you're using the persistence package
## 1.5.2
- fix: `queryChannels` should throw exceptions only if no data is present in cache.
## 1.5.1
- Minor fixes and improvements
## 1.5.0
- Minor fixes and improvements
## 1.4.0-beta
- Improved attachment uploading
- Fix: update member presence
- Added skip_push to message model
- Minor fixes and improvements
## 1.3.2+1-beta
- Fixed queryChannels bug
## 1.3.1-beta
- Debounced frequent db calls
## 1.3.0-beta
- Save pinned messages in offline storage
- Minor fixes
- `StreamClient.QueryChannels` now returns a Stream and fetches the channels from storage before calling the api
- Added `StreamClient.QueryChannelsOnline` and `StreamClient.QueryChannelsOffline` to fetch channels only from online or
offline
## 1.2.0-beta
- 🛑 **BREAKING** Changed signature of `StreamClient.search` method
- Added `pinMessage` feature [docs here](https://getstream.io/chat/docs/flutter-dart/pinned_messages/?language=dart)
- Fixed minor bugs
## 1.1.0-beta
- Fixed minor bugs
- Add support for custom attachment
upload [docs here](https://getstream.io/chat/docs/flutter-dart/file_uploads/?language=dart)
- Add support for asynchronous attachment upload
## 1.0.3-beta
- Fixed issue with disconnecting after connecting without awaiting the connection result
- Fixed bug that caused duplicated typing.stop events to be fired
## 1.0.2-beta
- Deprecated `setUser`, `setGuestUser`, `setUserWithProvider` in favor of `connectUser`, `connectGuestUser`
, `connectUserWithProvider`
- Optimised reaction updates - i.e., Update first call Api later.
## 1.0.1-beta
- Fixed pub analysis issues
## 1.0.0-beta
- 🛑 **BREAKING** Renamed `Client` to less generic `StreamChatClient`
- 🛑 **BREAKING** Segregated the persistence layer into separate
package [stream_chat_persistence](https://pub.dev/packages/stream_chat_persistence)
- 🛑 **BREAKING** Moved `Client.backgroundKeepAlive` to [core package](https://pub.dev/packages/stream_chat_core)
- 🛑 **BREAKING** Moved `Client.showLocalNotification` to [core package](https://pub.dev/packages/stream_chat_core) and
renamed it to `StreamChatCore.onBackgroundEventReceived`
- Removed `flutter` dependency. This is now a pure Dart package 🥳
- Minor improvements and bugfixes
## 0.2.24+2
- Fix reconnection bug while using tokenProvider
## 0.2.24+1
- Stop ws reconnection after calling disconnect
## 0.2.24
- Create enum for push providers
- Add merge helper functions in `Message` and `ChannelModel` for easier data manipulation
## 0.2.23+3
- Remove + notation from userAgent
- Fix optimistic update for totalUnreadCount
## 0.2.23+2
- Do not throw an error when calling queryChannels without an active connection if the offline storage is enabled
## 0.2.23+1
- Throw an error when calling queryChannels without an active connection
- Wait to establish a connection if calling queryChannels while connecting
## 0.2.23
- Add thread_participants in message model
## 0.2.22
- Add thread-less message reply feature (QuotedMessage)
## 0.2.21+2
- Fix but not throwing error during querychannels and persistance disabled
- Fix reaction.updated event handling
## 0.2.21+1
- Fix error in the offline storage queryChannelCids query
## 0.2.21
- Fix channel.hide(clearHistory: true) not clearing local messages
- Add banned field to member
## 0.2.20
- Return offline data only if the backend is unreachable. This avoids the glitch of the ChannelListView because we
cannot sort by custom properties.
## 0.2.19
- Added message filters for `Client.search()`
## 0.2.18
- Correctly dispose resources when disposing the client state
- Limit parallel queryChannels with same parameters to 1
- Added `clearUser` parameter to `client.disconnect` to remove the user instance of the client
## 0.2.17+1
- Do not retry messages when server returns error
## 0.2.17
- Add shadow ban feature
## 0.2.16
- Listen for user.updated events
## 0.2.15+2
- Fix reaction score updates
## 0.2.15+1
- Listen to reaction.updated event
## 0.2.15
- Fix search message response
## 0.2.14
- Add event.extradata
## 0.2.13+1
- Let user change channel.extradata if the channel is not initialized yet
## 0.2.13
- Add parent_id to events for typing indicators in threads
## 0.2.12+2
- Fix error with reactions with null user
## 0.2.12
- Do not save channels in memory if not being watched. This was leading to some bugs in some specific use-cases.
## 0.2.11
- Fix user.name getter
- Use detached loggers
- Throw error while connecting if it comes from backend
- Fix ws reconnection
## 0.2.10+2
- Fix bug with event filtering
## 0.2.10+1
- Add default limit to pagination
## 0.2.10
- Added `channel.state.unreadCountStream`
## 0.2.9
- Adding a message on `Channel.update` is now optional
## 0.2.8+1
- Fix retry logic
## 0.2.8
- Add missing event types
- Fix local sorting on offline storage
## 0.2.7+1
- `Client.channel` returns an existing channel if available
- Update message in the offline storage if attachment has expired (for the new CDN)
- Fix `GetMessagesByIdResponse` format
- Do not query messages if already existing in offline storage
## 0.2.6
- Experimental support for Flutter web and MacOs
## 0.2.5+2
- Cleaned up Serialization on extra_data
## 0.2.5+1
- Fix `channel.show` api call
## 0.2.5
- Add `channelType` and `channelId` properties to event object
## 0.2.4+2
- Fix query members messing channel state
## 0.2.4+1
- Do not resync if there is no channel in offlinestorage
## 0.2.4
- Add null-safety to ws disconnect
- Add pagination parameters to queryUsers request
## 0.2.3+3
- Fix reaction add/remove logic
## 0.2.3+2
- Skip system messages during unreadCount computation
## 0.2.3+1
- Removed moor_ffi from dependencies in favor of moor/ffi
## 0.2.3
- Fix reject invite payload
- Add multi-tenant properties to channel and user
## 0.2.2+1
- Fix queryChannels payload
## 0.2.2
- Fix add/remove/invite members api calls
## 0.2.1
- Add `isMutedStream` to `Channel`
- Add `isGroup` to `Channel`
- Add `isDistinct` to `Channel`
## 0.2.0+2
- Fix search messages response class
## 0.2.0+1
- Fix offline members update
- Add channel mutes
- Fix default channel sort
## 0.2.0
- Add `lastMessage` getter to Channel.state
- Add `isSystem` property to Message
- Incremental websocket reconnection timeout
- Add translate message api call
- Add queryMembers api call
- Add user list to client state
- Synchronize channel members status
- Add offline storage
- Add push notifications helper functions
## 0.2.0-alpha+23
- Add `lastMessage` getter to `Channel.state`
## 0.2.0-alpha+22
- Add `isSystem` property to Message
## 0.2.0-alpha+21
- Incremental websocket reconnection timeout
## 0.2.0-alpha+20
- More robust offline storage insertions
## 0.2.0-alpha+19
- Add translate message api call
- Add queryMembers api call
## 0.2.0-alpha+18
- Revert moor_ffi version to 0.5.0
## 0.2.0-alpha+17
- Add user list to client
- Synchronize channel members status
## 0.2.0-alpha+16
- Try QueryChannels when `resync` endpoint returns an error
## 0.2.0-alpha+15
- Fix receiving reactions
## 0.2.0-alpha+14
- Avoid sending local event for optimistic updates
## 0.2.0-alpha+13
- Fix offline on app first start up
## 0.2.0-alpha+12
- Fix retry mechanism in threads
- Fix delete channel query
## 0.2.0-alpha+9
- Add retry mechanism and retry queue
## 0.2.0-alpha+8
- Add copyWith to Attachment
## 0.2.0-alpha+7
- Add channel deleted/updated event handling
## 0.2.0-alpha+6
- Align with stable release
## 0.2.0-alpha+5
- Rename client parameters
## 0.2.0-alpha+3
- Remove dependencies on notification service
- Expose some helping method for integrate offline storage with push notifications
## 0.2.0-alpha+2
- Fix unread count
## 0.2.0-alpha
- Offline storage
- Push notifications
- Minor bug fixes
## 0.1.30
- Add silent property to message
## 0.1.29
- Fix read event handling
## 0.1.28
- Fix bug clearing members when receiving a message
## 0.1.27
- Update dependencies
## 0.1.26
- Remove wrong `members` property from `ChannelModel`
## 0.1.25
- Fix online status
## 0.1.24
- Fix unread count
## 0.1.22
- Add mute/unmute channel
## 0.1.20
- Fix channel query path without id
## 0.1.19
- Fix loading message replies
## 0.1.18
- Export dio error
## 0.1.17
- Ignore current user typing events
- Add event types
## 0.1.16
- Fix message update
## 0.1.15
- Fix mentions handling
## 0.1.14
- Handle message modification and commands
## 0.1.13
- Add message.updated event handling
## 0.1.12
- Add export multipart_file from dio
## 0.1.11
- Add channel config checks
## 0.1.10
- Rename Channel.channelClients to channels
## 0.1.9
- Fix channel update on message delete
## 0.1.8
- Add delete message handling
## 0.1.7
- Add reaction handling
## 0.1.6
- Add initialized completer
- Update example
## 0.1.5
- Add `ClientState` and `ChannelClientState` classes to handle channel state updates using events
- Update example supporting threads
## 0.1.4
- Update some api with wrong or incomplete signatures
- Add documentation for public apis
## 0.1.2
- add websocket reconnection logic
- add token expiration mechanism
## 0.1.1
- add typing events handling
## 0.1.0
- a better example can be found in the example/ directory
- fix some api calls and add missing one
## 0.0.2
- first beta version