mirror of
https://git.anonymousland.org/anonymousland/synapse.git
synced 2025-05-02 12:26:02 -04:00
Reset badge count to zero when last active time is bumped
This commit is contained in:
parent
f7c4daa8f9
commit
273b12729b
4 changed files with 76 additions and 3 deletions
|
@ -18,6 +18,7 @@ from twisted.internet import defer
|
|||
|
||||
from httppusher import HttpPusher
|
||||
from synapse.push import PusherConfigException
|
||||
from synapse.api.constants import PresenceState
|
||||
|
||||
import logging
|
||||
import json
|
||||
|
@ -32,6 +33,22 @@ class PusherPool:
|
|||
self.pushers = {}
|
||||
self.last_pusher_started = -1
|
||||
|
||||
distributor = self.hs.get_distributor()
|
||||
distributor.observe(
|
||||
"user_presence_changed", self.user_presence_changed
|
||||
)
|
||||
|
||||
@defer.inlineCallbacks
|
||||
def user_presence_changed(self, user, state):
|
||||
user_name = user.to_string()
|
||||
|
||||
# until we have read receipts, pushers use this to reset a user's
|
||||
# badge counters to zero
|
||||
for p in self.pushers.values():
|
||||
if p.user_name == user_name:
|
||||
yield p.presence_changed(state)
|
||||
|
||||
|
||||
@defer.inlineCallbacks
|
||||
def start(self):
|
||||
pushers = yield self.store.get_all_pushers()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue