Skip to content

Conversation

@VelikovPetar
Copy link
Contributor

🎯 Goal

Adds the filter_tags field to the Channel model. It can be used for:

  1. Channel creation
val params = CreateChannelParams(
    members = members,
    extraData = mapOf("filter_tags" to listOf("gaming", "card_games")),
)
channelClient.create(channelType, channelId, params).enqueue()
  1. Query channels
val filter = Filters.`in`("filter_tags", listOf("gaming", "card_games"))
val request = QueryChannelsRequest(filter = filter, limit = limit)
client.queryChannels(request).enqueue()

🛠 Implementation details

Adds the filterTags property to the DownstreamChannelDto, ChannelEntity and Channel + add the corresponding mapping logic.
Note: These changes are not required for the feature to work - we just extend the Channel model so they are easily accessible.

🎨 UI Changes

NA

🧪 Testing

  1. Apply the given patch
  2. Create a new channel (the patch adds a filter_tags = ["gaming"])
  3. Reload the channel list
  4. The new channel should be shown (the patch adds a channel filter on filter_tags)
Provide the patch summary here
Subject: [PATCH] Add filter_tags to Channel.
---
Index: stream-chat-android-compose-sample/src/main/java/io/getstream/chat/android/compose/sample/feature/channel/add/group/AddGroupChannelViewModel.kt
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
diff --git a/stream-chat-android-compose-sample/src/main/java/io/getstream/chat/android/compose/sample/feature/channel/add/group/AddGroupChannelViewModel.kt b/stream-chat-android-compose-sample/src/main/java/io/getstream/chat/android/compose/sample/feature/channel/add/group/AddGroupChannelViewModel.kt
--- a/stream-chat-android-compose-sample/src/main/java/io/getstream/chat/android/compose/sample/feature/channel/add/group/AddGroupChannelViewModel.kt	(revision c4a52c4aab2bcbdfc9f627a1a2999e44c2febea6)
+++ b/stream-chat-android-compose-sample/src/main/java/io/getstream/chat/android/compose/sample/feature/channel/add/group/AddGroupChannelViewModel.kt	(date 1763107526154)
@@ -128,7 +128,10 @@
         val memberIds = state.value.searchUsersState.selectedUsers.map { it.id } + currentUserId
         val params = CreateChannelParams(
             members = memberIds.map(::MemberData),
-            extraData = mapOf(EXTRA_DATA_CHANNEL_NAME to name),
+            extraData = mapOf(
+                EXTRA_DATA_CHANNEL_NAME to name,
+                "filter_tags" to listOf("gaming"),
+            ),
         )
         viewModelScope.launch {
             val result = chatClient.createChannel(
Index: stream-chat-android-compose-sample/src/main/java/io/getstream/chat/android/compose/sample/feature/channel/list/ChannelsActivity.kt
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
diff --git a/stream-chat-android-compose-sample/src/main/java/io/getstream/chat/android/compose/sample/feature/channel/list/ChannelsActivity.kt b/stream-chat-android-compose-sample/src/main/java/io/getstream/chat/android/compose/sample/feature/channel/list/ChannelsActivity.kt
--- a/stream-chat-android-compose-sample/src/main/java/io/getstream/chat/android/compose/sample/feature/channel/list/ChannelsActivity.kt	(revision c4a52c4aab2bcbdfc9f627a1a2999e44c2febea6)
+++ b/stream-chat-android-compose-sample/src/main/java/io/getstream/chat/android/compose/sample/feature/channel/list/ChannelsActivity.kt	(date 1763107526163)
@@ -121,7 +121,7 @@
             filters = Filters.and(
                 Filters.eq("type", "messaging"),
                 Filters.`in`("members", listOf(currentUserId)),
-                Filters.or(Filters.notExists(CHANNEL_ARG_DRAFT), Filters.eq(CHANNEL_ARG_DRAFT, false)),
+                Filters.`in`("filter_tags", "gaming")
             ),
             chatEventHandlerFactory = CustomChatEventHandlerFactory(),
             isDraftMessageEnabled = true,

@github-actions
Copy link
Contributor

DB Entities have been updated. Do we need to upgrade DB Version?
Modified Entities :

stream-chat-android-offline/src/main/java/io/getstream/chat/android/offline/repository/domain/channel/internal/ChannelEntity.kt

@github-actions
Copy link
Contributor

github-actions bot commented Nov 14, 2025

SDK Size Comparison 📏

SDK Before After Difference Status
stream-chat-android-client 5.25 MB 5.25 MB 0.00 MB 🟢
stream-chat-android-offline 5.47 MB 5.48 MB 0.00 MB 🟢
stream-chat-android-ui-components 10.58 MB 10.58 MB 0.00 MB 🟢
stream-chat-android-compose 12.81 MB 12.81 MB 0.00 MB 🟢

# Conflicts:
#	CHANGELOG.md
#	stream-chat-android-offline/src/main/java/io/getstream/chat/android/offline/repository/database/internal/ChatDatabase.kt
@VelikovPetar VelikovPetar marked this pull request as ready for review November 14, 2025 10:08
@VelikovPetar VelikovPetar requested a review from a team as a code owner November 14, 2025 10:08
@VelikovPetar VelikovPetar enabled auto-merge (squash) November 26, 2025 15:36
@sonarqubecloud
Copy link

Quality Gate Failed Quality Gate failed

Failed conditions
71.4% Coverage on New Code (required ≥ 80%)

See analysis details on SonarQube Cloud

@VelikovPetar VelikovPetar merged commit 203cef2 into develop Nov 26, 2025
12 of 13 checks passed
@VelikovPetar VelikovPetar deleted the feature/AND-906_add_filter_tags_to_channel branch November 26, 2025 15:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants