Skip to content

Releases: sendbird/sendbird-uikit-android

v3.13.0

01 Feb 08:14
60cd795
Compare
Choose a tag to compare

v3.13.0 (Feb 1, 2024) with Chat SDK v4.14.2

  • A feedback feature has been added to give opinions on the message.
    • Added enableFeedback in ChannelConfig.
    • Added OnFeedbackRatingClickListener which is a callback to be invoked when a feedback rating is clicked.
    • Added getFeedbackRatingClickListener() and setFeedbackRatingClickListener(OnFeedbackRatingClickListener) in BaseMessageListAdapter.
    • Added setOnFeedbackRatingClickListener(OnFeedbackRatingClickListener) and onFeedbackRatingClicked(BaseMessage, FeedbackRating) in BaseMessageListComponent.
    • Added onFeedbackRatingClicked(BaseMessage, FeedbackRating) in ChannelFragment.
    • Added submitFeedback(BaseMessage, FeedbackRating, String) and removeFeedback(BaseMessage) in ChannelViewModel.
    • Added onFeedbackSubmitted(), onFeedbackUpdated() and onFeedbackDelete in ChannelViewModel. They allow you to observe feedback events for submitting, updating and deleting feedback.

v3.12.1

18 Jan 05:56
09c81c2
Compare
Choose a tag to compare

v3.12.1 (Jan 18, 2024) with Chat SDK v4.14.1

  • Fix memory leaks in UIKit.

v3.12.0

04 Jan 05:20
2e6956f
Compare
Choose a tag to compare

v3.12.0 (Jan, 2024) with Chat SDK v4.13.0

  • Added sendLogImpression(List<BaseMessage>) in FeedNotificationChannelViewModel.
  • Improved performance of scrolling in Message List.

MyMessageViewHolder and OtherMessageViewHolder:

  • Added MyMessageViewHolder and OtherMessageViewHolder to provide a basic UI frame for single message.
  • These ViewHolders include UI elements such as 'message sent time,' 'nickname,' 'profile,' and 'sending status,' excluding the content area.
  • Customers can now customize only the content area. Note: This feature is currently experimental.

BaseMessageListViewModel.buildMessageList():

  • Added BaseMessageListViewModel.buildMessageList() to allow customers to customize the message list before delivering it to the view.
class CustomChannelViewModel(
    channelUrl: String
) : ChannelViewModel(channelUrl, null) {
    override fun buildMessageList(): List<BaseMessage> {
        return super.buildMessageList().map { message ->
            // Customize the message here
            message
        }
    }
}

v3.11.0

29 Nov 08:02
28c5f2f
Compare
Choose a tag to compare

v3.11.0 (Nov 29, 2023) with Chat SDK v4.13.0

  • VIEW_TYPE_TYPING_INDICATOR is a new typing indicator UI that can be turned on through typingIndicatorTypes option. When turned on, it will be displayed in ChannelFragment upon receiving typing event in real time.
    • Added typingIndicatorTypes in ChannelConfig.

v3.10.1

09 Nov 03:43
1696181
Compare
Choose a tag to compare

v3.10.1 (Nov 9, 2023) with Chat SDK v4.13.0

  • Added uikit-samples project to demonstrate the usage of UIKit.
  • Added resetToDefault() in FragmentProviders, ModuleProviders, AdapterProviders and ViewModelProviders to reset the providers to default.

v3.10.0

03 Nov 09:10
6541c68
Compare
Choose a tag to compare

v3.10.0 (Nov 3, 2023) with Chat SDK v4.13.0

  • Added the Suggested Replies feature to enable quick and effective question asking to the bot.
    • Added ChannelConfig.enableSuggestedReplies configuration to enable/disable Suggested Replies feature.
  • Added the Form type message feature to enable the user to submit a form type message received by the bot.
    • Added ChannelConfig.enableFormTypeMessage configuration to enable/disable Form type message feature.

v3.9.3

26 Oct 05:14
54b4a7a
Compare
Choose a tag to compare

v3.9.3 (Oct 26, 2023) with Chat SDK v4.13.0

  • Improve stability.

v3.9.2

12 Oct 05:16
52ad84d
Compare
Choose a tag to compare

v3.9.2 (Oct 12, 2023) with Chat SDK v4.12.3

  • Added setVoiceRecorderConfig(VoiceRecorderConfig) and getVoiceRecorderConfig() in SendbirdUIKit.
  • Added setOnEmojiReactionUserListProfileClickListener(OnItemClickListener<User>) in ChannelFragment.Builder and MessageThreadFragment.Builder.
  • Improved stability.

v3.9.1

26 Sep 05:03
53c39e9
Compare
Choose a tag to compare

v3.9.1 (Sep 26, 2023) with Chat SDK v4.12.1

  • Fixed a problem with the user mentions feature in ThreadFragment
  • Filter deactivated users from the user mentions list.

v3.9.0

22 Sep 03:10
27eff38
Compare
Choose a tag to compare

v3.9.0 (Sep 22, 2023) with Chat SDK v4.12.1

  • Support Multiple files message
    • Added setEnableMultipleFilesMessage(boolean), getEnableMultipleFilesMessage() in ChannelConfig.
    • Added isMultipleMediaEnabled(), onMultipleMediaResult(List<Uri>), and onSingleMediaResult(Uri) in ChannelFragment and MessageThreadFragment.
    • Added sendMultipleFilesMessage(List<FileInfo>, MultipleFilesMessageCreateParams) in ChannelViewModel and MessageThreadViewModel.
    • Added onBeforeSendMultipleFilesMessage(MultipleFilesMessageCreateParams) in ChannelFragment, MessageThreadFragment, and CustomParamsHandler.
  • Added clone() in ChannelConfig, ChannelListConfig, ChannelSettingConfig, and OpenChannelConfig.

Custom Providers are supported to create and customize various components used in UIKit. Each Provider plays a role in generating key components used in UIKit. You can customize each Provider to easily use and customize UIKit's main components.

  • Support custom providers
    • ModuleProviders
    • AdapterProviders
    • FragmentProviders
    • ViewModelProviders
  • Simple example of using each Provider to work with custom data.

ModuleProviders

ModuleProviders.channel = ChannelModuleProvider { context, args ->
    ChannelModule(context).apply {
        setHeaderComponent(CustomHeaderComponent())
    }
}

AdapterProviders

AdapterProviders.channelList = ChannelListAdapterProvider { uiParams ->
    CustomChannelListAdapter()
}

FragmentProviders

FragmentProviders.channel = ChannelFragmentProvider { channelUrl, args ->
    ChannelFragment.Builder(channelUrl)
        .setUseHeader(true)
        .setCustomFragment(CustomChannelFragment())
        .withArguments(args)
        .build()
}

ViewModelProviders

ViewModelProviders.channel = ChannelViewModelProvider { owner, channelUrl, params, config ->
    ViewModelProvider(
        owner,
        CustomViewModelFactory(channelUrl, params, config)
    )[channelUrl, CustomChannelViewModel::class.java]
}

All Providers must be configured before use, and it's recommended to configure them in the Application class.