Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
62 commits
Select commit Hold shift + click to select a range
db20e48
Add ChatClient.markMessagesAsDelivered function to mark messages as d…
andremion Oct 22, 2025
50692b4
Add delivery receipts support to user privacy settings
andremion Oct 23, 2025
743f870
Introduce a initial DeliveryReceiptsManager to handle message deliver…
andremion Oct 23, 2025
12556b0
Introduce MessageReceiptDao and MessageReceiptEntity for handling mes…
andremion Oct 23, 2025
745544b
Introduce MessageReceipt model and repository for handling message de…
andremion Oct 23, 2025
f85a5f3
Make MessageReceiptRepository `getAllByType` return a Flow and add a …
andremion Oct 24, 2025
0512fae
Refactor DeliveryReceiptsManager to store receipts locally
andremion Oct 24, 2025
3617b0e
Introduced `MessageReceiptReporter`, a new class responsible for obse…
andremion Oct 24, 2025
e8751d4
Prapare to move internal persistence to the client module
andremion Oct 27, 2025
045c761
Add ChatClientDatabase, DateConverter, and ChatClientRepository for m…
andremion Oct 27, 2025
1c0b88a
Refactor: Move message receipt logic to client
andremion Oct 27, 2025
b121a5a
Support `message.delivered` event
andremion Oct 28, 2025
cd48256
Refactor: Add default empty implementations for `QueryChannelsListene…
andremion Oct 28, 2025
c716b6b
Deprecate `hasUnread` in favor of `currentUserUnreadCount`
andremion Oct 28, 2025
4a6790b
Add `userRead` and `deliveredReads` helper functions
andremion Oct 28, 2025
58eeec8
Introduce `markChannelsAsDelivered`, a new function to mark the last …
andremion Oct 28, 2025
0f23a7f
Refactor MessageReceiptReporter to use a polling mechanism
andremion Oct 28, 2025
4537d38
Moves the user ID update in the `switchUser` function to after the us…
andremion Oct 29, 2025
4ea6df7
Rename MessageReceiptReporter.init to start and add logging
andremion Oct 29, 2025
cff1980
Refactor MessageReceiptManagerTest to standardize verification method…
andremion Oct 29, 2025
5a6e482
Automatically mark messages as delivered when querying channels
andremion Oct 29, 2025
052f202
Introduce `ChatClientRepository` to encapsulate internal repositories…
andremion Oct 29, 2025
496d919
Add MessageReceiptManager and MessageReceiptReporter to ChatClient
andremion Oct 29, 2025
775814e
Decoupled `MessageReceiptReporter` from `ChatClient` by passing `Chat…
andremion Oct 29, 2025
e4a4a2a
Refactor ChatClientTest to simplify test setup
andremion Oct 29, 2025
e8b51cf
Rename deliveredReads to deliveredReadsOf
andremion Oct 29, 2025
55bc030
feat: Add delivered status indicator for messages
andremion Oct 29, 2025
a46b166
Fix flaky test
andremion Oct 29, 2025
c9a9147
Add more tests
andremion Oct 29, 2025
98a66e0
Feat: Add `Channel.readsOf()` extension function
andremion Oct 30, 2025
ab097f6
Add pending status indicator snapshot test
andremion Oct 30, 2025
d9d33da
Add unit test for MessageReceiptRepository instantiation
andremion Oct 30, 2025
e8a5f66
Fix the message status indicator paddings
andremion Oct 30, 2025
544e45b
Mark messages as delivered on push notification
andremion Oct 30, 2025
71bec64
sonar lint
andremion Oct 30, 2025
1e57ab3
Mark channel as delivered on query a single channel
andremion Oct 30, 2025
5d88db4
Provide a ChatClient lazily in ChatNotifications
andremion Oct 30, 2025
1f93e96
Hide the message status indicator when a message is deleted
andremion Oct 30, 2025
8c747ba
Do not expose ChatClient.markMessagesAsDelivered
andremion Oct 30, 2025
324c99e
feat: Add delivery_events flag to Config
andremion Oct 31, 2025
2b6b7b5
Refactor: Improve message delivery receipts logic
andremion Oct 31, 2025
17535a0
Add DELIVERY_EVENTS to ChannelCapabilities
andremion Oct 31, 2025
9e22cf1
Refactor: Make MessageReceiptManager functions suspend
andremion Oct 31, 2025
dc586b1
Refactor: Lazy initialize messageReceiptManager in MessageDeliveredPl…
andremion Oct 31, 2025
a821a6a
Fix: Fetch message from API when marking as delivered by ID
andremion Oct 31, 2025
0db5013
Skip sending delivery receipts for shadowed messages and muted users
andremion Oct 31, 2025
5ae2cb7
Add deliveryEventsEnabled to channel configuration and mapping
andremion Oct 31, 2025
5b24d4e
Add message info option to message menu
andremion Nov 3, 2025
8a0437a
Extra PaneTitle and PaneRow components for reusing
andremion Nov 3, 2025
aa7b02e
Add message info component to display read and delivered status
andremion Nov 3, 2025
56a6d46
Stop using kluent assertions
andremion Nov 3, 2025
e6f479f
Update read and delivered status checks to include equal comparison
andremion Nov 3, 2025
d5e4b5c
Add user profile privacy settings screen
andremion Nov 3, 2025
7899c9c
Add privacy settings mapping to domain model
andremion Nov 3, 2025
bdfb31a
Fix message info component to display read and delivered timestamps c…
andremion Nov 4, 2025
178c1bc
typo
andremion Nov 4, 2025
b2db872
CHANGELOG
andremion Nov 4, 2025
26ec6dd
Change userRead function visibility to internal
andremion Nov 6, 2025
35a5da4
Use getCreatedAtOrDefault
andremion Nov 6, 2025
f1e4278
Remove MessageReceipt's 'type' field
andremion Nov 7, 2025
42f6049
Move MessageReceiptRepositoryImpl to the same file as MessageReceiptR…
andremion Nov 7, 2025
ce8df3f
Fix tests after rebased from develop
andremion Nov 7, 2025
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
6 changes: 5 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
### ⬆️ Improved

