-
Notifications
You must be signed in to change notification settings - Fork 339
Send read receipts using the current timeline, not the live timeline #5731
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
base: develop
Are you sure you want to change the base?
Conversation
This fixes sending read receipts in threaded timelines.
|
Note there is a similar issue, causing the live timeline to send an incorrect read receipt when the latest event of the room is in a thread even if there were unread events in the live timeline: similarly, it will try sending a read receipt for a threaded event from the live timeline, but as this event is not in this timeline, the HS will reject it. That will be handled in matrix-org/matrix-rust-sdk#5864 instead. |
|
📱 Scan the QR code below to install the build (arm64 only) for this PR. |
|
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## develop #5731 +/- ##
========================================
Coverage 79.63% 79.63%
========================================
Files 2431 2431
Lines 65261 65263 +2
Branches 8332 8332
========================================
+ Hits 51972 51974 +2
Misses 10308 10308
Partials 2981 2981 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
bmarty
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks. I suspect that there are other usage of JoinedRoom.liveTimeline with the same problem.
I see:
- NotificationBroadcastReceiverHandler.sendMatrixEvent()
- MediaViewerPresenter.delete()
- Others that I missed?
There is also maybe on opportunity to create an extension like JoinedRoom.getTimeline(ThreadId?), since the code which either returns the liveTimeline or creates one for thread is the same at several places.



Content
This fixes sending read receipts in threads.
cc @frebib
Motivation and context
If you opened a thread, previously the app would try to send read receipts for it using the live timeline. As those events aren't really in the live timeline, this would be rejected by the homeserver.
Tests
You'll need 2 clients (EX/EW) with the same account and one with a different account to test it. With threads enabled:
Tested devices
Checklist