Prevent crash in loading past evnts

This commit is contained in:
miruka 2019-12-14 13:50:21 -04:00
parent 47c53644e7
commit 73dfcce8a7
3 changed files with 18 additions and 1 deletions

14
TODO.md
View File

@ -2,6 +2,9 @@
## Media ## Media
- Send the monitor PR
- Pause tests
- Handle set avatar upload errors - Handle set avatar upload errors
- Support encrypted m.file - Support encrypted m.file
- Confirmation box after picking file to upload - Confirmation box after picking file to upload
@ -38,8 +41,15 @@
## Bug fixes ## Bug fixes
- two upload delegates height bug
- Leave box button focus
- Pause upload, switch to other room, then come back, wrong state displayed
- Adding an account with no rooms
- Join button 502
- Retry the initial profile retrieval if it fails (due to e.g. dead server) - Retry the initial profile retrieval if it fails (due to e.g. dead server)
- Pausing uploads doesn't work well with matrix.org
- Messed up message delegates position
- Pausing uploads doesn't work well, servers end up dropping the connection
- Quickly posting with another account leads to sync stop - Quickly posting with another account leads to sync stop
- CPU usage - CPU usage
- `code` not colored in room subtitle - `code` not colored in room subtitle
@ -64,6 +74,8 @@
## Interface ## Interface
- https://doc.qt.io/qt-5/qml-qtquick-smoothedanimation.html for progress bars
-
- Make all "Cancel" buttons able to cancel running Backend coroutines set - Make all "Cancel" buttons able to cancel running Backend coroutines set
`disabledWhileLoading` to `false` for all "OK" buttons where it makes sense `disabledWhileLoading` to `false` for all "OK" buttons where it makes sense
- Use a loader of the swipeview containing members, settings, etc views - Use a loader of the swipeview containing members, settings, etc views

View File

@ -459,6 +459,10 @@ class MatrixClient(nio.AsyncClient):
await self.first_sync_done.wait() await self.first_sync_done.wait()
while not self.past_tokens.get(room_id):
# If a new room was added, wait for onSyncResponse to set the token
await asyncio.sleep(0.1)
response = await self.room_messages( response = await self.room_messages(
room_id = room_id, room_id = room_id,
start = self.past_tokens[room_id], start = self.past_tokens[room_id],

View File

@ -272,6 +272,7 @@ class NioCallbacks:
if type_and_content is not None: if type_and_content is not None:
type_specifier, content = type_and_content type_specifier, content = type_and_content
await self.client.register_nio_event( await self.client.register_nio_event(
room, ev, content=content, type_specifier=type_specifier, room, ev, content=content, type_specifier=type_specifier,
) )