github GetStream/stream-chat-swift 1.4.0

latest releases: 4.89.0, 4.88.0, 4.87.0...
5 years ago

⚠️ The update contains breaking changes.

Added

  • Channel.currentUnreadCount value to show the number in table view.
  • Get a message by id: Client.message(with messageId: String)
  • Mark all messages as reader: Client.markAllRead()
  • User.isInvisible
  • Flag/unflag users: Client.flag(user: User) or user.flag().
  • Ban user: Chanel.ban(user: User, timeoutInMinutes: Int? = nil, reason: String? = nil) .
  • Channel ban options: Channel. banEnabling:
/// Disabled for everyone.
case disabled

/// Enabled for everyone.
/// The default timeout in minutes until the ban is automatically expired.
/// The default reason the ban was created.
case enabled(timeoutInMinutes: Int?, reason: String?)

/// Enabled for channel members with a role of moderator or admin.
/// The default timeout in minutes until the ban is automatically expired.
/// The default reason the ban was created.
case enabledForModerators(timeoutInMinutes: Int?, reason: String?)
  • Event userBanned
  • Debug info when API key is empty.
  • More logs for Notifications errors.
  • ChannelPresenter. messageRead for the current user.
  • Client API key property is public and mutable for development in different environments. Not recommended for production.
  • Hiding the keyboard on landscape mode to add attachments.
  • Message search.
  • New flow to invite members to a channel:
// 1. Invite members with a creating a new channel
let channel = Channel(type: .messaging,
                      id: "awesome-chat", 
                      members: [tomasso, thierry]
                      invitedMembers: [nick])

channel.create().subscribe().disposed(by: disposeBag)

// 2. Invite user(s) to an exists channel.
channel.invite(nick).subscribe().disposed(by: disposeBag)

Renamed

  • ChannelsQuery: .messageLimit.messagesLimit.
  • User: .online.isOnline.

Changed

  • ClientLogger updated
  • Atomic
    from:
typealias DidSetCallback = (T?) -> Void

to:

typealias DidSetCallback = (_ value: T?, _ oldValue: T?) -> Void
  • Channel.watch(options: QueryOptions = []) with query options.

Fixed

  • BannerView memory leak.
  • A bug with the composer attachment button, when a channel config wasn't loaded.
  • ComposerView position with opaque Tabbar.
  • Reconnection after sleep for 10+ minutes.
  • Popup menu for iPad.
  • ReactionsView for iPhone in landscape orientation.
  • ComposerView bottom constraint when iPhone on the landscape orientation.

Don't miss a new stream-chat-swift release

NewReleases is sending notifications on new releases.