summary refs log tree commit diff
path: root/synapse/push/push_tools.py
diff options
context:
space:
mode:
authorAndrew Morgan <andrew@amorgan.xyz>2020-12-31 17:19:14 +0000
committerAndrew Morgan <andrew@amorgan.xyz>2020-12-31 17:19:14 +0000
commita839d0f32df51b18908c3f13c89cd10d478494a6 (patch)
treeb81447dbeeb86e75f46f644bb3f9c574d563f640 /synapse/push/push_tools.py
parentMerge commit 'a090b8620' into anoa/dinsic_release_1_23_1 (diff)
parentFix broken testcase (#8851) (diff)
downloadsynapse-a839d0f32df51b18908c3f13c89cd10d478494a6.tar.xz
Merge commit '09ac0569f' into anoa/dinsic_release_1_23_1
Diffstat (limited to 'synapse/push/push_tools.py')
-rw-r--r--synapse/push/push_tools.py16
1 files changed, 11 insertions, 5 deletions
diff --git a/synapse/push/push_tools.py b/synapse/push/push_tools.py

index d0145666bf..6e7c880dc0 100644 --- a/synapse/push/push_tools.py +++ b/synapse/push/push_tools.py
@@ -12,12 +12,12 @@ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. - from synapse.push.presentable_names import calculate_room_name, name_from_member_event from synapse.storage import Storage +from synapse.storage.databases.main import DataStore -async def get_badge_count(store, user_id): +async def get_badge_count(store: DataStore, user_id: str, group_by_room: bool) -> int: invites = await store.get_invited_rooms_for_local_user(user_id) joins = await store.get_rooms_for_user(user_id) @@ -34,9 +34,15 @@ async def get_badge_count(store, user_id): room_id, user_id, last_unread_event_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 + if notifs["notify_count"] == 0: + continue + + if group_by_room: + # return one badge count per conversation + badge += 1 + else: + # increment the badge count by the number of unread messages in the room + badge += notifs["notify_count"] return badge