Skip to content
This repository has been archived by the owner on May 6, 2020. It is now read-only.

Ability for clients to clear their notifs serverside if sending RRs is disabled #66

Open
ara4n opened this issue Apr 22, 2017 · 5 comments

Comments

@ara4n
Copy link
Member

ara4n commented Apr 22, 2017

element-hq/element-web#2527 is the main bug for letting clients not send RRs for privacy if desired.

However, this causes problems because RRs are currently the only way to mark notifs as read - otherwise you end up with badge counts accumulating on all clients.

This is a meta bug to track adding an API to mark notifs as read, and implement it on the 3 clients so they clear notifs on launch if RRs are disabled.

element-hq/riot-android#1151 is the bug for Android.

@ghost
Copy link

ghost commented Apr 28, 2017

Why clear on launch? Doesn't that defeat the purpose of notifs? If they were cleared per-room, on opening the room, there would be no loss in functionality.

@turt2live
Copy link
Member

When opening the room makes sense to me. Even more desirable would be to use read markers for badge counts instead of receipts, so that the badges are synchronized across clients.

@ara4n
Copy link
Member Author

ara4n commented May 15, 2017

badge counts should already be synchronized; sending an RR (not RM) on one device will trigger badge counts to be recalculated and pushed to everyone.

Agreed that the unread count should be reset on opening the room. Or even ideally, we should reset it whenever previously we would have sent an RR. In other words, we need to differentiate between local-read state and remotely-viewable-read state.

Perhaps a nicer solution would be to put some metadata on m.read receipts to indicate whether they should be visible to other users or not...

@erdnaxeli
Copy link

IMHO:

  • the RM should be use for all private information: what I've read, how many notification I'm missing, and so on.
  • the RR should only be used to notify all people in the room that you have read till some event (public information), but you should be able to have working notifications and room marked as read without it.

The downside of this if that the RM can far away in the history of a room, while you still want it to be marked as read (I personally don't like to keep a RM far away, but some people seem to do it) . So maybe we should support a mix of RM and RR and use the last recent one to compute unread rooms and notifications.

turt2live added a commit to turt2live/evelium that referenced this issue Mar 18, 2018
The general idea is that the room service will call into the notification service for each renderable event. This offloads push rule calculations to the notification service.

Notifications and unread counts are both going to be calculated client side. Therefore we can ignore the server values in the sync response. This is because issues like [element-hq/element-web#3363] are inevitable if we try and do a mix of   server and client processing. 

However, to get to that point we need read receipts so we can see what we've read and what we haven't read. Ideally this reliance on read receipts will disappear when this is resolved: element-hq/riot-meta#66

The amount of interaction between the room service and notification service is still relatively undecided. It will call into the notification service for determining if something should notify, however the read receipt parsing needs to somehow update the notification count somewhere.
turt2live added a commit to matrix-org/matrix-react-sdk that referenced this issue May 31, 2019
@Krinkle
Copy link

Krinkle commented Apr 2, 2020

Has a decision been made?

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants