summary refs log tree commit diff
path: root/synapse/handlers/presence.py
diff options
context:
space:
mode:
authorBrendan Abolivier <babolivier@matrix.org>2021-03-18 16:34:47 +0100
committerBrendan Abolivier <babolivier@matrix.org>2021-03-18 16:34:47 +0100
commit405aeb0b2c40443d22ce8c265df18e81bd995b44 (patch)
tree34dc1487f416df1a73d1e0d25be0a703dfa0ae96 /synapse/handlers/presence.py
parentEnsure we use a copy of the event content dict before modifying it in seriali... (diff)
downloadsynapse-405aeb0b2c40443d22ce8c265df18e81bd995b44.tar.xz
Implement MSC3026: busy presence state
Diffstat (limited to '')
-rw-r--r--synapse/handlers/presence.py3
1 files changed, 2 insertions, 1 deletions
diff --git a/synapse/handlers/presence.py b/synapse/handlers/presence.py
index 54631b4ee2..bcb99f627b 100644
--- a/synapse/handlers/presence.py
+++ b/synapse/handlers/presence.py
@@ -730,6 +730,7 @@ class PresenceHandler(BasePresenceHandler):
             PresenceState.ONLINE,
             PresenceState.UNAVAILABLE,
             PresenceState.OFFLINE,
+            PresenceState.BUSY,
         )
         if presence not in valid_presence:
             raise SynapseError(400, "Invalid presence state")
@@ -744,7 +745,7 @@ class PresenceHandler(BasePresenceHandler):
             msg = status_msg if presence != PresenceState.OFFLINE else None
             new_fields["status_msg"] = msg
 
-        if presence == PresenceState.ONLINE:
+        if presence == PresenceState.ONLINE or presence == PresenceState.BUSY:
             new_fields["last_active_ts"] = self.clock.time_msec()
 
         await self._update_states([prev_state.copy_and_replace(**new_fields)])