Skip to content

Commit

Permalink
Merge pull request #47 from sendbird/release/3.22.1
Browse files Browse the repository at this point in the history
3.22.1
  • Loading branch information
sendbird-sdk-deployment authored Feb 20, 2025
2 parents f4e815d + 4603686 commit dc3b4c5
Show file tree
Hide file tree
Showing 10 changed files with 29 additions and 42 deletions.
3 changes: 3 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
# Changelog
### v3.22.1 (Feb 20, 2025) with Chat SDK `v4.23.1`
* Fixed suggested replies not disappearing after sending a message.
* Fixed the mention list not showing up when typing a nickname.
### v3.22.0 (Dec 16, 2024) with Chat SDK `v4.21.1`
* Templated-related code has been moved to a separate module.
### v3.21.1 (Nov 12, 2024) with Chat SDK `v4.20.0`
Expand Down
2 changes: 1 addition & 1 deletion gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -22,5 +22,5 @@ android.nonTransitiveRClass=false
android.nonFinalResIds=false
android.enableR8.fullMode=false

UIKIT_VERSION = 3.22.0
UIKIT_VERSION = 3.22.1
UIKIT_VERSION_CODE = 1
2 changes: 1 addition & 1 deletion uikit/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])

// Sendbird
api 'com.sendbird.sdk:sendbird-chat:4.21.1'
api 'com.sendbird.sdk:sendbird-chat:4.23.1'
implementation "com.sendbird.sdk:message-template:1.0.0"

implementation 'com.github.bumptech.glide:glide:4.16.0'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,9 @@
import com.sendbird.android.user.User;
import com.sendbird.uikit.consts.MessageGroupType;
import com.sendbird.uikit.consts.ReplyType;
import com.sendbird.uikit.internal.extensions.MessageExtensionsKt;
import com.sendbird.uikit.internal.extensions.MessageTemplateExtensionsKt;
import com.sendbird.uikit.internal.model.templates.MessageTemplateStatus;
import com.sendbird.uikit.internal.extensions.MessageExtensionsKt;
import com.sendbird.uikit.model.MessageListUIParams;
import com.sendbird.uikit.model.TypingIndicatorMessage;
import com.sendbird.uikit.utils.MessageUtils;
Expand Down Expand Up @@ -93,7 +93,7 @@ public boolean areContentsTheSame(int oldItemPosition, int newItemPosition) {
}
}

