mirror of
https://mau.dev/maunium/synapse.git
synced 2024-10-01 01:36:05 -04:00
Fix device list when rejoining room (#2461)
This commit is contained in:
parent
c94ab5976a
commit
3166ed55b2
@ -980,7 +980,18 @@ class SyncHandler(object):
|
|||||||
# We want to figure out if we joined the room at some point since
|
# We want to figure out if we joined the room at some point since
|
||||||
# the last sync (even if we have since left). This is to make sure
|
# the last sync (even if we have since left). This is to make sure
|
||||||
# we do send down the room, and with full state, where necessary
|
# we do send down the room, and with full state, where necessary
|
||||||
|
|
||||||
old_state_ids = None
|
old_state_ids = None
|
||||||
|
if room_id in joined_room_ids and non_joins:
|
||||||
|
# Always include if the user (re)joined the room, especially
|
||||||
|
# important so that device list changes are calculated correctly.
|
||||||
|
# If there are non join member events, but we are still in the room,
|
||||||
|
# then the user must have left and joined
|
||||||
|
newly_joined_rooms.append(room_id)
|
||||||
|
|
||||||
|
# User is in the room so we don't need to do the invite/leave checks
|
||||||
|
continue
|
||||||
|
|
||||||
if room_id in joined_room_ids or has_join:
|
if room_id in joined_room_ids or has_join:
|
||||||
old_state_ids = yield self.get_state_at(room_id, since_token)
|
old_state_ids = yield self.get_state_at(room_id, since_token)
|
||||||
old_mem_ev_id = old_state_ids.get((EventTypes.Member, user_id), None)
|
old_mem_ev_id = old_state_ids.get((EventTypes.Member, user_id), None)
|
||||||
@ -992,8 +1003,9 @@ class SyncHandler(object):
|
|||||||
if not old_mem_ev or old_mem_ev.membership != Membership.JOIN:
|
if not old_mem_ev or old_mem_ev.membership != Membership.JOIN:
|
||||||
newly_joined_rooms.append(room_id)
|
newly_joined_rooms.append(room_id)
|
||||||
|
|
||||||
if room_id in joined_room_ids:
|
# If user is in the room then we don't need to do the invite/leave checks
|
||||||
continue
|
if room_id in joined_room_ids:
|
||||||
|
continue
|
||||||
|
|
||||||
if not non_joins:
|
if not non_joins:
|
||||||
continue
|
continue
|
||||||
|
Loading…
Reference in New Issue
Block a user