Make timeline sender avatars and display names update reactively#6775
Make timeline sender avatars and display names update reactively#6775jennaharris7 wants to merge 2 commits into
Conversation
|
📱 Scan the QR code below to install the build (arm64 only) for this PR. |
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## develop #6775 +/- ##
===========================================
+ Coverage 81.14% 81.16% +0.02%
===========================================
Files 2647 2647
Lines 74099 74119 +20
Branches 9600 9601 +1
===========================================
+ Hits 60126 60162 +36
+ Misses 10438 10423 -15
+ Partials 3535 3534 -1 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
once per timeline batch
802f23b to
560101d
Compare
|
|
Sorry for the long review time, the code looks good to me overall. About this question:
I'd say we do, I think when we implemented this in the classic apps we did so behind a developer option/advanced settings toggle. @mxandreas WDYT? |
|
Actually, it seems like this should be possible with a pure SDK implementation: matrix-org/matrix-rust-sdk#6575 I'm looking at ways to implement this, it seems like following the example from |
|
Since matrix-org/matrix-rust-sdk#6576 was merged, this should now be fixed in the SDK and we can probably close this PR. Thanks again for the client-side fix, but it's better to have it centralised in the SDK. |



Content
Let live
RoomMemberupdates override the event-level sender snapshot inTimelineItemEventFactory, so timeline rows already in the diff cache reflect avatar / display name changes that arrived via sync. Banned members keep the existing hide-identity behavior.Motivation and context
Closes #5176. Customers report that when another user changes their avatar or display name, the update doesn't appear until the app is restarted or the cache is cleared.
The issue was tagged
X-Needs-Rust, but nomatrix-rust-sdkchange turned out to be necessary: the SDK already emits profile changes asProfileChangeContenttimeline events. The only SDK-layer tweak is inMatrixTimelineDiffProcessor, which now treatsProfileChangeContent(alongside the already-handledRoomMembershipContent) as a trigger formembershipChangeEventReceivedso subscribers refresh the cached members list.Open question
Do we want this behind a feature flag for users who may want to keep the behavior of seeing historical snapshots of timeline events?
Screenshots / GIFs
Tests
ProfileDetails.withLiveMemberOverride: live member wins, null falls back, banned falls back, ambiguous name propagates,Unavailablesnapshot still uses live data.Tested devices
Checklist