-
-
Notifications
You must be signed in to change notification settings - Fork 589
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Lazy load room members - Part I #667
Lazy load room members - Part I #667
Commits on Jul 10, 2018
-
Configuration menu - View commit details
-
Copy full SHA for 32651da - Browse repository at this point
Copy the full SHA 32651daView commit details -
Configuration menu - View commit details
-
Copy full SHA for a825ea0 - Browse repository at this point
Copy the full SHA a825ea0View commit details -
Configuration menu - View commit details
-
Copy full SHA for 8182777 - Browse repository at this point
Copy the full SHA 8182777View commit details -
emit individual events for lazily loaded members
emit individual RoomState.members/newMember events for each lazily loaded member as batch events are not a thing. This makes updating the memberlist work
Configuration menu - View commit details
-
Copy full SHA for 24a2aaa - Browse repository at this point
Copy the full SHA 24a2aaaView commit details
Commits on Jul 12, 2018
-
Configuration menu - View commit details
-
Copy full SHA for 104ce78 - Browse repository at this point
Copy the full SHA 104ce78View commit details -
Configuration menu - View commit details
-
Copy full SHA for 0e49ff2 - Browse repository at this point
Copy the full SHA 0e49ff2View commit details
Commits on Jul 13, 2018
-
Configuration menu - View commit details
-
Copy full SHA for 4224630 - Browse repository at this point
Copy the full SHA 4224630View commit details -
Configuration menu - View commit details
-
Copy full SHA for 3614173 - Browse repository at this point
Copy the full SHA 3614173View commit details -
make method to get mxc avatar url public
so MemberInfo can use it and take lazy loading into account
Configuration menu - View commit details
-
Copy full SHA for 202c131 - Browse repository at this point
Copy the full SHA 202c131View commit details
Commits on Jul 16, 2018
-
set lazily loaded members on all RoomStates of a room
for all timelines in all timeline sets
Configuration menu - View commit details
-
Copy full SHA for 6165dfd - Browse repository at this point
Copy the full SHA 6165dfdView commit details -
make sentinels lazy loading compatible
dont just rely on member events, but just copy the member
Configuration menu - View commit details
-
Copy full SHA for 6d017b1 - Browse repository at this point
Copy the full SHA 6d017b1View commit details -
Configuration menu - View commit details
-
Copy full SHA for e2c6eea - Browse repository at this point
Copy the full SHA e2c6eeaView commit details
Commits on Jul 17, 2018
-
return sentinels with userid if members haven't been loaded yet,
better than braking timeline continuation
Configuration menu - View commit details
-
Copy full SHA for 0d55d4b - Browse repository at this point
Copy the full SHA 0d55d4bView commit details -
make resetting the live timeline work with lazily loaded members
In order for the lazy loading logic not to bleed into all corners of the JS SDK, I moved some of the state copying between timelines over to the RoomState and EventTimeLine class.
Configuration menu - View commit details
-
Copy full SHA for 53e1203 - Browse repository at this point
Copy the full SHA 53e1203View commit details
Commits on Jul 18, 2018
-
Configuration menu - View commit details
-
Copy full SHA for eef07d5 - Browse repository at this point
Copy the full SHA eef07d5View commit details -
Configuration menu - View commit details
-
Copy full SHA for ac07212 - Browse repository at this point
Copy the full SHA ac07212View commit details
Commits on Jul 19, 2018
-
Configuration menu - View commit details
-
Copy full SHA for 6ae2871 - Browse repository at this point
Copy the full SHA 6ae2871View commit details -
Configuration menu - View commit details
-
Copy full SHA for a5ae548 - Browse repository at this point
Copy the full SHA a5ae548View commit details -
Configuration menu - View commit details
-
Copy full SHA for a1776ef - Browse repository at this point
Copy the full SHA a1776efView commit details -
getSentinelMember now does return a member (with just the userid) when there is no corresponding member yet. With lazy loading it's perfectly possible the member is not available, and null breaks continuation in the timeline.
Configuration menu - View commit details
-
Copy full SHA for 604a40e - Browse repository at this point
Copy the full SHA 604a40eView commit details -
Configuration menu - View commit details
-
Copy full SHA for 0fd0653 - Browse repository at this point
Copy the full SHA 0fd0653View commit details -
Configuration menu - View commit details
-
Copy full SHA for 1bf9525 - Browse repository at this point
Copy the full SHA 1bf9525View commit details -
Configuration menu - View commit details
-
Copy full SHA for ab99fa0 - Browse repository at this point
Copy the full SHA ab99fa0View commit details -
move the fact that we're prototyping only with joined members up the …
…stack to client only MatrixClient really needs to know that for now we only load joined members, the rest of the code can be generic for other membership types as that is the eventual plan, to also support invites at least.
Configuration menu - View commit details
-
Copy full SHA for 578984d - Browse repository at this point
Copy the full SHA 578984dView commit details -
Configuration menu - View commit details
-
Copy full SHA for 411f05e - Browse repository at this point
Copy the full SHA 411f05eView commit details -
Configuration menu - View commit details
-
Copy full SHA for 8777c2e - Browse repository at this point
Copy the full SHA 8777c2eView commit details -
Lazy loaded members should never take precendence over members acquir…
…ed through state events
Configuration menu - View commit details
-
Copy full SHA for cc80eef - Browse repository at this point
Copy the full SHA cc80eefView commit details -
make sure LL member doesn't override state event
extra safety check, as this should already not happen because of the check in RoomState
Configuration menu - View commit details
-
Copy full SHA for 9d2b4ed - Browse repository at this point
Copy the full SHA 9d2b4edView commit details -
Configuration menu - View commit details
-
Copy full SHA for bd52b72 - Browse repository at this point
Copy the full SHA bd52b72View commit details
Commits on Jul 20, 2018
-
Configuration menu - View commit details
-
Copy full SHA for d27bc64 - Browse repository at this point
Copy the full SHA d27bc64View commit details -
Configuration menu - View commit details
-
Copy full SHA for c59b146 - Browse repository at this point
Copy the full SHA c59b146View commit details -
Configuration menu - View commit details
-
Copy full SHA for f5613e5 - Browse repository at this point
Copy the full SHA f5613e5View commit details -
Configuration menu - View commit details
-
Copy full SHA for cc75b2b - Browse repository at this point
Copy the full SHA cc75b2bView commit details -
only set the lazy members on the forward looking state of the live ti…
…meline since back-paginating will also support lazy loading the state needed to display that part of the timeline, and no user interaction is supposed to happen before the lazy loaded member are, well, loaded, applying the ll members to all timelines should not be neccessary.
Configuration menu - View commit details
-
Copy full SHA for fc7bc8a - Browse repository at this point
Copy the full SHA fc7bc8aView commit details -
Configuration menu - View commit details
-
Copy full SHA for 92cb16d - Browse repository at this point
Copy the full SHA 92cb16dView commit details -
make sure LL members don't needlessly get disambiguated during a clone
when cloning the state, lazy loaded members are copied over with their rawDisplayName, which could originate from their userId if they don't have a displayname. the displayname algorithm would assume that the displayname is explicitly set, and see if we'd have to disambiguate. As a fix, if the display name is the same as the id, just return the id
Configuration menu - View commit details
-
Copy full SHA for 4db3c65 - Browse repository at this point
Copy the full SHA 4db3c65View commit details -
Configuration menu - View commit details
-
Copy full SHA for d3b5e6d - Browse repository at this point
Copy the full SHA d3b5e6dView commit details -
Configuration menu - View commit details
-
Copy full SHA for 8b3ded6 - Browse repository at this point
Copy the full SHA 8b3ded6View commit details -
Configuration menu - View commit details
-
Copy full SHA for 1001f0f - Browse repository at this point
Copy the full SHA 1001f0fView commit details
Commits on Jul 24, 2018
-
Use /members api for lazy loading
This commit is a substantial change, as /members returns state events, not profile information as /joined_members, and this allows to simplify the implementation quite a bit. We can assume again all members have a state event associated with it. I also changed most of the naming of lazy loaded members to out-of-band members to reflect that this is the relevant bit for most of the code, that the members didn't come through /sync but through another channel. This commit also addresses the race condition between /(joined_)members and /sync. /members returns the members at the point in the timeline at a given event id. Members are loaded at the last event in the live timeline, and all members that come in from sync in the mean time are marked as superseding the out of band members, so they won't be overwritten, even if the timeline is reset in the mean time. Members are also marked if they originate from an out-of-band channel (/members) so they can be stored accordingly (future PR). The loading status is kept in room state now, as this made resolving the race condition easier. One consequence is that the status needs to be shared across cloned instances of RoomState. When resetting the timeline (and cloning the room state) while lazy loading is in progress, one of the RoomStates could be left in progress indefinitely. Though that is more for clarity than avoiding any actual bugs.
Configuration menu - View commit details
-
Copy full SHA for a84dc8d - Browse repository at this point
Copy the full SHA a84dc8dView commit details
Commits on Jul 25, 2018
-
Configuration menu - View commit details
-
Copy full SHA for ae6cf68 - Browse repository at this point
Copy the full SHA ae6cf68View commit details -
Configuration menu - View commit details
-
Copy full SHA for 89e8801 - Browse repository at this point
Copy the full SHA 89e8801View commit details -
Configuration menu - View commit details
-
Copy full SHA for 7223149 - Browse repository at this point
Copy the full SHA 7223149View commit details -
store membership from during sync, because we might not have own memb…
…ership to determine where a room should show up in the room list, we need to know our membership type. But with lazy loading, we might not have our own member if we weren't recently active in the room. Using getSyncedMembership can be used to fallback if the users membership is not yet available.
Configuration menu - View commit details
-
Copy full SHA for c196ca0 - Browse repository at this point
Copy the full SHA c196ca0View commit details -
Configuration menu - View commit details
-
Copy full SHA for e478421 - Browse repository at this point
Copy the full SHA e478421View commit details -
Configuration menu - View commit details
-
Copy full SHA for 2e8198e - Browse repository at this point
Copy the full SHA 2e8198eView commit details -
Configuration menu - View commit details
-
Copy full SHA for 66ec268 - Browse repository at this point
Copy the full SHA 66ec268View commit details