2 files changed, 9 insertions, 3 deletions
diff --git a/synapse/push/bulk_push_rule_evaluator.py b/synapse/push/bulk_push_rule_evaluator.py
index 43ffe6faf0..5b00602a56 100644
--- a/synapse/push/bulk_push_rule_evaluator.py
+++ b/synapse/push/bulk_push_rule_evaluator.py
@@ -189,8 +189,11 @@ class BulkPushRuleEvaluator(object):
)
if matches:
actions = [x for x in rule["actions"] if x != "dont_notify"]
- if actions and "notify" in actions:
- # Push rules say we should notify the user of this event
+ if (
+ "notify" in actions
+ or "org.matrix.msc2625.mark_unread" in actions
+ ):
+ # Push rules say we should act on this event.
actions_by_user[uid] = actions
break
diff --git a/synapse/push/push_tools.py b/synapse/push/push_tools.py
index 5dae4648c0..9f264ca4a4 100644
--- a/synapse/push/push_tools.py
+++ b/synapse/push/push_tools.py
@@ -39,7 +39,10 @@ def get_badge_count(store, user_id):
)
# return one badge count per conversation, as count per
# message is so noisy as to be almost useless
- badge += 1 if notifs["notify_count"] else 0
+ # 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
return badge
|