diff options
author | Alexey Rusakov <Kitsune-Ral@users.sf.net> | 2021-07-28 03:32:02 +0200 |
---|---|---|
committer | Alexey Rusakov <Kitsune-Ral@users.sf.net> | 2021-07-28 15:46:16 +0200 |
commit | 277f43defe3fa55ff32fe53952c6331a81d65a20 (patch) | |
tree | 556d71bf7b95621885715f81b21b37a1283b77cd /lib/room.h | |
parent | ed1b034089dfc1948acaa80a5200cb0df28d0c1c (diff) | |
download | libquotient-277f43defe3fa55ff32fe53952c6331a81d65a20.tar.gz libquotient-277f43defe3fa55ff32fe53952c6331a81d65a20.zip |
Room: fix the read markers/receipts confusion
This turns the design changes laid out in #464 comments to code, as of
0.6.x branch (0.7 API will be introduced separately):
- readMarker() now returns the fully read marker, unlike
readMarker(User*) that returns a read receipt, even when called for
the local user.
- Private::setLastReadEvent() -> setLastReadReceipt(), incorporating
the "promotion" logic from promoteReadReceipt().
- The above makes promoteReadReceipt() unneeded; the remaining piece
of logic that recalculates the number of unread messages is put to
its own method - Private::recalculateUnreadCount().
- Private::updateUnreadCount() is only slightly refreshed, continues
to use the fully read marker position (as it used to).
- Now that read receipts and fully read markers are managed separately,
Private::setLastReadReceipt() has got its counterpart,
Private::setFullyReadMarker(); both only update their respective
markers locally (emitting signals as needed), without interaction
with the homeserver.
- Private::markMessagesAsRead() now delegates updating the fully read
marker to setFullyReadMarker() and on top of that sends the new
fully read marker to the homeserver.
- Private::serverReadMarker -> fullyReadUntilEventId (to be really clear
what it stores).
- The hand-written PostReadMarkersJob is replaced with the generated
SetReadMarkerJob that does the same thing (and can update the read
receipt on top).
Diffstat (limited to 'lib/room.h')
0 files changed, 0 insertions, 0 deletions