-
Notifications
You must be signed in to change notification settings - Fork 305
Introduce message delivery receipts #5979
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
Merged
Merged
Changes from all commits
Commits
Show all changes
80 commits
Select commit
Hold shift + click to select a range
f223b1c
Add ChatClient.markMessagesAsDelivered function to mark messages as d…
andremion 6242795
Add delivery receipts support to user privacy settings
andremion e9b54ad
Introduce a initial DeliveryReceiptsManager to handle message deliver…
andremion 02e4e2b
Introduce MessageReceiptDao and MessageReceiptEntity for handling mes…
andremion dc90cd8
Introduce MessageReceipt model and repository for handling message de…
andremion 296ae95
Make MessageReceiptRepository `getAllByType` return a Flow and add a …
andremion 3b5384d
Refactor DeliveryReceiptsManager to store receipts locally
andremion d503cf1
Introduced `MessageReceiptReporter`, a new class responsible for obse…
andremion 3be042a
Prapare to move internal persistence to the client module
andremion 1e1c964
Add ChatClientDatabase, DateConverter, and ChatClientRepository for m…
andremion 5bae534
Refactor: Move message receipt logic to client
andremion 6e0e715
Support `message.delivered` event
andremion 245c894
Refactor: Add default empty implementations for `QueryChannelsListene…
andremion e561d09
Deprecate `hasUnread` in favor of `currentUserUnreadCount`
andremion 3746f56
Add `userRead` and `deliveredReads` helper functions
andremion 52c0bba
Introduce `markChannelsAsDelivered`, a new function to mark the last …
andremion 0b2d1cc
Refactor MessageReceiptReporter to use a polling mechanism
andremion d508454
Moves the user ID update in the `switchUser` function to after the us…
andremion ebb75b8
Rename MessageReceiptReporter.init to start and add logging
andremion 83cd287
Refactor MessageReceiptManagerTest to standardize verification method…
andremion 469a2b6
Automatically mark messages as delivered when querying channels
andremion 79a7024
Introduce `ChatClientRepository` to encapsulate internal repositories…
andremion b3d205a
Add MessageReceiptManager and MessageReceiptReporter to ChatClient
andremion 45633af
Decoupled `MessageReceiptReporter` from `ChatClient` by passing `Chat…
andremion 73f2034
Refactor ChatClientTest to simplify test setup
andremion b4cb0fa
Rename deliveredReads to deliveredReadsOf
andremion f57e0ab
feat: Add delivered status indicator for messages
andremion f2a0c8e
Fix flaky test
andremion 3b59aba
Add more tests
andremion 991cff0
Feat: Add `Channel.readsOf()` extension function
andremion e68f57f
Add pending status indicator snapshot test
andremion d072a12
Add unit test for MessageReceiptRepository instantiation
andremion ca74d26
Fix the message status indicator paddings
andremion 8ee562f
Mark messages as delivered on push notification
andremion 9a55a6d
sonar lint
andremion 321b21b
Mark channel as delivered on query a single channel
andremion 4c7d597
Provide a ChatClient lazily in ChatNotifications
andremion ed6eb51
Hide the message status indicator when a message is deleted
andremion 92c8c55
Do not expose ChatClient.markMessagesAsDelivered
andremion 59fe832
feat: Add delivery_events flag to Config
andremion 3905140
Refactor: Improve message delivery receipts logic
andremion 9a3add6
Add DELIVERY_EVENTS to ChannelCapabilities
andremion e9dc48a
Refactor: Make MessageReceiptManager functions suspend
andremion e809ce3
Refactor: Lazy initialize messageReceiptManager in MessageDeliveredPl…
andremion 9c2874b
Fix: Fetch message from API when marking as delivered by ID
andremion b984fe6
Skip sending delivery receipts for shadowed messages and muted users
andremion a938667
Add deliveryEventsEnabled to channel configuration and mapping
andremion ead2502
Add message info option to message menu
andremion e1b8dfc
Extra PaneTitle and PaneRow components for reusing
andremion 1368d52
Add message info component to display read and delivered status
andremion 2589129
Stop using kluent assertions
andremion af695b0
Update read and delivered status checks to include equal comparison
andremion 9c0f88a
Add user profile privacy settings screen
andremion c0207c4
Add privacy settings mapping to domain model
andremion 058f11d
Fix message info component to display read and delivered timestamps c…
andremion 6fcc75d
typo
andremion b07222f
CHANGELOG
andremion c2c968e
Change userRead function visibility to internal
andremion e390768
Use getCreatedAtOrDefault
andremion 4d1bef6
Remove MessageReceipt's 'type' field
andremion 13b7ede
Move MessageReceiptRepositoryImpl to the same file as MessageReceiptR…
andremion 0b2aae6
Fix tests after rebased from develop
andremion 3056ddb
Update User.mergePartially to conditionally merge based on update tim…
andremion 64e9e05
Store UserMuteEntity properly
andremion edbdfc7
Refactor event handling to consolidate user updates
andremion d3d8110
Refactor `MessageReceiptManager` to fetch the current user from the r…
andremion fec9268
Refactor: Lazily inject RepositoryFacade into MessageReceiptManager
andremion 39a4624
Expose `markMessageAsDelivered` and allow custom handling of incoming…
andremion 07e39e4
Enhance UserRepositoryTests: Add tests for user insertion and selecti…
andremion 128a0fc
improve test coverage
andremion 716b933
Rename `onNewPushMessage` to `onNewMessage` to keep consistency betwe…
andremion 518dc5a
Stop using kluent
andremion 929b6ab
Refactor markMessageAsDelivered methods to return Boolean indicating …
andremion 6155b1b
Check for the `MESSAGE_NEW` event type before marking a message as de…
andremion 24e4c90
Add unit tests for MessagingStyleNotificationHandler
andremion 846f02d
Remove timestamps of the read and delivered members since the timesta…
andremion 7d176c8
kdoc
andremion 3453c20
Check for the `MESSAGE_NEW` event type before marking a message as de…
andremion 570f740
Merge branch 'develop' into AND-769-message-delivery-status
VelikovPetar 9a3c2a4
Add unit tests for NotificationHandlerFactory
andremion File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
66 changes: 56 additions & 10 deletions
66
stream-chat-android-client/api/stream-chat-android-client.api
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.