Skip to content

Releases: sendbird/sendbird-chat-sdk-android

ktx/4.31.0

29 Oct 06:38
53bf5e7

Choose a tag to compare

Features

  • Added support for closing conversation manually for AI Agent in GroupChannel
    • GroupChannel.awaitCloseConversation()

chat/4.31.0

29 Oct 05:08
bdd3c35

Choose a tag to compare

Features

  • Added support for closing conversation manually for AI Agent in GroupChannel
    • GroupChannel.closeConversation(handler: CompletionHandler?)

ktx/4.30.0

22 Oct 09:08
04efeb7

Choose a tag to compare

Features

  • Added onConnectionDelayed callback to ConnectionHandler.
    • A new callback method that is invoked when the server is overloaded. This callback provides information about the delay time before automatic reconnection. After the delayed time period, the SDK automatically initiates reconnection and triggers the callback sequence: onReconnectStartedonReconnectSucceeded
      interface ConnectionHandler {
          fun onConnected(userId: String) {}
          fun onDisconnected(userId: String) {}
          fun onReconnectStarted() {}
          fun onReconnectSucceeded() {}
          fun onReconnectFailed() {}
      
          /**
          * A callback for when the connection is delayed.
          *
          * @param retryAfter The time in seconds to wait before the next reconnection attempt.
          */
          fun onConnectionDelayed(retryAfter: Long) {}
      }
      
      runCatching {
          SendbirdChat.awaitConnect(USER_ID, AUTH_TOKEN)
      }.onSuccess { user ->
          // Connection successful
      }.onFailure { e ->
          val sendbirdException = e as SendbirdException
          if (sendbirdException.code == SendbirdError.ERR_CONNECTION_DELAYED) {
              val data = sendbirdException.data
              // The delay time in seconds before automatic reconnection
              val retryAfter: Long = data["retry_after"] as? Long ?: 0
              // Server-provided reason code for the delay
              val message = data["message"] as? String ?: ""
              // Detailed error message explaining the delay
              val reasonCode: Int = data["reason_code"] as? Int ?: 0
      
              // The SDK will automatically retry after the specified delay time
              // and the result will be notified through ConnectionHandler.onReconnectSucceeded().
          }
      }
  • Added SendbirdChat.Options.setTypingIndicatorInvalidateTime(invalidateTimeMillis: Long)
    • Sets typing indicator invalidation time. Defaults to 10000 (10 seconds)

Improvements

  • Added a condition in AIAgentGroupChannelListQuery.belongsTo() to exclude non–AI Agent and non–Desk channels from the query results.

chat/4.30.0

22 Oct 08:27
7b4241d

Choose a tag to compare

Features

  • Added onConnectionDelayed callback to ConnectionHandler.
    • A new callback method that is invoked when the server is overloaded. This callback provides information about the delay time before automatic reconnection. After the delayed time period, the SDK automatically initiates reconnection and triggers the callback sequence: onReconnectStartedonReconnectSucceeded
      interface ConnectionHandler {
          fun onConnected(userId: String) {}
          fun onDisconnected(userId: String) {}
          fun onReconnectStarted() {}
          fun onReconnectSucceeded() {}
          fun onReconnectFailed() {}
      
          /**
          * A callback for when the connection is delayed.
          *
          * @param retryAfter The time in seconds to wait before the next reconnection attempt.
          */
          fun onConnectionDelayed(retryAfter: Long) {}
      }
      
      SendbirdChat.connect(USER_ID, AUTH_TOKEN) { user, e ->
          if (e != null) {
              if (e.code == SendbirdError.ERR_CONNECTION_DELAYED) {
                  val data = e.data
                  // The delay time in seconds before automatic reconnection
                  val retryAfter: Long = data["retry_after"] as? Long ?: 0
                  // Server-provided reason code for the delay
                  val message = data["message"] as? String ?: ""
                  // Detailed error message explaining the delay
                  val reasonCode: Int = data["reason_code"] as? Int ?: 0
      
                  // The SDK will automatically retry after the specified delay time
                  // and the result will be notified through ConnectionHandler.onReconnectSucceeded().
                  return@connect
              }
          }
          // Connection successful
      }
  • Added SendbirdChat.Options.setTypingIndicatorInvalidateTime(invalidateTimeMillis: Long)
    • Sets typing indicator invalidation time. Defaults to 10000 (10 seconds)

Improvements

  • Added a condition in AIAgentGroupChannelListQuery.belongsTo() to exclude non–AI Agent and non–Desk channels from the query results.

ktx/4.29.0

25 Sep 01:35
be5cccd

Choose a tag to compare

Features

  • Added new properties to Conversation:
    • handedOverAt: Long? — The timestamp when the conversation was handed over to a human agent.
    • aiAgentId: String? — The ID of the AI agent associated with the conversation.
  • Added new properties to GroupChannel:
    • helpdesk: HelpdeskInfo — The helpdesk information of this channel for accessing helpdesk-related data.

Improvements

  • Improved SQL safety in SDK local DB

chat/4.29.0

24 Sep 12:29
68baf39

Choose a tag to compare

Features

  • Added new properties to Conversation:
    • handedOverAt: Long? — The timestamp when the conversation was handed over to a human agent.
    • aiAgentId: String? — The ID of the AI agent associated with the conversation.
  • Added new properties to GroupChannel:
    • helpdesk: HelpdeskInfo — The helpdesk information of this channel for accessing helpdesk-related data.

Improvements

  • Improved SQL safety in SDK local DB

chat/4.28.3

29 Aug 08:41
d0c7ec3

Choose a tag to compare

Improvements

  • Fixed an issue where BaseMessage.sender could contain incorrect data in an OpenChannel

4.28.2

31 Jul 07:06
0e6475c

Choose a tag to compare

Improvements

  • Fixed an issue where messages with same createdAt timestamps disappeared from MessageCollection

4.28.1

25 Jul 08:05
01acca3

Choose a tag to compare

Improvements

  • Update the logic for parsing the variables field of MessageTemplate to use the raw JSON data instead.

4.28.0

24 Jul 06:59
f082d4b

Choose a tag to compare

Features

  • Added support for managing context objects for AI Agent in GroupChannel

    • GroupChannel.updateContext(aiAgentId: String, contextMap: Map<String, String>, handler: AIAgentContextHandler?)
    • GroupChannel.patchContext(aiAgentId: String, contextMap: Map<String, String>, handler: AIAgentContextHandler?)
    • GroupChannel.getContextObject(aiAgentId: String, handler: AIAgentContextHandler?)
  • Added AI Agent group channel query APIs to SendbirdChat.AIAgent

    • createMyGroupChannelListQuery()
    • getMyGroupChannelChangeLogsByTimestamp()
    • getMyGroupChannelChangeLogsByToken()
    • getUnreadMessageCount()

Improvements

  • Improved SendbirdChat.init() to handle multiple synchronous calls more reliably