Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[AND-4] ThreadList improvements #5455

Merged
merged 89 commits into from
Nov 20, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
89 commits
Select commit Hold shift + click to select a range
b83a7bc
[PBE-3749] Update ThreadsApi to match the definition.
Oct 9, 2024
9ac769b
[PBE-3749] Register "notification.thread_message_new" EventType.
Oct 10, 2024
c5187ae
Merge branch 'refs/heads/develop' into feature/threads_v2
Oct 11, 2024
e338150
[PBE-3749] Implement initial state-management for 'Query Threads'.
Oct 11, 2024
ce4ab6d
[PBE-3749] Implement ThreadList component.
Oct 14, 2024
8d30835
Merge branch 'refs/heads/develop' into feature/threads_v2
Oct 14, 2024
fdb1ac1
[PBE-3749] Implement 'Threads' tab in compose sample app.
Oct 14, 2024
13400dc
[PBE-3749] FIx pagination logic and add a threshold.
Oct 14, 2024
7a44105
[PBE-3749] Add queryThreads preconditions checks.
Oct 14, 2024
7ccf42b
[PBE-3749] Revert ktlint commit.
Oct 14, 2024
7bf4d3f
[PBE-3749] Remove redundant state update in ThreadListController.
Oct 14, 2024
c058190
[PBE-3749] Add handling for different ChatEvents.
Oct 15, 2024
8486cde
Merge branch 'refs/heads/develop' into feature/threads_v2
Oct 15, 2024
361e754
[PBE-3749] Remove redundant coroutine creation and docs.
Oct 15, 2024
2e8c1b1
[PBE-3749] Fix detekt and spotless.
Oct 15, 2024
fbc9b3d
Revert "[PBE-3749] Implement 'Threads' tab in compose sample app."
Oct 15, 2024
cd01294
Revert "Revert "[PBE-3749] Implement 'Threads' tab in compose sample …
Oct 15, 2024
b856073
Revert "[PBE-3749] Implement 'Threads' tab in compose sample app."
Oct 15, 2024
76e5f54
[PBE-3749] Hide threads-related public apis.
Oct 15, 2024
6fc64d8
Merge branch 'refs/heads/develop' into feature/threads_v2
Oct 17, 2024
b88eca7
[PBE-3749] Fix PR remarks related DTOs.
Oct 17, 2024
b91a89c
[PBE-3749] Fix wrong composable preview.
Oct 17, 2024
3560186
[PBE-3749] Use inheritScope to create ThreadListController coroutine …
Oct 17, 2024
de906ea
Merge branch 'refs/heads/develop' into feature/threads_v2
Oct 17, 2024
72d3689
[PBE-3749] Implement ChatClient::markThreadRead operation.
Oct 18, 2024
10e5c9d
[PBE-3749] Update CHANGELOG for markThreadRead.
Oct 18, 2024
93f8f39
[PBE-3749] Fix failing test.
Oct 18, 2024
0b7d384
[PBE-3749] Separate `markThreadRead` from `markRead`.
Oct 18, 2024
321907f
[PBE-3749] Implement unreadThreads logic as part of the GlobalState.
Oct 21, 2024
47e7849
Merge branch 'refs/heads/develop' into feature/threads_v2_global_unre…
Oct 21, 2024
41558f7
[PBE-3749] Add GlobalState::unreadThreadsCount to CHANGELOG.md.
Oct 21, 2024
b93459e
Merge branch 'develop' into feature/threads_v2_mark_thread_as_read
VelikovPetar Oct 21, 2024
71ed93c
Merge branch 'refs/heads/develop' into feature/threads_v2
Oct 21, 2024
c3405d3
Merge branch 'refs/heads/feature/threads_v2_global_unread_threads_sta…
Oct 22, 2024
fe5a711
Merge branch 'refs/heads/feature/threads_v2_mark_thread_as_read' into…
Oct 22, 2024
97c93f6
[PBE-3749] Add marking thread as read handling.
Oct 22, 2024
f1fb53a
Merge branch 'refs/heads/develop' into feature/threads_v2_improvements
Oct 22, 2024
55ad64a
Merge branch 'refs/heads/develop' into feature/threads_v2_mark_thread…
Oct 22, 2024
60204d5
Merge branch 'refs/heads/develop' into feature/threads_v2
Oct 22, 2024
23a3f18
Merge branch 'refs/heads/feature/threads_v2' into feature/threads_v2_…
Oct 22, 2024
a21abaf
Merge branch 'refs/heads/feature/threads_v2_mark_thread_as_read' into…
Oct 22, 2024
49fe477
Merge branch 'refs/heads/develop' into feature/threads_v2_improvements
Oct 22, 2024
12ede31
[PBE-3749] Fix incrementing unread count for new thread messages.
Oct 22, 2024
0b9397a
[PBE-3749] Add ThreadItem customization options.
Oct 22, 2024
0b946f3
[PBE-3749] Make Threads API public.
Oct 22, 2024
5d4de4c
[PBE-3749] Add Threads tab to compose sample app.
Oct 22, 2024
27c308e
Merge branch 'refs/heads/develop' into feature/threads_v2
Oct 22, 2024
520862d
Merge branch 'refs/heads/feature/threads_v2' into feature/threads_v2_…
Oct 22, 2024
b66b1e4
Merge branch 'refs/heads/develop' into feature/threads_v2_improvements
Oct 23, 2024
ecbb061
Merge branch 'refs/heads/develop' into feature/threads_v2
Oct 23, 2024
7e3f502
Merge branch 'refs/heads/feature/threads_v2' into feature/threads_v2_…
Oct 23, 2024
86979c1
Merge branch 'refs/heads/develop' into feature/threads_v2_improvements
Oct 23, 2024
266550d
Merge branch 'refs/heads/develop' into feature/threads_v2
Oct 23, 2024
18854bc
Merge branch 'refs/heads/feature/threads_v2' into feature/threads_v2_…
Oct 23, 2024
4d89262
[PBE-3749] Add threads state tests.
Oct 23, 2024
2ce1a14
Merge branch 'refs/heads/develop' into feature/threads_v2
Oct 24, 2024
b7d3dcc
Merge branch 'refs/heads/feature/threads_v2' into feature/threads_v2_…
Oct 24, 2024
f653f97
Merge branch 'refs/heads/develop' into feature/threads_v2
Oct 25, 2024
10278c6
[PBE-3749] Suppress LongMethod warning.
Oct 25, 2024
e72c974
Merge branch 'refs/heads/feature/threads_v2' into feature/threads_v2_…
Oct 25, 2024
237ca87
[PBE-3749] Add ChatClient::markThreadUnread.
Oct 25, 2024
7123e24
[PBE-3749] Add ChatClient::markThreadUnread to CHANGELOG.md.
Oct 28, 2024
1730bed
Merge branch 'refs/heads/feature/threads_v2_mark_thread_as_unread' in…
Oct 29, 2024
212b895
[PBE-3749] Add stateless ThreadList.
Oct 30, 2024
fcfd281
[PBE-3749] Add ThreadList to CHANGELOG and add docusaurus documentation
Oct 30, 2024
88a1f05
[PBE-3749] Ensure threads state is updated on different client operat…
Oct 31, 2024
ecae6d1
[PBE-3749] Fix failing tests.
Oct 31, 2024
5c7c963
Merge branch 'refs/heads/develop' into feature/threads_v2
Nov 5, 2024
564666f
Merge branch 'refs/heads/feature/threads_v2' into feature/threads_v2_…
Nov 5, 2024
c58e458
Merge branch 'refs/heads/develop' into feature/threads_v2_improvements
Nov 5, 2024
a823a89
[PBE-3749] Add 'Mark thread as unread' handling.
Nov 5, 2024
e153761
Merge branch 'refs/heads/develop' into feature/threads_v2
Nov 5, 2024
b159d5c
Merge branch 'refs/heads/feature/threads_v2' into feature/threads_v2_…
Nov 5, 2024
aec80bb
Merge branch 'refs/heads/develop' into feature/threads_v2
Nov 6, 2024
acca8de
Merge branch 'refs/heads/feature/threads_v2' into feature/threads_v2_…
Nov 6, 2024
a317992
Merge branch 'refs/heads/develop' into feature/threads_v2
Nov 6, 2024
6ade7ba
Merge branch 'refs/heads/feature/threads_v2' into feature/threads_v2_…
Nov 6, 2024
7941d4e
Merge branch 'develop' into feature/threads_v2
Nov 13, 2024
55e71f8
[PBE-3749] apply spotless.
Nov 13, 2024
e52aede
Merge branch 'feature/threads_v2' into feature/threads_v2_improvements
Nov 13, 2024
23b3b09
Merge branch 'develop' into feature/threads_v2_improvements
Nov 18, 2024
5708cad
[PBE-3479] Post merge clean-up.
Nov 18, 2024
87e6064
[PBE-3749] Delete docusaurus docs.
Nov 18, 2024
d07c6a1
Merge branch 'develop' into feature/threads_v2_improvements
Nov 18, 2024
6b7659e
[PBE-3749] Update CHANGELOG.md.
Nov 18, 2024
0796357
Merge branch 'develop' into feature/threads_v2_improvements
aleksandar-apostolov Nov 19, 2024
921e371
Merge branch 'develop' into feature/threads_v2_improvements
Nov 19, 2024
9314706
WIP
JcMinarro Nov 19, 2024
c111fbc
Refactor ThreadParticipants
JcMinarro Nov 19, 2024
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
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -125,6 +125,7 @@
### ✅ Added
- Add `MessageListViewModel.flagUser()` and `MessageListViewModel.unflagUser()` methods for flagging/un-flagging users. [#5478](https://github.com/GetStream/stream-chat-android/pull/5478)
- Add edge-to-edge support for apps targeting Android 15. [#5469](https://github.com/GetStream/stream-chat-android/pull/5469)
- Add `ThreadList` component for showing the list of threads for the user. [#5455](https://github.com/GetStream/stream-chat-android/pull/5455)

### ⚠️ Changed
- 🚨 Breaking change: Replace usage of `RippleTheme` with `StreamRippleConfiguration` for customizing ripples via `ChatTheme`. [#5475](https://github.com/GetStream/stream-chat-android/pull/5475)
Expand Down
Empty file added gradle/libs.versions.toml
Empty file.
36 changes: 25 additions & 11 deletions stream-chat-android-client/api/stream-chat-android-client.api
Original file line number Diff line number Diff line change
Expand Up @@ -133,6 +133,7 @@ public final class io/getstream/chat/android/client/ChatClient {
public final fun queryMembers (Ljava/lang/String;Ljava/lang/String;IILio/getstream/chat/android/models/FilterObject;Lio/getstream/chat/android/models/querysort/QuerySorter;Ljava/util/List;)Lio/getstream/result/call/Call;
public static synthetic fun queryMembers$default (Lio/getstream/chat/android/client/ChatClient;Ljava/lang/String;Ljava/lang/String;IILio/getstream/chat/android/models/FilterObject;Lio/getstream/chat/android/models/querysort/QuerySorter;Ljava/util/List;ILjava/lang/Object;)Lio/getstream/result/call/Call;
public final fun queryThreads (Lio/getstream/chat/android/client/api/models/QueryThreadsRequest;)Lio/getstream/result/call/Call;
public final fun queryThreadsResult (Lio/getstream/chat/android/client/api/models/QueryThreadsRequest;)Lio/getstream/result/call/Call;
public final fun queryUsers (Lio/getstream/chat/android/client/api/models/QueryUsersRequest;)Lio/getstream/result/call/Call;
public final fun reconnectSocket ()Lio/getstream/result/call/Call;
public final fun rejectInvite (Ljava/lang/String;Ljava/lang/String;)Lio/getstream/result/call/Call;
Expand Down Expand Up @@ -1464,22 +1465,25 @@ public final class io/getstream/chat/android/client/events/MessageDeletedEvent :
}

public final class io/getstream/chat/android/client/events/MessageReadEvent : io/getstream/chat/android/client/events/CidEvent, io/getstream/chat/android/client/events/UserEvent {
public fun <init> (Ljava/lang/String;Ljava/util/Date;Ljava/lang/String;Lio/getstream/chat/android/models/User;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
public fun <init> (Ljava/lang/String;Ljava/util/Date;Ljava/lang/String;Lio/getstream/chat/android/models/User;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lio/getstream/chat/android/models/ThreadInfo;)V
public synthetic fun <init> (Ljava/lang/String;Ljava/util/Date;Ljava/lang/String;Lio/getstream/chat/android/models/User;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lio/getstream/chat/android/models/ThreadInfo;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
public final fun component1 ()Ljava/lang/String;
public final fun component2 ()Ljava/util/Date;
public final fun component3 ()Ljava/lang/String;
public final fun component4 ()Lio/getstream/chat/android/models/User;
public final fun component5 ()Ljava/lang/String;
public final fun component6 ()Ljava/lang/String;
public final fun component7 ()Ljava/lang/String;
public final fun copy (Ljava/lang/String;Ljava/util/Date;Ljava/lang/String;Lio/getstream/chat/android/models/User;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lio/getstream/chat/android/client/events/MessageReadEvent;
public static synthetic fun copy$default (Lio/getstream/chat/android/client/events/MessageReadEvent;Ljava/lang/String;Ljava/util/Date;Ljava/lang/String;Lio/getstream/chat/android/models/User;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Lio/getstream/chat/android/client/events/MessageReadEvent;
public final fun component8 ()Lio/getstream/chat/android/models/ThreadInfo;
public final fun copy (Ljava/lang/String;Ljava/util/Date;Ljava/lang/String;Lio/getstream/chat/android/models/User;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lio/getstream/chat/android/models/ThreadInfo;)Lio/getstream/chat/android/client/events/MessageReadEvent;
public static synthetic fun copy$default (Lio/getstream/chat/android/client/events/MessageReadEvent;Ljava/lang/String;Ljava/util/Date;Ljava/lang/String;Lio/getstream/chat/android/models/User;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lio/getstream/chat/android/models/ThreadInfo;ILjava/lang/Object;)Lio/getstream/chat/android/client/events/MessageReadEvent;
public fun equals (Ljava/lang/Object;)Z
public fun getChannelId ()Ljava/lang/String;
public fun getChannelType ()Ljava/lang/String;
public fun getCid ()Ljava/lang/String;
public fun getCreatedAt ()Ljava/util/Date;
public fun getRawCreatedAt ()Ljava/lang/String;
public final fun getThread ()Lio/getstream/chat/android/models/ThreadInfo;
public fun getType ()Ljava/lang/String;
public fun getUser ()Lio/getstream/chat/android/models/User;
public fun hashCode ()I
Expand Down Expand Up @@ -1726,9 +1730,13 @@ public final class io/getstream/chat/android/client/events/NotificationInvitedEv
}

public final class io/getstream/chat/android/client/events/NotificationMarkReadEvent : io/getstream/chat/android/client/events/CidEvent, io/getstream/chat/android/client/events/HasUnreadCounts, io/getstream/chat/android/client/events/UserEvent {
public fun <init> (Ljava/lang/String;Ljava/util/Date;Ljava/lang/String;Lio/getstream/chat/android/models/User;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;II)V
public synthetic fun <init> (Ljava/lang/String;Ljava/util/Date;Ljava/lang/String;Lio/getstream/chat/android/models/User;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;IIILkotlin/jvm/internal/DefaultConstructorMarker;)V
public fun <init> (Ljava/lang/String;Ljava/util/Date;Ljava/lang/String;Lio/getstream/chat/android/models/User;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;IILjava/lang/String;Lio/getstream/chat/android/models/ThreadInfo;Ljava/lang/Integer;Ljava/lang/Integer;)V
public synthetic fun <init> (Ljava/lang/String;Ljava/util/Date;Ljava/lang/String;Lio/getstream/chat/android/models/User;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;IILjava/lang/String;Lio/getstream/chat/android/models/ThreadInfo;Ljava/lang/Integer;Ljava/lang/Integer;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
public final fun component1 ()Ljava/lang/String;
public final fun component10 ()Ljava/lang/String;
public final fun component11 ()Lio/getstream/chat/android/models/ThreadInfo;
public final fun component12 ()Ljava/lang/Integer;
public final fun component13 ()Ljava/lang/Integer;
public final fun component2 ()Ljava/util/Date;
public final fun component3 ()Ljava/lang/String;
public final fun component4 ()Lio/getstream/chat/android/models/User;
Expand All @@ -1737,30 +1745,35 @@ public final class io/getstream/chat/android/client/events/NotificationMarkReadE
public final fun component7 ()Ljava/lang/String;
public final fun component8 ()I
public final fun component9 ()I
public final fun copy (Ljava/lang/String;Ljava/util/Date;Ljava/lang/String;Lio/getstream/chat/android/models/User;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;II)Lio/getstream/chat/android/client/events/NotificationMarkReadEvent;
public static synthetic fun copy$default (Lio/getstream/chat/android/client/events/NotificationMarkReadEvent;Ljava/lang/String;Ljava/util/Date;Ljava/lang/String;Lio/getstream/chat/android/models/User;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;IIILjava/lang/Object;)Lio/getstream/chat/android/client/events/NotificationMarkReadEvent;
public final fun copy (Ljava/lang/String;Ljava/util/Date;Ljava/lang/String;Lio/getstream/chat/android/models/User;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;IILjava/lang/String;Lio/getstream/chat/android/models/ThreadInfo;Ljava/lang/Integer;Ljava/lang/Integer;)Lio/getstream/chat/android/client/events/NotificationMarkReadEvent;
public static synthetic fun copy$default (Lio/getstream/chat/android/client/events/NotificationMarkReadEvent;Ljava/lang/String;Ljava/util/Date;Ljava/lang/String;Lio/getstream/chat/android/models/User;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;IILjava/lang/String;Lio/getstream/chat/android/models/ThreadInfo;Ljava/lang/Integer;Ljava/lang/Integer;ILjava/lang/Object;)Lio/getstream/chat/android/client/events/NotificationMarkReadEvent;
public fun equals (Ljava/lang/Object;)Z
public fun getChannelId ()Ljava/lang/String;
public fun getChannelType ()Ljava/lang/String;
public fun getCid ()Ljava/lang/String;
public fun getCreatedAt ()Ljava/util/Date;
public fun getRawCreatedAt ()Ljava/lang/String;
public final fun getThread ()Lio/getstream/chat/android/models/ThreadInfo;
public final fun getThreadId ()Ljava/lang/String;
public fun getTotalUnreadCount ()I
public fun getType ()Ljava/lang/String;
public fun getUnreadChannels ()I
public final fun getUnreadThreadMessages ()Ljava/lang/Integer;
public final fun getUnreadThreads ()Ljava/lang/Integer;
public fun getUser ()Lio/getstream/chat/android/models/User;
public fun hashCode ()I
public fun toString ()Ljava/lang/String;
}

public final class io/getstream/chat/android/client/events/NotificationMarkUnreadEvent : io/getstream/chat/android/client/events/CidEvent, io/getstream/chat/android/client/events/HasUnreadCounts, io/getstream/chat/android/client/events/UserEvent {
public fun <init> (Ljava/lang/String;Ljava/util/Date;Ljava/lang/String;Lio/getstream/chat/android/models/User;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;IIILjava/lang/String;Ljava/util/Date;Ljava/lang/String;)V
public synthetic fun <init> (Ljava/lang/String;Ljava/util/Date;Ljava/lang/String;Lio/getstream/chat/android/models/User;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;IIILjava/lang/String;Ljava/util/Date;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
public fun <init> (Ljava/lang/String;Ljava/util/Date;Ljava/lang/String;Lio/getstream/chat/android/models/User;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;IIILjava/lang/String;Ljava/util/Date;Ljava/lang/String;I)V
public synthetic fun <init> (Ljava/lang/String;Ljava/util/Date;Ljava/lang/String;Lio/getstream/chat/android/models/User;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;IIILjava/lang/String;Ljava/util/Date;Ljava/lang/String;IILkotlin/jvm/internal/DefaultConstructorMarker;)V
public final fun component1 ()Ljava/lang/String;
public final fun component10 ()I
public final fun component11 ()Ljava/lang/String;
public final fun component12 ()Ljava/util/Date;
public final fun component13 ()Ljava/lang/String;
public final fun component14 ()I
public final fun component2 ()Ljava/util/Date;
public final fun component3 ()Ljava/lang/String;
public final fun component4 ()Lio/getstream/chat/android/models/User;
Expand All @@ -1769,8 +1782,8 @@ public final class io/getstream/chat/android/client/events/NotificationMarkUnrea
public final fun component7 ()Ljava/lang/String;
public final fun component8 ()I
public final fun component9 ()I
public final fun copy (Ljava/lang/String;Ljava/util/Date;Ljava/lang/String;Lio/getstream/chat/android/models/User;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;IIILjava/lang/String;Ljava/util/Date;Ljava/lang/String;)Lio/getstream/chat/android/client/events/NotificationMarkUnreadEvent;
public static synthetic fun copy$default (Lio/getstream/chat/android/client/events/NotificationMarkUnreadEvent;Ljava/lang/String;Ljava/util/Date;Ljava/lang/String;Lio/getstream/chat/android/models/User;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;IIILjava/lang/String;Ljava/util/Date;Ljava/lang/String;ILjava/lang/Object;)Lio/getstream/chat/android/client/events/NotificationMarkUnreadEvent;
public final fun copy (Ljava/lang/String;Ljava/util/Date;Ljava/lang/String;Lio/getstream/chat/android/models/User;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;IIILjava/lang/String;Ljava/util/Date;Ljava/lang/String;I)Lio/getstream/chat/android/client/events/NotificationMarkUnreadEvent;
public static synthetic fun copy$default (Lio/getstream/chat/android/client/events/NotificationMarkUnreadEvent;Ljava/lang/String;Ljava/util/Date;Ljava/lang/String;Lio/getstream/chat/android/models/User;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;IIILjava/lang/String;Ljava/util/Date;Ljava/lang/String;IILjava/lang/Object;)Lio/getstream/chat/android/client/events/NotificationMarkUnreadEvent;
public fun equals (Ljava/lang/Object;)Z
public fun getChannelId ()Ljava/lang/String;
public fun getChannelType ()Ljava/lang/String;
Expand All @@ -1784,6 +1797,7 @@ public final class io/getstream/chat/android/client/events/NotificationMarkUnrea
public fun getType ()Ljava/lang/String;
public fun getUnreadChannels ()I
public final fun getUnreadMessages ()I
public final fun getUnreadThreads ()I
public fun getUser ()Lio/getstream/chat/android/models/User;
public fun hashCode ()I
public fun toString ()Ljava/lang/String;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3267,7 +3267,6 @@ internal constructor(
* @param query [QueryThreadsRequest] with query parameters to get matching users.
*/
@CheckResult
@InternalStreamChatApi
public fun queryThreadsResult(query: QueryThreadsRequest): Call<QueryThreadsResult> {
return api.queryThreads(query)
.doOnStart(userScope) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -355,6 +355,7 @@ private fun MessageReadEventDto.toDomain(currentUserId: UserId?): MessageReadEve
cid = cid,
channelType = channel_type,
channelId = channel_id,
thread = thread?.toDomain(currentUserId),
)
}

Expand Down Expand Up @@ -493,6 +494,10 @@ private fun NotificationMarkReadEventDto.toDomain(currentUserId: UserId?): Notif
channelId = channel_id,
totalUnreadCount = total_unread_count,
unreadChannels = unread_channels,
threadId = thread_id,
thread = thread?.toDomain(currentUserId),
unreadThreads = unread_threads,
unreadThreadMessages = unread_thread_messages,
)
}

Expand All @@ -511,6 +516,7 @@ private fun NotificationMarkUnreadEventDto.toDomain(currentUserId: UserId?): Not
lastReadMessageId = last_read_message_id,
lastReadMessageAt = last_read_at.date,
unreadMessages = unread_messages,
unreadThreads = unread_threads,
)
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,11 @@
package io.getstream.chat.android.client.api2.mapping

import io.getstream.chat.android.client.api2.model.dto.DownstreamThreadDto
import io.getstream.chat.android.client.api2.model.dto.DownstreamThreadInfoDto
import io.getstream.chat.android.client.api2.model.dto.DownstreamThreadParticipantDto
import io.getstream.chat.android.models.Thread
import io.getstream.chat.android.models.User
import io.getstream.chat.android.models.ThreadInfo
import io.getstream.chat.android.models.ThreadParticipant
import io.getstream.chat.android.models.UserId

internal fun DownstreamThreadDto.toDomain(currentUserId: UserId?): Thread =
Expand All @@ -43,4 +45,23 @@ internal fun DownstreamThreadDto.toDomain(currentUserId: UserId?): Thread =
read = read.orEmpty().map { it.toDomain(currentUserId, last_message_at) },
)

internal fun DownstreamThreadParticipantDto.toDomain(currentUserId: UserId?): User = user.toDomain(currentUserId)
internal fun DownstreamThreadInfoDto.toDomain(currentUserId: UserId?): ThreadInfo =
ThreadInfo(
activeParticipantCount = active_participant_count ?: 0,
cid = channel_cid,
createdAt = created_at,
createdBy = created_by?.toDomain(currentUserId),
createdByUserId = created_by_user_id,
deletedAt = deleted_at,
lastMessageAt = last_message_at,
parentMessage = parent_message?.toDomain(currentUserId),
parentMessageId = parent_message_id,
participantCount = participant_count ?: 0,
replyCount = reply_count ?: 0,
title = title,
updatedAt = updated_at,
)

internal fun DownstreamThreadParticipantDto.toDomain(currentUserId: UserId?): ThreadParticipant = ThreadParticipant(
user = user.toDomain(currentUserId),
)
Original file line number Diff line number Diff line change
Expand Up @@ -150,6 +150,7 @@ internal data class MessageReadEventDto(
val cid: String,
val channel_type: String,
val channel_id: String,
val thread: DownstreamThreadInfoDto? = null,
) : ChatEventDto()

@JsonClass(generateAdapter = true)
Expand Down Expand Up @@ -266,6 +267,10 @@ internal data class NotificationMarkReadEventDto(
val channel_id: String,
val total_unread_count: Int = 0,
val unread_channels: Int = 0,
val thread_id: String? = null,
val thread: DownstreamThreadInfoDto? = null,
val unread_threads: Int? = null,
val unread_thread_messages: Int? = null,
) : ChatEventDto()

@JsonClass(generateAdapter = true)
Expand All @@ -277,11 +282,12 @@ internal data class NotificationMarkUnreadEventDto(
val channel_type: String,
val channel_id: String,
val first_unread_message_id: String,
val last_read_message_id: String,
val last_read_message_id: String?,
val last_read_at: ExactDate,
val unread_messages: Int,
val total_unread_count: Int,
val unread_channels: Int,
val unread_threads: Int = 0,
) : ChatEventDto()

@JsonClass(generateAdapter = true)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ import java.util.Date

/**
* The DTO for a thread.
* Corresponds to [ThreadStateResponse].
*
* @param active_participant_count: The number of active participants.
* @param channel_cid: The channel CID.
Expand Down Expand Up @@ -54,22 +55,60 @@ internal data class DownstreamThreadDto(
val thread_participants: List<DownstreamThreadParticipantDto>?,
val last_message_at: Date,
val created_at: Date,
val updated_at: Date?,
val updated_at: Date,
val deleted_at: Date?,
val title: String,
val latest_replies: List<DownstreamMessageDto>,
val read: List<DownstreamChannelUserRead>?,
)

/**
* The DTO for Thread Participant.
* The DTO for a shortened thread info.
* Corresponds to [ThreadResponse].
*
* @param active_participant_count: The number of active participants.
* @param channel_cid: The channel CID.
* @param created_at: The date when the thread was created.
* @param created_by: The user who created the thread.
* @param created_by_user_id: The ID of the user who created the thread.
* @param deleted_at: The date when the thread was deleted.
* @param last_message_at: The date of the last message in the thread.
* @param parent_message: The parent message.
* @param parent_message_id: The parent message ID.
* @param participant_count: The number of participants in the thread.
* @param reply_count: The number of replies in the thread.
* @param thread_participants: The participants in the thread.
* @param title: The title of the thread.
* @param updated_at: The date when the thread was updated.
*/
@JsonClass(generateAdapter = true)
internal data class DownstreamThreadInfoDto(
val active_participant_count: Int?,
val channel_cid: String,
val created_at: Date,
val created_by: DownstreamUserDto?,
val created_by_user_id: String,
val deleted_at: Date?,
val last_message_at: Date?,
val parent_message: DownstreamMessageDto?,
val parent_message_id: String,
val participant_count: Int?,
val reply_count: Int?,
val title: String,
val updated_at: Date,
)

/**
* The DTO for Thread Participant.
*
* @param channel_cid: The channel CID.
* @param user: The user as the thread participant. (Note: It is not always delivered, sometimes we only get the ID of
* the user - [user_id]).
* @param user_id: The ID of the user (thread participant).
*/
@JsonClass(generateAdapter = true)
internal data class DownstreamThreadParticipantDto(
val channel_cid: String,
val user_id: String,
val user: DownstreamUserDto,
val user_id: String,
)
Loading
Loading