jhass / insporation

Flutter based client for diaspora*
BSD 3-Clause "New" or "Revised" License
30 stars 3 forks source link

Mark all notifications as read #31

Open jhass opened 3 years ago

jhass commented 3 years ago

Extracted from #18

There should be a feature to mark all unread notifications as read.

Any UI suggestions? I can't really come up with something that does not feel like it either wastes space or leads to jumpy UI.

tclaus commented 3 years ago

After some investigation it turns out two possible solutions: 1) Keep it, as it is 2) Remove badge after open the tab 3) "Mark all as read"

My ideas: 1) The count of unread items may rise over time - User is urged to make housekeeping every day by opening each item. (Which is annoying the second day)

2) I found this on many other apps - the Badge disappears after opening the Tab, but the unread item still has a different background color than read items. User still 'sees' unread items, but is not urged (by the red badge) to open each one. User can just 'forget' older items.

3) Uncommon, has a new UI-Element. Can be solved gracefully by 2)

So what do you thing about solution 2) ?

jhass commented 3 years ago

The 2. is tricky due to two things:

  1. Cross-client consistency. The web interface currently does not work this way, so we would have different criteria for when to show the red bubble. Also any new competing client could choose to follow the web interface behavior.
  2. Diaspora recycles unread notifications. Say you got a "comment on your post" notification. While it's unread the existing notification is updated as additional comments arrive. But after the notification was marked as read, the next comment triggers a new notification.

    I doubt there's a reliable way to detect an already "seen" notification was updated/recycled by Diaspora and should be resurfaced to the user.
tclaus commented 3 years ago

From user perspective this should be no brainier. If the backend recycles messages - ok. Not 100% perfect in an app, (that's a change on an old notification). It might be sufficient if "new" ones are detected and marked with a badge. Simply remember a time stamp from last open the tab and count all notifications since then?