aboutsummaryrefslogtreecommitdiff
path: root/lib/room.h
diff options
context:
space:
mode:
authorAlexey Rusakov <Kitsune-Ral@users.sf.net>2021-07-28 03:32:02 +0200
committerAlexey Rusakov <Kitsune-Ral@users.sf.net>2021-07-28 15:46:16 +0200
commit277f43defe3fa55ff32fe53952c6331a81d65a20 (patch)
tree556d71bf7b95621885715f81b21b37a1283b77cd /lib/room.h
parented1b034089dfc1948acaa80a5200cb0df28d0c1c (diff)
downloadlibquotient-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