diff --git a/stream-chat-android-compose/src/test/kotlin/io/getstream/chat/android/compose/util/extensions/MessageOptionItemVisibilityTest.kt b/stream-chat-android-compose/src/test/kotlin/io/getstream/chat/android/compose/util/extensions/MessageOptionItemVisibilityTest.kt index 2fc144aed4d..3cd1e8e168d 100644 --- a/stream-chat-android-compose/src/test/kotlin/io/getstream/chat/android/compose/util/extensions/MessageOptionItemVisibilityTest.kt +++ b/stream-chat-android-compose/src/test/kotlin/io/getstream/chat/android/compose/util/extensions/MessageOptionItemVisibilityTest.kt @@ -28,6 +28,7 @@ import io.getstream.chat.android.randomAttachment import io.getstream.chat.android.randomBoolean import io.getstream.chat.android.randomChannelCapabilities import io.getstream.chat.android.randomMessage +import io.getstream.chat.android.randomPoll import io.getstream.chat.android.randomString import io.getstream.chat.android.randomSyncStatus import org.amshove.kluent.`should be` @@ -272,6 +273,13 @@ internal class MessageOptionItemVisibilityTest { randomChannelCapabilities(), false, ), + Arguments.of( + MessageOptionItemVisibility(isEditMessageVisible = true), + currentUser, + randomMessage(poll = randomPoll(), command = null, sharedLocation = null), + randomChannelCapabilities(include = setOf(ChannelCapabilities.UPDATE_ANY_MESSAGE)), + false, + ), Arguments.of( MessageOptionItemVisibility(), currentUser.takeIf { randomBoolean() }, diff --git a/stream-chat-android-ui-common/src/main/kotlin/io/getstream/chat/android/ui/common/utils/CapabilitiesHelper.kt b/stream-chat-android-ui-common/src/main/kotlin/io/getstream/chat/android/ui/common/utils/CapabilitiesHelper.kt index dae4338c95e..2a83cbbadcd 100644 --- a/stream-chat-android-ui-common/src/main/kotlin/io/getstream/chat/android/ui/common/utils/CapabilitiesHelper.kt +++ b/stream-chat-android-ui-common/src/main/kotlin/io/getstream/chat/android/ui/common/utils/CapabilitiesHelper.kt @@ -21,6 +21,7 @@ package io.getstream.chat.android.ui.common.utils import io.getstream.chat.android.client.utils.attachment.isGiphy import io.getstream.chat.android.client.utils.message.hasSharedLocation import io.getstream.chat.android.client.utils.message.isDeleted +import io.getstream.chat.android.client.utils.message.isPoll import io.getstream.chat.android.client.utils.message.isThreadReply import io.getstream.chat.android.models.AttachmentType import io.getstream.chat.android.models.Channel @@ -132,7 +133,7 @@ public fun canEditMessage( ownCapabilities: Set, ): Boolean = editMessageEnabled && with(ownCapabilities) { ((message.isOwnMessage(currentUser) && canEditOwnMessage()) || canEditAnyMessage()) } && - !message.isGiphyCommand() && !message.hasSharedLocation() + !message.isGiphyCommand() && !message.isPoll() && !message.hasSharedLocation() /** * Determines whether the given message can be deleted. diff --git a/stream-chat-android-ui-common/src/test/kotlin/io/getstream/chat/android/ui/common/utils/CapabilitiesHelperTest.kt b/stream-chat-android-ui-common/src/test/kotlin/io/getstream/chat/android/ui/common/utils/CapabilitiesHelperTest.kt index 2c0e64bd863..4aaaf654e3d 100644 --- a/stream-chat-android-ui-common/src/test/kotlin/io/getstream/chat/android/ui/common/utils/CapabilitiesHelperTest.kt +++ b/stream-chat-android-ui-common/src/test/kotlin/io/getstream/chat/android/ui/common/utils/CapabilitiesHelperTest.kt @@ -27,6 +27,7 @@ import io.getstream.chat.android.randomAttachment import io.getstream.chat.android.randomBoolean import io.getstream.chat.android.randomChannelCapabilities import io.getstream.chat.android.randomMessage +import io.getstream.chat.android.randomPoll import io.getstream.chat.android.randomString import io.getstream.chat.android.randomSyncStatus import org.amshove.kluent.`should be` @@ -267,6 +268,13 @@ internal class CapabilitiesHelperTest { randomChannelCapabilities(), false, ), + Arguments.of( + true, + currentUser, + randomMessage(poll = randomPoll(), command = null, sharedLocation = null), + randomChannelCapabilities(include = setOf(ChannelCapabilities.UPDATE_ANY_MESSAGE)), + false, + ), Arguments.of( randomBoolean(), currentUser.takeIf { randomBoolean() }, diff --git a/stream-chat-android-ui-components/src/test/kotlin/io/getstream/chat/android/ui/feature/messages/list/internal/MessageListViewExtensionsKtTest.kt b/stream-chat-android-ui-components/src/test/kotlin/io/getstream/chat/android/ui/feature/messages/list/internal/MessageListViewExtensionsKtTest.kt index e3518973c30..5afc193f12d 100644 --- a/stream-chat-android-ui-components/src/test/kotlin/io/getstream/chat/android/ui/feature/messages/list/internal/MessageListViewExtensionsKtTest.kt +++ b/stream-chat-android-ui-components/src/test/kotlin/io/getstream/chat/android/ui/feature/messages/list/internal/MessageListViewExtensionsKtTest.kt @@ -25,6 +25,7 @@ import io.getstream.chat.android.randomAttachment import io.getstream.chat.android.randomBoolean import io.getstream.chat.android.randomChannelCapabilities import io.getstream.chat.android.randomMessage +import io.getstream.chat.android.randomPoll import io.getstream.chat.android.randomString import io.getstream.chat.android.randomSyncStatus import io.getstream.chat.android.ui.feature.messages.list.MessageListViewStyle @@ -259,6 +260,13 @@ internal class MessageListViewExtensionsKtTest { randomChannelCapabilities(), false, ), + Arguments.of( + randomMessageListViewStyle(editMessageEnabled = true), + currentUser, + randomMessage(poll = randomPoll(), command = null, sharedLocation = null), + randomChannelCapabilities(include = setOf(ChannelCapabilities.UPDATE_ANY_MESSAGE)), + false, + ), Arguments.of( randomMessageListViewStyle(), currentUser.takeIf { randomBoolean() },