Defer fetching user profiles for events

Previously, events for which the sender, target (state_key) or remover
was missing from the room members would have their profile fetched
from network when registering the event into models.

This could cause very slow past events loading times for rooms, since
the event registering function (which contained the profile retrieval
directives) is run sequentially event-by-event.

Missing profiles are now lazy-loaded when events come into the
user's view in the QML timeline.
This commit is contained in:
miruka
2020-05-20 03:42:40 -04:00
parent bc5549195b
commit 63af4be1e2
6 changed files with 87 additions and 32 deletions

View File

@@ -1,13 +1,12 @@
# TODO
- Defer retrieving profiles for events from members not anymore in the room
- add room members loading indicator
- fix lag when clicking accounts in the AccountBar with a very long room list
- fix: on startup, if a room's last event is a membership change,
it won't be visible in timeline no matter what the user config is
- fix: there are rooms without messages on first sync
- avatar loading performance problem?
- fix binding loops?
- update docstrings
- update flatpak nio required version