From 890c6b39e4aa12e31a698e8f0c703413de934af3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jc=20Mi=C3=B1arro?= Date: Fri, 12 Apr 2024 13:58:39 +0200 Subject: [PATCH 1/2] Filter shadowed messages --- .../java/io/getstream/chat/android/models/ChannelData.kt | 5 ++++- .../state/event/handler/internal/EventHandlerSequential.kt | 2 +- .../state/plugin/logic/channel/internal/ChannelLogic.kt | 2 +- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/stream-chat-android-core/src/main/java/io/getstream/chat/android/models/ChannelData.kt b/stream-chat-android-core/src/main/java/io/getstream/chat/android/models/ChannelData.kt index 2e58ae2f3b8..4edcf3afe7e 100644 --- a/stream-chat-android-core/src/main/java/io/getstream/chat/android/models/ChannelData.kt +++ b/stream-chat-android-core/src/main/java/io/getstream/chat/android/models/ChannelData.kt @@ -128,7 +128,10 @@ public data class ChannelData( deletedAt = deletedAt, extraData = extraData, cooldown = cooldown, - lastMessageAt = messagesList.lastOrNull()?.let { it.createdAt ?: it.createdLocallyAt }, + lastMessageAt = messagesList + .filterNot { it.shadowed } + .lastOrNull() + ?.let { it.createdAt ?: it.createdLocallyAt }, createdBy = createdBy, messages = messages, members = members, diff --git a/stream-chat-android-state/src/main/java/io/getstream/chat/android/state/event/handler/internal/EventHandlerSequential.kt b/stream-chat-android-state/src/main/java/io/getstream/chat/android/state/event/handler/internal/EventHandlerSequential.kt index 7e1e1540706..97b19e7aff5 100644 --- a/stream-chat-android-state/src/main/java/io/getstream/chat/android/state/event/handler/internal/EventHandlerSequential.kt +++ b/stream-chat-android-state/src/main/java/io/getstream/chat/android/state/event/handler/internal/EventHandlerSequential.kt @@ -473,7 +473,7 @@ internal class EventHandlerSequential( continue } val updatedChannel = channel.copy( - hidden = false, + hidden = channel.hidden.takeIf { enrichedMessage.shadowed } ?: false, messages = channel.messages + listOf(enrichedMessage), ) batch.addChannel(updatedChannel) diff --git a/stream-chat-android-state/src/main/java/io/getstream/chat/android/state/plugin/logic/channel/internal/ChannelLogic.kt b/stream-chat-android-state/src/main/java/io/getstream/chat/android/state/plugin/logic/channel/internal/ChannelLogic.kt index ba2e578379c..415c5fa71b7 100644 --- a/stream-chat-android-state/src/main/java/io/getstream/chat/android/state/plugin/logic/channel/internal/ChannelLogic.kt +++ b/stream-chat-android-state/src/main/java/io/getstream/chat/android/state/plugin/logic/channel/internal/ChannelLogic.kt @@ -511,7 +511,7 @@ internal class ChannelLogic( is NewMessageEvent -> { upsertEventMessage(event.message) channelStateLogic.updateCurrentUserRead(event.createdAt, event.message) - channelStateLogic.toggleHidden(false) + channelStateLogic.takeUnless { event.message.shadowed }?.toggleHidden(false) } is MessageUpdatedEvent -> { event.message.copy( From 9d7335a12cc823ad757af74a64b582556ba65ce3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jc=20Mi=C3=B1arro?= Date: Fri, 12 Apr 2024 14:01:48 +0200 Subject: [PATCH 2/2] Update CHANGELOG.md --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index a10ef9568c1..9ee5b5f33d4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,7 @@ # UNRELEASED CHANGELOG ## Common changes for all artifacts ### 🐞 Fixed +- Shadowed messages are filtered. [#5234](https://github.com/GetStream/stream-chat-android/pull/5234) ### ⬆️ Improved