if (MessageExtensionsKt.isSuggestedRepliesVisible(oldMessage) != MessageExtensionsKt.getShouldShowSuggestedReplies(newMessage)) {
if (MessageExtensionsKt.getShouldShowSuggestedReplies(oldMessage) != MessageExtensionsKt.getShouldShowSuggestedReplies(newMessage)) {
return false;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,7 @@ package com.sendbird.uikit.internal.extensions

import android.content.Context
import com.sendbird.android.annotation.AIChatBotExperimental
import com.sendbird.android.message.BaseFileMessage
import com.sendbird.android.message.BaseMessage
import com.sendbird.android.message.Emoji
import com.sendbird.android.message.FileMessage
import com.sendbird.android.message.MessageFormItem
import com.sendbird.android.message.MultipleFilesMessage
import com.sendbird.android.message.*
import com.sendbird.uikit.R
import com.sendbird.uikit.activities.adapter.MessageFormViewType
import com.sendbird.uikit.consts.StringSet
Expand Down Expand Up @@ -151,13 +146,6 @@ internal var BaseMessage.shouldShowSuggestedReplies: Boolean
this.extras[StringSet.should_show_suggested_replies] = value
}

@OptIn(AIChatBotExperimental::class)
internal var BaseMessage.isSuggestedRepliesVisible: Boolean
get() = this.extras[StringSet.is_suggested_replies_visible] as? Boolean ?: false
set(value) {
this.extras[StringSet.is_suggested_replies_visible] = value
}

internal val BaseMessage.isStreamMessage: Boolean
get() {
val data = this.data
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,16 +14,7 @@ import com.sendbird.uikit.consts.ReplyType
import com.sendbird.uikit.databinding.SbViewOtherTemplateMessageComponentBinding
import com.sendbird.uikit.interfaces.OnItemClickListener
import com.sendbird.uikit.interfaces.OnMessageTemplateActionHandler
import com.sendbird.uikit.internal.extensions.ERR_MESSAGE_TEMPLATE_NOT_APPLICABLE
import com.sendbird.uikit.internal.extensions.drawFeedback
import com.sendbird.uikit.internal.extensions.hasParentMessage
import com.sendbird.uikit.internal.extensions.isSuggestedRepliesVisible
import com.sendbird.uikit.internal.extensions.messageTemplateParams
import com.sendbird.uikit.internal.extensions.messageTemplateStatus
import com.sendbird.uikit.internal.extensions.saveParamsFromTemplate
import com.sendbird.uikit.internal.extensions.shouldShowSuggestedReplies
import com.sendbird.uikit.internal.extensions.toContextThemeWrapper
import com.sendbird.uikit.internal.extensions.toTemplateTheme
import com.sendbird.uikit.internal.extensions.*
import com.sendbird.uikit.internal.interfaces.OnFeedbackRatingClickListener
import com.sendbird.uikit.internal.model.template_messages.TemplateParamsCreator
import com.sendbird.uikit.internal.model.templates.MessageTemplateStatus
Expand Down Expand Up @@ -102,7 +93,6 @@ internal class OtherTemplateMessageView @JvmOverloads internal constructor(
}

val shouldShowSuggestedReplies = message.shouldShowSuggestedReplies
message.isSuggestedRepliesVisible = shouldShowSuggestedReplies
if (shouldShowSuggestedReplies) {
suggestedRepliesViewStub?.let {
it.visibility = View.VISIBLE
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@ import com.sendbird.uikit.interfaces.OnItemClickListener
import com.sendbird.uikit.internal.extensions.drawFeedback
import com.sendbird.uikit.internal.extensions.hasParentMessage
import com.sendbird.uikit.internal.extensions.isStreamMessage
import com.sendbird.uikit.internal.extensions.isSuggestedRepliesVisible
import com.sendbird.uikit.internal.extensions.shouldShowSuggestedReplies
import com.sendbird.uikit.internal.interfaces.OnFeedbackRatingClickListener
import com.sendbird.uikit.internal.ui.widgets.OnLinkLongClickListener
Expand Down Expand Up @@ -224,7 +223,6 @@ internal class OtherUserMessageView @JvmOverloads internal constructor(
}

val shouldShowSuggestedReplies = message.shouldShowSuggestedReplies
message.isSuggestedRepliesVisible = shouldShowSuggestedReplies
if (shouldShowSuggestedReplies) {
suggestedRepliesViewStub?.let {
it.visibility = View.VISIBLE
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -66,9 +66,9 @@ internal class MentionWatcher(
while (i-- > 0) {
val targetWord = words[i]
// 3. finds the first token in a string.
val contains = trigger == targetWord
val startsWithTrigger = targetWord.startsWith(trigger)
val triggerIndex = targetWord.indexOf(trigger)
if (contains && triggerIndex != -1) {
if (startsWithTrigger && triggerIndex != -1) {
val wordIndex = src.lastIndexOf(targetWord)
result = from + wordIndex + triggerIndex
break
Expand Down
10 changes: 6 additions & 4 deletions uikit/src/main/java/com/sendbird/uikit/model/MessageList.kt
Original file line number Diff line number Diff line change
Expand Up @@ -133,11 +133,13 @@ internal class MessageList @JvmOverloads constructor(private val order: Order =
}

@Synchronized
fun update(message: BaseMessage) {
fun update(message: BaseMessage): BaseMessage? {
Logger.d(">> MessageList::updateMessage()")
if (message is CustomizableMessage) return
if (messages.remove(message)) {
BaseMessage.clone(message)?.let { messages.add(it) }
if (message is CustomizableMessage) return null
return if (messages.remove(message)) {
BaseMessage.clone(message)?.also { messages.add(it) }
} else {
null
}
}

Expand Down
18 changes: 12 additions & 6 deletions uikit/src/main/java/com/sendbird/uikit/vm/ChannelViewModel.java
Original file line number Diff line number Diff line change
Expand Up @@ -668,8 +668,10 @@ private void markMessagesAsShouldShowSuggestedReplies(List<BaseMessage> messages
for (BaseMessage message : messages) {
boolean shouldShowSuggestedReplies = MessageExtensionsKt.getShouldShowSuggestedReplies(message);
if (shouldShowSuggestedReplies) {
MessageExtensionsKt.setShouldShowSuggestedReplies(message, false);
cachedMessages.update(message);
final BaseMessage updated = cachedMessages.update(message);
if (updated != null) {
MessageExtensionsKt.setShouldShowSuggestedReplies(updated, false);
}
}
}

Expand All @@ -684,14 +686,18 @@ private void markMessagesAsShouldShowSuggestedReplies(List<BaseMessage> messages

BaseMessage lastMessage = messages.get(0);
if (lastMessage != null && !lastMessage.getSuggestedReplies().isEmpty()) {
MessageExtensionsKt.setShouldShowSuggestedReplies(lastMessage, true);
cachedMessages.update(lastMessage);
final BaseMessage updated = cachedMessages.update(lastMessage);
if (updated != null) {
MessageExtensionsKt.setShouldShowSuggestedReplies(updated, true);
}
}
} else if (suggestedRepliesFor == SuggestedRepliesFor.ALL_MESSAGES) {
for (BaseMessage message : messages) {
if (!message.getSuggestedReplies().isEmpty()) {
MessageExtensionsKt.setShouldShowSuggestedReplies(message, true);
cachedMessages.update(message);
final BaseMessage updated = cachedMessages.update(message);
if (updated != null) {
MessageExtensionsKt.setShouldShowSuggestedReplies(updated, true);
}
}
}
}
Expand Down

0 comments on commit dc3b4c5

Please sign in to comment.