diff options
author | Brendan Abolivier <babolivier@matrix.org> | 2020-06-17 15:10:09 +0100 |
---|---|---|
committer | Brendan Abolivier <babolivier@matrix.org> | 2020-06-17 15:10:44 +0100 |
commit | 5a5cf6460ec4b4bb3a07813c36717b5a8d4a697c (patch) | |
tree | 0e17cd8dd2c84fa8eb3cfae80ca6790bfdb1d725 | |
parent | Ignore the UI Auth sessions when porting from sqlite to postgresql (#7711) (diff) | |
download | synapse-5a5cf6460ec4b4bb3a07813c36717b5a8d4a697c.tar.xz |
Fix unread counts in sync
* Always return an unread_count in get_unread_event_push_actions_by_room_for_user * Don't always expect unread_count to be there so we don't take out sync entirely if something goes wrong
-rw-r--r-- | changelog.d/7716.feature | 1 | ||||
-rw-r--r-- | synapse/push/push_tools.py | 2 | ||||
-rw-r--r-- | synapse/storage/data_stores/main/event_push_actions.py | 2 |
3 files changed, 3 insertions, 2 deletions
diff --git a/changelog.d/7716.feature b/changelog.d/7716.feature new file mode 100644 index 0000000000..ecc3ffd8d5 --- /dev/null +++ b/changelog.d/7716.feature @@ -0,0 +1 @@ +Add a per-room counter for unread messages in responses to `/sync` requests. Implements [MSC2625](https://github.com/matrix-org/matrix-doc/pull/2625). diff --git a/synapse/push/push_tools.py b/synapse/push/push_tools.py index 9f264ca4a4..4ea683fee0 100644 --- a/synapse/push/push_tools.py +++ b/synapse/push/push_tools.py @@ -42,7 +42,7 @@ def get_badge_count(store, user_id): # We're populating this badge using the unread_count (instead of the # notify_count) as this badge is the number of missed messages, not the # number of missed notifications. - badge += 1 if notifs["unread_count"] else 0 + badge += 1 if notifs.get("unread_count") else 0 return badge diff --git a/synapse/storage/data_stores/main/event_push_actions.py b/synapse/storage/data_stores/main/event_push_actions.py index ba1b33a0a9..815d52ab4c 100644 --- a/synapse/storage/data_stores/main/event_push_actions.py +++ b/synapse/storage/data_stores/main/event_push_actions.py @@ -123,7 +123,7 @@ class EventPushActionsWorkerStore(SQLBaseStore): txn.execute(sql, (room_id, last_read_event_id)) results = txn.fetchall() if len(results) == 0: - return {"notify_count": 0, "highlight_count": 0} + return {"notify_count": 0, "highlight_count": 0, "unread_count": 0} stream_ordering = results[0][0] |