### ✅ Added
- Introduce message delivery receipts. [#5979](https://github.com/GetStream/stream-chat-android/pull/5979)

### ⚠️ Changed

Expand All @@ -16,8 +17,11 @@
### ⬆️ Improved

### ✅ Added
- Introduce `Channel.userRead` extension function to get the read status of a specific user in the channel. [#5979](https://github.com/GetStream/stream-chat-android/pull/5979)
- Introduce `Channel.readsOf` extension function to get the read statuses representing which users have read the given message in the channel. [#5979](https://github.com/GetStream/stream-chat-android/pull/5979)

### ⚠️ Changed
- Deprecate `Channel.hasUnread` property in favor of `Channel.currentUserUnreadCount`. [#5979](https://github.com/GetStream/stream-chat-android/pull/5979)

### ❌ Removed

Expand Down Expand Up @@ -3577,7 +3581,7 @@ The following items are breaking changes, since it was very important to improve
- Added `ChatUI.channelNameFormatter` to allow customizing the channel's name format. [#3068](https://github.com/GetStream/stream-chat-android/pull/3068)
- Added a customizable height attribute to SearchInputView [#3081](https://github.com/GetStream/stream-chat-android/pull/3081)
- Added `ChatUI.dateFormatter` to allow customizing the way the dates are formatted. [#3085](https://github.com/GetStream/stream-chat-android/pull/3085)
- Added ways to show/hide the delivery status indicators for channels and messages. [#3102](https://github.com/GetStream/stream-chat-android/pull/3102)
- Added ways to show/hide the delivery receipts indicators for channels and messages. [#3102](https://github.com/GetStream/stream-chat-android/pull/3102)

### ⚠️ Changed
- Disabled editing on Giphy messages given that it's breaking the UX and can override the GIF that was previously put in. [#3071](https://github.com/GetStream/stream-chat-android/pull/3071)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ import io.getstream.chat.android.client.events.ConnectedEvent
import io.getstream.chat.android.client.events.MarkAllReadEvent
import io.getstream.chat.android.client.events.MemberAddedEvent
import io.getstream.chat.android.client.events.MemberRemovedEvent
import io.getstream.chat.android.client.events.MessageDeliveredEvent
import io.getstream.chat.android.client.events.MessageReadEvent
import io.getstream.chat.android.client.events.MessageUpdatedEvent
import io.getstream.chat.android.client.events.NewMessageEvent
Expand Down Expand Up @@ -260,6 +261,26 @@ public fun randomMessageReadEvent(
)
}

public fun randomMessageDeliveredEvent(
createdAt: Date = Date(),
user: User = randomUser(),
cid: String = randomCID(),
channelType: String = randomString(),
channelId: String = randomString(),
lastDeliveredAt: Date = randomDate(),
lastDeliveredMessageId: String = randomString(),
) = MessageDeliveredEvent(
type = EventType.MESSAGE_DELIVERED,
createdAt = createdAt,
rawCreatedAt = streamFormatter.format(createdAt),
user = user,
cid = cid,
channelType = channelType,
channelId = channelId,
lastDeliveredAt = lastDeliveredAt,
lastDeliveredMessageId = lastDeliveredMessageId,
)

public fun randomNotificationMarkReadEvent(
createdAt: Date = Date(),
user: User = randomUser(),
Expand Down
62 changes: 53 additions & 9 deletions stream-chat-android-client/api/stream-chat-android-client.api
Original file line number Diff line number Diff line change
Expand Up @@ -1619,6 +1619,33 @@ public final class io/getstream/chat/android/client/events/MessageDeletedEvent :
public fun toString ()Ljava/lang/String;
}

public final class io/getstream/chat/android/client/events/MessageDeliveredEvent : 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;Ljava/util/Date;Ljava/lang/String;)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 component8 ()Ljava/util/Date;
public final fun component9 ()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;Ljava/util/Date;Ljava/lang/String;)Lio/getstream/chat/android/client/events/MessageDeliveredEvent;
public static synthetic fun copy$default (Lio/getstream/chat/android/client/events/MessageDeliveredEvent;Ljava/lang/String;Ljava/util/Date;Ljava/lang/String;Lio/getstream/chat/android/models/User;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/Date;Ljava/lang/String;ILjava/lang/Object;)Lio/getstream/chat/android/client/events/MessageDeliveredEvent;
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 final fun getLastDeliveredAt ()Ljava/util/Date;
public final fun getLastDeliveredMessageId ()Ljava/lang/String;
public fun getRawCreatedAt ()Ljava/lang/String;
public fun getType ()Ljava/lang/String;
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/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;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;Ljava/lang/String;Lio/getstream/chat/android/models/ThreadInfo;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
Expand Down Expand Up @@ -2631,10 +2658,12 @@ public final class io/getstream/chat/android/client/extensions/ChannelExtensionK
public static final fun countUnreadMentionsForUser (Lio/getstream/chat/android/models/Channel;Lio/getstream/chat/android/models/User;)I
public static final fun currentUserUnreadCount (Lio/getstream/chat/android/models/Channel;Ljava/lang/String;)I
public static synthetic fun currentUserUnreadCount$default (Lio/getstream/chat/android/models/Channel;Ljava/lang/String;ILjava/lang/Object;)I
public static final fun deliveredReadsOf (Lio/getstream/chat/android/models/Channel;Lio/getstream/chat/android/models/Message;)Ljava/util/List;
public static final fun isAnonymousChannel (Lio/getstream/chat/android/models/Channel;)Z
public static final fun isArchive (Lio/getstream/chat/android/models/Channel;)Z
public static final fun isMutedFor (Lio/getstream/chat/android/models/Channel;Lio/getstream/chat/android/models/User;)Z
public static final fun isPinned (Lio/getstream/chat/android/models/Channel;)Z
public static final fun readsOf (Lio/getstream/chat/android/models/Channel;Lio/getstream/chat/android/models/Message;)Ljava/util/List;
public static final fun syncUnreadCountWithReads (Lio/getstream/chat/android/models/Channel;Ljava/lang/String;)Lio/getstream/chat/android/models/Channel;
public static synthetic fun syncUnreadCountWithReads$default (Lio/getstream/chat/android/models/Channel;Ljava/lang/String;ILjava/lang/Object;)Lio/getstream/chat/android/models/Channel;
}
Expand Down Expand Up @@ -2982,6 +3011,24 @@ public abstract interface class io/getstream/chat/android/client/persistance/rep
public abstract fun createRepositoryFactory (Lio/getstream/chat/android/models/User;)Lio/getstream/chat/android/client/persistance/repository/factory/RepositoryFactory;
}

public final class io/getstream/chat/android/client/persistence/db/ChatClientDatabase_Impl {
public static final field Companion Lio/getstream/chat/android/client/persistence/db/ChatClientDatabase$Companion;
public fun <init> ()V
public fun clearAllTables ()V
public fun getAutoMigrations (Ljava/util/Map;)Ljava/util/List;
public fun getRequiredAutoMigrationSpecs ()Ljava/util/Set;
public fun messageReceiptDao ()Lio/getstream/chat/android/client/persistence/db/dao/MessageReceiptDao;
}

public final class io/getstream/chat/android/client/persistence/db/dao/MessageReceiptDao_Impl : io/getstream/chat/android/client/persistence/db/dao/MessageReceiptDao {
public fun <init> (Landroidx/room/RoomDatabase;)V
public fun deleteAll (Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public fun deleteByMessageIds (Ljava/util/List;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static fun getRequiredConverters ()Ljava/util/List;
public fun selectAll (ILkotlin/coroutines/Continuation;)Ljava/lang/Object;
public fun upsert (Ljava/util/List;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
}

public abstract interface class io/getstream/chat/android/client/plugin/Plugin : io/getstream/chat/android/client/plugin/DependencyResolver, io/getstream/chat/android/client/plugin/listeners/BlockUserListener, io/getstream/chat/android/client/plugin/listeners/ChannelMarkReadListener, io/getstream/chat/android/client/plugin/listeners/CreateChannelListener, io/getstream/chat/android/client/plugin/listeners/DeleteChannelListener, io/getstream/chat/android/client/plugin/listeners/DeleteMessageForMeListener, io/getstream/chat/android/client/plugin/listeners/DeleteMessageListener, io/getstream/chat/android/client/plugin/listeners/DeleteReactionListener, io/getstream/chat/android/client/plugin/listeners/DraftMessageListener, io/getstream/chat/android/client/plugin/listeners/EditMessageListener, io/getstream/chat/android/client/plugin/listeners/FetchCurrentUserListener, io/getstream/chat/android/client/plugin/listeners/GetMessageListener, io/getstream/chat/android/client/plugin/listeners/HideChannelListener, io/getstream/chat/android/client/plugin/listeners/LiveLocationListener, io/getstream/chat/android/client/plugin/listeners/MarkAllReadListener, io/getstream/chat/android/client/plugin/listeners/PushPreferencesListener, io/getstream/chat/android/client/plugin/listeners/QueryBlockedUsersListener, io/getstream/chat/android/client/plugin/listeners/QueryChannelListener, io/getstream/chat/android/client/plugin/listeners/QueryChannelsListener, io/getstream/chat/android/client/plugin/listeners/QueryMembersListener, io/getstream/chat/android/client/plugin/listeners/QueryThreadsListener, io/getstream/chat/android/client/plugin/listeners/SendAttachmentListener, io/getstream/chat/android/client/plugin/listeners/SendGiphyListener, io/getstream/chat/android/client/plugin/listeners/SendMessageListener, io/getstream/chat/android/client/plugin/listeners/SendReactionListener, io/getstream/chat/android/client/plugin/listeners/ShuffleGiphyListener, io/getstream/chat/android/client/plugin/listeners/ThreadQueryListener, io/getstream/chat/android/client/plugin/listeners/TypingEventListener, io/getstream/chat/android/client/plugin/listeners/UnblockUserListener {
public fun getErrorHandler ()Lio/getstream/chat/android/client/errorhandler/ErrorHandler;
public fun onAttachmentSendRequest (Ljava/lang/String;Ljava/lang/String;Lio/getstream/chat/android/models/Message;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
Expand Down Expand Up @@ -3061,12 +3108,6 @@ public abstract interface class io/getstream/chat/android/client/plugin/Plugin :
public static synthetic fun onQueryChannelRequest$suspendImpl (Lio/getstream/chat/android/client/plugin/Plugin;Ljava/lang/String;Ljava/lang/String;Lio/getstream/chat/android/client/api/models/QueryChannelRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public fun onQueryChannelResult (Lio/getstream/result/Result;Ljava/lang/String;Ljava/lang/String;Lio/getstream/chat/android/client/api/models/QueryChannelRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static synthetic fun onQueryChannelResult$suspendImpl (Lio/getstream/chat/android/client/plugin/Plugin;Lio/getstream/result/Result;Ljava/lang/String;Ljava/lang/String;Lio/getstream/chat/android/client/api/models/QueryChannelRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public fun onQueryChannelsPrecondition (Lio/getstream/chat/android/client/api/models/QueryChannelsRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static synthetic fun onQueryChannelsPrecondition$suspendImpl (Lio/getstream/chat/android/client/plugin/Plugin;Lio/getstream/chat/android/client/api/models/QueryChannelsRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public fun onQueryChannelsRequest (Lio/getstream/chat/android/client/api/models/QueryChannelsRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static synthetic fun onQueryChannelsRequest$suspendImpl (Lio/getstream/chat/android/client/plugin/Plugin;Lio/getstream/chat/android/client/api/models/QueryChannelsRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public fun onQueryChannelsResult (Lio/getstream/result/Result;Lio/getstream/chat/android/client/api/models/QueryChannelsRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static synthetic fun onQueryChannelsResult$suspendImpl (Lio/getstream/chat/android/client/plugin/Plugin;Lio/getstream/result/Result;Lio/getstream/chat/android/client/api/models/QueryChannelsRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public fun onQueryDraftMessagesResult (Lio/getstream/result/Result;Lio/getstream/chat/android/models/FilterObject;ILjava/lang/String;Lio/getstream/chat/android/models/querysort/QuerySorter;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public fun onQueryDraftMessagesResult (Lio/getstream/result/Result;Ljava/lang/Integer;Ljava/lang/Integer;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static synthetic fun onQueryDraftMessagesResult$suspendImpl (Lio/getstream/chat/android/client/plugin/Plugin;Lio/getstream/result/Result;Lio/getstream/chat/android/models/FilterObject;ILjava/lang/String;Lio/getstream/chat/android/models/querysort/QuerySorter;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
Expand Down Expand Up @@ -3203,9 +3244,12 @@ public abstract interface class io/getstream/chat/android/client/plugin/listener
}

public abstract interface class io/getstream/chat/android/client/plugin/listeners/QueryChannelsListener {
public abstract fun onQueryChannelsPrecondition (Lio/getstream/chat/android/client/api/models/QueryChannelsRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public abstract fun onQueryChannelsRequest (Lio/getstream/chat/android/client/api/models/QueryChannelsRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public abstract fun onQueryChannelsResult (Lio/getstream/result/Result;Lio/getstream/chat/android/client/api/models/QueryChannelsRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public fun onQueryChannelsPrecondition (Lio/getstream/chat/android/client/api/models/QueryChannelsRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static synthetic fun onQueryChannelsPrecondition$suspendImpl (Lio/getstream/chat/android/client/plugin/listeners/QueryChannelsListener;Lio/getstream/chat/android/client/api/models/QueryChannelsRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public fun onQueryChannelsRequest (Lio/getstream/chat/android/client/api/models/QueryChannelsRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static synthetic fun onQueryChannelsRequest$suspendImpl (Lio/getstream/chat/android/client/plugin/listeners/QueryChannelsListener;Lio/getstream/chat/android/client/api/models/QueryChannelsRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public fun onQueryChannelsResult (Lio/getstream/result/Result;Lio/getstream/chat/android/client/api/models/QueryChannelsRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static synthetic fun onQueryChannelsResult$suspendImpl (Lio/getstream/chat/android/client/plugin/listeners/QueryChannelsListener;Lio/getstream/result/Result;Lio/getstream/chat/android/client/api/models/QueryChannelsRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
}

public abstract interface class io/getstream/chat/android/client/plugin/listeners/QueryMembersListener {
Expand Down
6 changes: 6 additions & 0 deletions stream-chat-android-client/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,10 @@ dependencies {
implementation(libs.okhttp.logging.interceptor)
implementation(libs.ok2curl)

implementation(libs.androidx.room.runtime)
implementation(libs.androidx.room.ktx)
ksp(libs.androidx.room.compiler)

// Unused dependencies: The following dependencies (appcompat, constraintlayout, livedata-ktx) are not used in the
// `stream-chat-android-client` module. They are still declared here to prevent potential breaking changes for
// integrations that might be relying on them transitively. Consider removing them in future major releases.
Expand All @@ -111,8 +115,10 @@ dependencies {
testImplementation(libs.stream.result)
testImplementation(libs.androidx.test.junit)
testImplementation(libs.androidx.lifecycle.runtime.testing)
testImplementation(libs.androidx.work.testing)
testImplementation(libs.junit.jupiter.api)
testImplementation(libs.junit.jupiter.params)
testImplementation(libs.turbine)
testRuntimeOnly(libs.junit.jupiter.engine)
testRuntimeOnly(libs.junit.vintage.engine)

Expand Down
Loading
Loading