-
Notifications
You must be signed in to change notification settings - Fork 227
4.92.0 Release #3869
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
4.92.0 Release #3869
Conversation
…3854) * Fix new input text in the composer deleted after quickly deleting previous text from draft * Update CHANGELOG.md
* Fix date separator not shown on newly created channel * Update CHANGELOG.md * Fix test with pagination
…t belongs to multiple queries (#3857) * Track ongoing watch channel requests to avoid duplicate watch channels * Update CHANGELOG.md * Update CHANGELOG.md * Rename to `ChannelWatchingActiveRequests` * Introduce a `ChannelWatcherHandler` * Fix ChannelListController_Tests
* Add Channel Delivered endpoint and payloads * Add `CurrentChatUserController.markChannelsDelivered()` * Handle marking channels as delivered in the ChannelListController * Add `lastDeliveredAt` and `lastDeliveredMessageId` properties * Add `ChannelDeliveredMiddleware` * Message delivered event handling * Add example to the demo app to view the delivery info * Fix handling delivered event tests * Mark message as delivered in the demo app when a push is received Expose markMessageAsDelivered in chat notification handler * Fix AppConfigViewController incorrect delivery flag name * Simplify notification service * Improve the naming of getting the message of a channel to be marked as delivered * Rename markChannelsDelivered -> markMessagesAsDelivered * Improve the channel delivered middleware safeness * Add a `ChannelDeliveryTracker` to handle only the throttling and submitting channels for delivery * Use the tracker in the notification service * Make sure to update the latest message whenever it is delivered to a user * Add documentation to latestMessageNotMarkedAsDelivered() * Update CHANGELOG.md * Fix forgotten super call in demo app code * Change the type of `latestMessageNotMarkedAsDelivered` to `ChatMessage` * Add `ChatChannel.reads(message:)` and `ChatChannel.deliveredReads(message:)` * Update CHANGELOG.md * Make the `DemoMessageReadsInfoView` live updated * Remove delivery tracker from Push Notification Service Since the NSE is spawned fresh everytime it can't have in-memory state * Change Message Events to classes to improve SDK size * Add sorting tie breaker to the reads info view * Cancel message delivery if it was delivered from another device of the current user * Add `ChatChannelConfig.deliveredEventsEnabled` * Centralize logic to check if a message can be marked as delivered * Fix tests with new canMarkMessageAsDelivered logic * Add user delivery receipts settings * Use the privacy settings to check canMarkasDelivered * Fix UI tests not compiling * Update CHANGELOG.md * Fix wrong config name * Make the notifcation handler safer * Remove `CurrentUserController.markMessageAsDelivered()` since it should not be exposed. * Remove `ChatChannel.latestUndeliveredMessage` * Add `MessageDeliveryCriteriaValidator` * Fix default privacy setting value * Self review changes * Comparison dates robostuness * Remove outdated documentation * Fix deliveredReads sometimes not returning when message was indeed delivered * Make SwiftUI ENV the default of the Demo App * Add `MessageDeliveryStatus.delivered` + Double grey checkmark when message is delivered * Add test coverage to the new delivered status * Update CHANGELOG.md * Fix ChannelConfig mock in tests * AI Code review changes * Fix channel list controller tests * Update CHANGELOG.md * [CI] Snapshots (#3864) Co-authored-by: Stream Bot <[email protected]> * Move delivered reload cell to the SDK * Only refresh last cell if needed * Fix e2e tests api key issue (#3865) * Revert channel config mock tests for E2E Tests * Revert "Make SwiftUI ENV the default of the Demo App" This reverts commit df89bc7. --------- Co-authored-by: Stream SDK Bot <[email protected]> Co-authored-by: Stream Bot <[email protected]> Co-authored-by: Alexey Alter-Pesotskiy <[email protected]>
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the You can disable this status message by setting the ✨ Finishing touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
SDK Performance
|
|
Build for regression testing №123457101 has been uploaded to TestFlight 🎁 |
Generated by 🚫 Danger |
StreamChat XCSize
Show 54 more objects
|
StreamChatUI XCSize
|
SDK Size
|
|
Build for regression testing №123457102 has been uploaded to TestFlight 🎁 |
Public Interface+ public class MessageReadEvent: ChannelSpecificEvent
+
+ public let user: ChatUser
+ public var cid: ChannelId
+ public let channel: ChatChannel
+ public let thread: ChatThread?
+ public let createdAt: Date
+ public let unreadCount: UnreadCount?
+ public class MessageNewEvent: ChannelSpecificEvent, HasUnreadCount
+
+ public let user: ChatUser
+ public let message: ChatMessage
+ public var cid: ChannelId
+ public let channel: ChatChannel
+ public let createdAt: Date
+ public let watcherCount: Int?
+ public let unreadCount: UnreadCount?
+ public class MessageDeliveredEvent: ChannelSpecificEvent
+
+ public let user: ChatUser
+ public var cid: ChannelId
+ public let channel: ChatChannel
+ public let createdAt: Date
+ public let lastDeliveredMessageId: MessageId
+ public let lastDeliveredAt: Date
+ public class MessageUpdatedEvent: ChannelSpecificEvent
+
+ public let user: ChatUser
+ public var cid: ChannelId
+ public let channel: ChatChannel
+ public let message: ChatMessage
+ public let createdAt: Date
+ public struct MessageDeliveryInfo: Equatable
+
+ public let channelId: ChannelId
+ public let messageId: MessageId
+
+
+ public init(channelId: ChannelId,messageId: MessageId)
+ public struct DeliveryReceiptsPrivacySettings
+
+ public var enabled: Bool
+
+
+ public init(enabled: Bool = true)
+ public class NewMessagePendingEvent: ChannelSpecificEvent
+
+ public var message: ChatMessage
+ public var cid: ChannelId
+ public class MessageDeletedEvent: ChannelSpecificEvent
+
+ public let user: ChatUser?
+ public var cid: ChannelId
+ public let channel: ChatChannel
+ public let message: ChatMessage
+ public let createdAt: Date
+ public let isHardDelete: Bool
+ public let deletedForMe: Bool
+ public class NewMessageErrorEvent: ChannelSpecificEvent
+
+ public let messageId: MessageId
+ public let cid: ChannelId
+ public let error: Error
- public struct NewMessageErrorEvent: ChannelSpecificEvent
-
- public let messageId: MessageId
- public let cid: ChannelId
- public let error: Error
- public struct MessageNewEvent: ChannelSpecificEvent, HasUnreadCount
-
- public let user: ChatUser
- public let message: ChatMessage
- public var cid: ChannelId
- public let channel: ChatChannel
- public let createdAt: Date
- public let watcherCount: Int?
- public let unreadCount: UnreadCount?
- public struct MessageReadEvent: ChannelSpecificEvent
-
- public let user: ChatUser
- public var cid: ChannelId
- public let channel: ChatChannel
- public let thread: ChatThread?
- public let createdAt: Date
- public let unreadCount: UnreadCount?
- public struct MessageUpdatedEvent: ChannelSpecificEvent
-
- public let user: ChatUser
- public var cid: ChannelId
- public let channel: ChatChannel
- public let message: ChatMessage
- public let createdAt: Date
- public struct MessageDeletedEvent: ChannelSpecificEvent
-
- public let user: ChatUser?
- public var cid: ChannelId
- public let channel: ChatChannel
- public let message: ChatMessage
- public let createdAt: Date
- public let isHardDelete: Bool
- public let deletedForMe: Bool
- public struct NewMessagePendingEvent: ChannelSpecificEvent
-
- public var message: ChatMessage
- public var cid: ChannelId
open class ChatMessageDeliveryStatusView: _Control, ThemeProvider
-
+ public var deliveryStatus: MessageDeliveryStatus?
-
+
- public init(message: ChatMessage,channel: ChatChannel)
+
+ public init(message: ChatMessage,channel: ChatChannel)
public struct MessageDeliveryStatus: RawRepresentable, Hashable
- public static let read
+ public static let delivered
- public static let failed
+ public static let read
-
+ public static let failed
-
+
- public init(rawValue: String)
+
+ public init(rawValue: String)
public class ChannelConfig: Codable
- case readEventsEnabled = "read_events"
+ case deliveryEventsEnabled = "delivery_events"
- case connectEventsEnabled = "connect_events"
+ case readEventsEnabled = "read_events"
- case uploadsEnabled = "uploads"
+ case connectEventsEnabled = "connect_events"
- case repliesEnabled = "replies"
+ case uploadsEnabled = "uploads"
- case quotesEnabled = "quotes"
+ case repliesEnabled = "replies"
- case searchEnabled = "search"
+ case quotesEnabled = "quotes"
- case mutesEnabled = "mutes"
+ case searchEnabled = "search"
- case pollsEnabled = "polls"
+ case mutesEnabled = "mutes"
- case urlEnrichmentEnabled = "url_enrichment"
+ case pollsEnabled = "polls"
- case messageRetention = "message_retention"
+ case urlEnrichmentEnabled = "url_enrichment"
- case maxMessageLength = "max_message_length"
+ case messageRetention = "message_retention"
- case commands
+ case maxMessageLength = "max_message_length"
- case createdAt = "created_at"
+ case commands
- case updatedAt = "updated_at"
+ case createdAt = "created_at"
- case skipLastMsgAtUpdateForSystemMsg = "skip_last_msg_update_for_system_msgs"
+ case updatedAt = "updated_at"
- case messageRemindersEnabled = "user_message_reminders"
+ case skipLastMsgAtUpdateForSystemMsg = "skip_last_msg_update_for_system_msgs"
- case sharedLocationsEnabled = "shared_locations"
+ case messageRemindersEnabled = "user_message_reminders"
-
+ case sharedLocationsEnabled = "shared_locations"
-
+
- public let reactionsEnabled: Bool
+
- public let typingEventsEnabled: Bool
+ public let reactionsEnabled: Bool
- public let readEventsEnabled: Bool
+ public let typingEventsEnabled: Bool
- public let connectEventsEnabled: Bool
+ public let readEventsEnabled: Bool
- public let uploadsEnabled: Bool
+ public let deliveryEventsEnabled: Bool
- public let repliesEnabled: Bool
+ public let connectEventsEnabled: Bool
- public let quotesEnabled: Bool
+ public let uploadsEnabled: Bool
- public let searchEnabled: Bool
+ public let repliesEnabled: Bool
- public let mutesEnabled: Bool
+ public let quotesEnabled: Bool
- public let urlEnrichmentEnabled: Bool
+ public let searchEnabled: Bool
- public let messageRetention: String
+ public let mutesEnabled: Bool
- public let maxMessageLength: Int
+ public let urlEnrichmentEnabled: Bool
- public let commands: [Command]
+ public let messageRetention: String
- public let createdAt: Date
+ public let maxMessageLength: Int
- public let updatedAt: Date
+ public let commands: [Command]
- public let pollsEnabled: Bool
+ public let createdAt: Date
- public let skipLastMsgAtUpdateForSystemMsg: Bool
+ public let updatedAt: Date
- public let messageRemindersEnabled: Bool
+ public let pollsEnabled: Bool
- public let sharedLocationsEnabled: Bool
+ public let skipLastMsgAtUpdateForSystemMsg: Bool
-
+ public let messageRemindersEnabled: Bool
-
+ public let sharedLocationsEnabled: Bool
- public required init(from decoder: Decoder)throws
+
+
+ public required init(from decoder: Decoder)throws
public struct UserPrivacySettings
-
+ public var deliveryReceipts: DeliveryReceiptsPrivacySettings?
-
+
- public init(typingIndicators: TypingIndicatorPrivacySettings? = nil,readReceipts: ReadReceiptsPrivacySettings? = nil)
+
+ public init(typingIndicators: TypingIndicatorPrivacySettings? = nil,readReceipts: ReadReceiptsPrivacySettings? = nil,deliveryReceipts: DeliveryReceiptsPrivacySettings? = nil)
public struct ChatChannelRead: Equatable
+ public let lastDeliveredAt: Date?
+ public let lastDeliveredMessageId: MessageId?
public class ChatRemoteNotificationHandler
+ public func markMessageAsDelivered(_ message: ChatMessage,for channel: ChatChannel) |
|
|
/merge release |
|
Publication of the release has been launched 👍 |



StreamChat
✅ Added
ChatRemoteNotificationHandler.markMessageAsDelivered(deliveries:)ChatChannel.reads(message:)andChatChannel.deliveredReads(message:)ChatChannelRead.lastDeliveredAtChatChannelRead.lastDeliveredMessageIdMessageDeliveryStatus.delivered🐞 Fixed
ChannelController.hasLoadedAllPreviousMessagesnot correct for newly created channels #3855🔄 Changed
ChatMessage.deliveryStatusin favour ofChatMessage.deliveryStatus(channel:)#3846StreamChatUI
✅ Added
🐞 Fixed