Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
54 commits
Select commit Hold shift + click to select a range
c650786
Add GroupedQueryChannels
VelikovPetar Apr 14, 2026
cf79797
Merge branch 'v6' into feature/grouped-channels-endpoint
VelikovPetar Apr 17, 2026
40e1951
Add GroupedQueryChannels event handling.
VelikovPetar Apr 17, 2026
51a256b
Add GroupedQueryChannels event handling.
VelikovPetar Apr 20, 2026
80e2360
Fix KDocs.
VelikovPetar Apr 20, 2026
30d757f
Make GroupedChannelsGroup.unreadCount non-nullable.
VelikovPetar Apr 21, 2026
65e278c
Make GroupedChannelsGroup.unreadCount non-nullable.
VelikovPetar Apr 21, 2026
ab1efa3
Fix passing outdated `Channel` data for `CidEvent`s to the `ChatEvent…
VelikovPetar Apr 22, 2026
a5b0dad
Merge branch 'bug/fix_passing_outdated_data_to_chat_event_handler' in…
VelikovPetar Apr 22, 2026
18aefe3
Add `ChannelListViewModel.prefill(channels: List<Channel>)`.
VelikovPetar Apr 23, 2026
d5c2ecf
Merge branch 'refs/heads/v6' into feature/grouped-channels-endpoint
VelikovPetar Apr 23, 2026
0d4b140
Fix ChatEventHandler instantiation race condition.
VelikovPetar Apr 23, 2026
3def460
Add sync process for GroupedQueryChannels.
VelikovPetar Apr 24, 2026
4146853
Reference channels in DB by their groupKey.
VelikovPetar Apr 24, 2026
6393e33
Merge branch 'refs/heads/v6' into feature/grouped-channels-endpoint
VelikovPetar Apr 24, 2026
02ca6fa
Merge branch 'v6' into feature/grouped-channels-endpoint
VelikovPetar Apr 27, 2026
3c6657f
Add re-watch mechanism for manually watched channels.
VelikovPetar Apr 27, 2026
c8c6eab
Fix KDoc.
VelikovPetar Apr 27, 2026
2c3ef71
Fix Detekt.
VelikovPetar Apr 27, 2026
988b6a5
Merge branch 'v6' into feature/grouped-channels-endpoint
VelikovPetar May 7, 2026
cb34e97
Merge branch 'v6' into feature/grouped-channels-endpoint
VelikovPetar May 12, 2026
b8c6766
Merge branch 'v6' into feature/grouped-channels-endpoint
VelikovPetar May 12, 2026
c04032c
GroupedQueryChannels
VelikovPetar May 13, 2026
5a93295
Add group-based channel distribution.
VelikovPetar May 14, 2026
78c3a62
Add channel_custom based distribution.
VelikovPetar May 14, 2026
5883f89
Rename selectBy.
VelikovPetar May 14, 2026
d3f2462
Clean-up.
VelikovPetar May 14, 2026
fca4d31
Reduce public api for group-based ChannelListViewModel.kt.
VelikovPetar May 14, 2026
8900613
ApiDump.
VelikovPetar May 14, 2026
8c7278d
Fix default sort order.
VelikovPetar May 15, 2026
9425b52
Fix syncing with custom limits.
VelikovPetar May 15, 2026
28d3c44
Fix syncing with custom limits.
VelikovPetar May 15, 2026
96ad5f6
Fix syncing with custom limits.
VelikovPetar May 15, 2026
d63979a
Add fallback parsing on Channel custom data.
VelikovPetar May 18, 2026
a6fd66b
Remove channel_custom handling.
VelikovPetar May 19, 2026
51dce49
Fix detekt.
VelikovPetar May 19, 2026
2623c24
Merge branch 'v6' into feature/grouped-channels-endpoint
VelikovPetar May 19, 2026
d0caba1
Add GroupAwareChatEventHandlerFactory for grouped channels
VelikovPetar May 20, 2026
a624225
Merge branch 'v6' into feature/grouped-channels-endpoint
VelikovPetar May 20, 2026
e818c9f
Handle channel.updated driven updates to the grouped unread channels.
VelikovPetar May 21, 2026
b6ab1e3
Address grouped channels PR review feedback.
VelikovPetar May 21, 2026
02d1aab
Update queryGroupedChannels to accept group names as a parameter
VelikovPetar May 22, 2026
3896aae
Merge branch 'v6' into feature/grouped-channels-endpoint
VelikovPetar May 22, 2026
396d055
Fix grouped unread counts updated when paginating
VelikovPetar May 22, 2026
ca4c6a1
Simplify weak-reference tracker for watched channels
VelikovPetar May 26, 2026
f571eb3
Revert QueryChannelsSpec.cids to a var
VelikovPetar May 26, 2026
75a7ca0
Add query.prev checks for isFirstPage
VelikovPetar May 26, 2026
9755b11
Add lock for applyGroupedResult
VelikovPetar May 26, 2026
997b2ee
Merge branch 'v6' into feature/grouped-channels-endpoint
VelikovPetar May 26, 2026
ac6bd2b
Fix channel added to group if member was already removed from the cha…
VelikovPetar May 26, 2026
b2d09af
Merge remote-tracking branch 'origin/feature/grouped-channels-endpoin…
VelikovPetar May 26, 2026
005d5a4
Add groupedUnreadChannels to MarkAllReadEvent.
VelikovPetar May 27, 2026
44feebc
Handle re-watch of active channels outside of active ChannelList quer…
VelikovPetar May 28, 2026
0985bb2
Merge branch 'v6' into feature/grouped-channels-endpoint
VelikovPetar May 28, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ package io.getstream.chat.android.client.test
import io.getstream.chat.android.client.events.AnswerCastedEvent
import io.getstream.chat.android.client.events.ChannelDeletedEvent
import io.getstream.chat.android.client.events.ChannelHiddenEvent
import io.getstream.chat.android.client.events.ChannelTruncatedEvent
import io.getstream.chat.android.client.events.ChannelUpdatedByUserEvent
import io.getstream.chat.android.client.events.ChannelUpdatedEvent
import io.getstream.chat.android.client.events.ChannelUserBannedEvent
Expand Down Expand Up @@ -199,6 +200,26 @@ public fun randomChannelDeletedEvent(
channel = channel,
)

public fun randomChannelTruncatedEvent(
createdAt: Date = Date(),
cid: String = randomCID(),
channelType: String = randomString(),
channelId: String = randomString(),
channel: Channel = randomChannel(),
user: User? = randomUser(),
message: Message? = null,
): ChannelTruncatedEvent = ChannelTruncatedEvent(
type = EventType.CHANNEL_TRUNCATED,
createdAt = createdAt,
rawCreatedAt = streamFormatter.format(createdAt),
cid = cid,
channelType = channelType,
channelId = channelId,
channel = channel,
user = user,
message = message,
)

public fun randomNotificationChannelDeletedEvent(
createdAt: Date = Date(),
cid: String = randomCID(),
Expand All @@ -207,6 +228,7 @@ public fun randomNotificationChannelDeletedEvent(
channel: Channel = randomChannel(),
totalUnreadCount: Int = randomInt(),
unreadChannels: Int = randomInt(),
groupedUnreadChannels: Map<String, Int>? = null,
): NotificationChannelDeletedEvent {
return NotificationChannelDeletedEvent(
type = EventType.NOTIFICATION_CHANNEL_DELETED,
Expand All @@ -218,6 +240,7 @@ public fun randomNotificationChannelDeletedEvent(
channel = channel,
totalUnreadCount = totalUnreadCount,
unreadChannels = unreadChannels,
groupedUnreadChannels = groupedUnreadChannels,
)
}

Expand Down Expand Up @@ -298,6 +321,7 @@ public fun randomNotificationMarkReadEvent(
thread: ThreadInfo? = randomThreadInfo(),
unreadThreads: Int? = randomInt(),
unreadThreadMessages: Int? = randomInt(),
groupedUnreadChannels: Map<String, Int>? = null,
): NotificationMarkReadEvent = NotificationMarkReadEvent(
type = EventType.NOTIFICATION_MARK_READ,
createdAt = createdAt,
Expand All @@ -313,6 +337,7 @@ public fun randomNotificationMarkReadEvent(
thread = thread,
unreadThreads = unreadThreads,
unreadThreadMessages = unreadThreadMessages,
groupedUnreadChannels = groupedUnreadChannels,
)

public fun randomNotificationMarkUnreadEvent(
Expand All @@ -330,6 +355,7 @@ public fun randomNotificationMarkUnreadEvent(
threadId: String? = randomString(),
unreadThreads: Int = randomInt(),
unreadThreadMessages: Int = randomInt(),
groupedUnreadChannels: Map<String, Int>? = null,
): NotificationMarkUnreadEvent = NotificationMarkUnreadEvent(
type = EventType.NOTIFICATION_MARK_UNREAD,
createdAt = createdAt,
Expand All @@ -347,6 +373,7 @@ public fun randomNotificationMarkUnreadEvent(
unreadMessages = unreadMessages,
lastReadMessageAt = lastReadMessageAt,
lastReadMessageId = lastReadMessageId,
groupedUnreadChannels = groupedUnreadChannels,
)

public fun randomTypingStopEvent(
Expand Down Expand Up @@ -442,6 +469,7 @@ public fun randomNotificationMessageNewEvent(
message: Message = randomMessage(),
totalUnreadCount: Int = randomInt(),
unreadChannels: Int = randomInt(),
groupedUnreadChannels: Map<String, Int>? = null,
): NotificationMessageNewEvent = NotificationMessageNewEvent(
type = EventType.NOTIFICATION_MESSAGE_NEW,
createdAt = createdAt,
Expand All @@ -453,6 +481,7 @@ public fun randomNotificationMessageNewEvent(
message = message,
totalUnreadCount = totalUnreadCount,
unreadChannels = unreadChannels,
groupedUnreadChannels = groupedUnreadChannels,
)

public fun randomMessageUpdateEvent(
Expand Down Expand Up @@ -526,6 +555,7 @@ public fun randomNewMessageEvent(
totalUnreadCount: Int = randomInt(),
unreadChannels: Int = randomInt(),
channelMessageCount: Int? = positiveRandomInt(),
groupedUnreadChannels: Map<String, Int>? = null,
): NewMessageEvent {
return NewMessageEvent(
type = EventType.MESSAGE_NEW,
Expand All @@ -540,6 +570,7 @@ public fun randomNewMessageEvent(
totalUnreadCount = totalUnreadCount,
unreadChannels = unreadChannels,
channelMessageCount = channelMessageCount,
groupedUnreadChannels = groupedUnreadChannels,
)
}

Expand All @@ -551,6 +582,7 @@ public fun randomNotificationChannelTruncatedEvent(
channel: Channel = randomChannel(),
totalUnreadCount: Int = randomInt(),
unreadChannels: Int = randomInt(),
groupedUnreadChannels: Map<String, Int>? = null,
): NotificationChannelTruncatedEvent = NotificationChannelTruncatedEvent(
type = EventType.NOTIFICATION_CHANNEL_TRUNCATED,
createdAt = createdAt,
Expand All @@ -561,20 +593,23 @@ public fun randomNotificationChannelTruncatedEvent(
channel = channel,
totalUnreadCount = totalUnreadCount,
unreadChannels = unreadChannels,
groupedUnreadChannels = groupedUnreadChannels,
)

public fun randomMarkAllReadEvent(
createdAt: Date = randomDate(),
user: User = randomUser(),
totalUnreadCount: Int = randomInt(),
unreadChannels: Int = randomInt(),
groupedUnreadChannels: Map<String, Int>? = null,
): MarkAllReadEvent = MarkAllReadEvent(
type = EventType.NOTIFICATION_MARK_READ,
createdAt = createdAt,
rawCreatedAt = streamFormatter.format(createdAt),
user = user,
totalUnreadCount = totalUnreadCount,
unreadChannels = unreadChannels,
groupedUnreadChannels = groupedUnreadChannels,
)

public fun randomReminderCreatedEvent(
Expand Down Expand Up @@ -661,7 +696,7 @@ public fun randomQueryChannelsSpec(
filter: FilterObject = NeutralFilterObject,
sort: QuerySorter<Channel> = QuerySortByField(),
cids: Set<String> = emptySet(),
): QueryChannelsSpec = QueryChannelsSpec(filter, sort).apply { this.cids = cids }
): QueryChannelsSpec = QueryChannelsSpec(filter, sort).also { it.cids = cids }

public fun randomNotificationRemovedFromChannelEvent(
cid: String = randomCID(),
Expand Down
Loading
Loading