diff options
-rw-r--r-- | changelog.d/17546.misc | 1 | ||||
-rw-r--r-- | synapse/handlers/sliding_sync.py | 13 |
2 files changed, 9 insertions, 5 deletions
diff --git a/changelog.d/17546.misc b/changelog.d/17546.misc new file mode 100644 index 0000000000..a06d6a2262 --- /dev/null +++ b/changelog.d/17546.misc @@ -0,0 +1 @@ +Return correct per-room notification and highlight counts in experimental sliding sync implementation. diff --git a/synapse/handlers/sliding_sync.py b/synapse/handlers/sliding_sync.py index a702922288..531089c279 100644 --- a/synapse/handlers/sliding_sync.py +++ b/synapse/handlers/sliding_sync.py @@ -2395,6 +2395,11 @@ class SlidingSyncHandler: set_tag(SynapseTags.RESULT_PREFIX + "initial", initial) + notif_counts = await self.store.get_unread_event_push_actions_by_room_for_user( + room_id, + sync_config.user.to_string(), + ) + return SlidingSyncResult.RoomResult( name=room_name, avatar=room_avatar, @@ -2415,11 +2420,9 @@ class SlidingSyncHandler: invited_count=room_membership_summary.get( Membership.INVITE, empty_membership_summary ).count, - # TODO: These are just dummy values. We could potentially just remove these - # since notifications can only really be done correctly on the client anyway - # (encrypted rooms). - notification_count=0, - highlight_count=0, + # TODO: What about notifications in threads? + notification_count=notif_counts.main_timeline.notify_count, + highlight_count=notif_counts.main_timeline.highlight_count, ) @trace |