summary refs log tree commit diff
path: root/synapse/handlers/device.py
diff options
context:
space:
mode:
Diffstat (limited to 'synapse/handlers/device.py')
-rw-r--r--synapse/handlers/device.py19
1 files changed, 16 insertions, 3 deletions
diff --git a/synapse/handlers/device.py b/synapse/handlers/device.py
index a514c30714..54931c355b 100644
--- a/synapse/handlers/device.py
+++ b/synapse/handlers/device.py
@@ -122,11 +122,22 @@ class DeviceWorkerHandler(BaseHandler):
 
         # First we check if any devices have changed for users that we share
         # rooms with.
-        users_who_share_room = yield self.store.get_users_who_share_room_with_user(
+        tracked_users = yield self.store.get_users_who_share_room_with_user(
             user_id
         )
+        # always tell the user about their own devices
+        tracked_users.add(user_id)
+
+        logger.info(
+            "tracked users ids: %r", tracked_users,
+        )
+
         changed = yield self.store.get_users_whose_devices_changed(
-            from_token.device_list_key, users_who_share_room
+            from_token.device_list_key, tracked_users
+        )
+
+        logger.info(
+            "changed users IDs: %r", changed,
         )
 
         # Then work out if any users have since joined
@@ -456,7 +467,9 @@ class DeviceHandler(DeviceWorkerHandler):
 
         room_ids = yield self.store.get_rooms_for_user(user_id)
 
-        yield self.notifier.on_new_event("device_list_key", position, rooms=room_ids)
+        # specify the user ID too since the user should always get their own device list
+        # updates, even if they aren't in any rooms.
+        yield self.notifier.on_new_event("device_list_key", position, users=[user_id], rooms=room_ids)
 
         if hosts:
             logger.info(