Commit graph

181 commits

Author SHA1 Message Date
Damir Jelić
d07063af2b base: Add some error handling to the state store 2021-01-18 18:07:53 +01:00
Damir Jelić
1746690eda crypto: Add a sled cryptostore 2021-01-18 13:38:00 +01:00
Damir Jelić
bab8fde0ac crypto: Change the way we share group sessions
This patch removes the need to ask if a group session needs to be shared
it also adapts the method so it re-shares sessions if new users or
devices join the group.
2021-01-15 18:04:45 +01:00
Damir Jelić
508bf3b23d base: Include the to-device events when returning the sync response 2021-01-14 13:35:21 +01:00
Damir Jelić
e7e1d2d3eb base: Add more accessors for the room info. 2021-01-04 10:03:16 +01:00
Damir Jelić
0952205e1e base: Restore rooms and the sync token when we restore the login. 2021-01-01 14:56:06 +01:00
Damir Jelić
4d7da05b90 base: Store the sync token. 2021-01-01 14:54:52 +01:00
Damir Jelić
d121a856c4 base: Remember the direct target for rooms. 2021-01-01 14:31:50 +01:00
Damir Jelić
a29d2e39c4 base: Save profiles independently from membership events.
The sender controls the content of the membership event, since the
content contains profile data (display names, avatar urls) a sender
might incorrectly change the profile of another member inside the room.

This is allowed in the case where the sender is kicking or inviting the
member, this it will self heal once the member re-joins. Still, to
mitigate this a bit we're storing the profile data when we know that the
member sent out the content on their own.
2020-12-24 16:35:32 +01:00
Damir Jelić
1313c3da3c client: Restore the membership based get room methods. 2020-12-22 10:47:21 +01:00
Damir Jelić
c5709d23a5 base: Implement the last missing thing to get the emitter working again. 2020-12-22 10:09:59 +01:00
Damir Jelić
e25441babc base: Create a store wrapp and move store methods under it. 2020-12-20 16:27:29 +01:00
Damir Jelić
a370eb1e37 base: Re-introduce the event emitter. 2020-12-19 20:20:39 +01:00
Damir Jelić
f9af880176 base: Upcast the bare rooms based on the membership state 2020-12-19 16:37:35 +01:00
Damir Jelić
7abf0c8805 store: Honor state keys for the state storage. 2020-12-19 14:44:46 +01:00
Damir Jelić
b05fed5a3b matrix-sdk: Fix our tests now that the state store is roughly done. 2020-12-15 10:23:31 +01:00
Damir Jelić
45db95742a base: Add a common room info struct for normal and stripped rooms. 2020-12-14 14:53:50 +01:00
Damir Jelić
3a76cf7692 base: Restore getting the user ids when receiving a sync. 2020-12-14 13:48:29 +01:00
Damir Jelić
05b1384d16 base: Upcast member events so the state key is an user id. 2020-12-12 21:44:53 +01:00
Damir Jelić
e245599913 base: Save the stripped state of invited rooms. 2020-12-11 21:17:27 +01:00
Damir Jelić
6f35a05311 matrix-sdk: Allow users to get a reference to the store. 2020-12-11 09:52:39 +01:00
Damir Jelić
a4e7dc1042 base: Correctly store the state events of rooms. 2020-12-10 10:01:53 +01:00
Damir Jelić
ae33904a93 base: Rename some structs. 2020-12-09 20:22:11 +01:00
Damir Jelić
a08f857e49 base: Split out the new room and member structs from the state store 2020-12-09 18:12:51 +01:00
Damir Jelić
5c608ed474 base: Store main account data. 2020-12-07 16:35:00 +01:00
Damir Jelić
e38f0762ee base: Store the notification counts. 2020-12-07 15:11:18 +01:00
Damir Jelić
ab832da03e base: Deserialize ephemeral events. 2020-12-07 14:34:18 +01:00
Damir Jelić
de61798d78 base: Store room account data. 2020-12-07 14:17:18 +01:00
Damir Jelić
8a842ec0a5 base: Log deserialization errors for decrypted events. 2020-12-04 15:13:37 +01:00
Damir Jelić
27b5bf3ddd base: Add initial left rooms handling. 2020-12-01 10:23:28 +01:00
Damir Jelić
0e563a9a81 base: Refactor out the room state/timeline handling. 2020-11-30 17:25:29 +01:00
Damir Jelić
7dd834a214 base: Add some more sync response fields. 2020-11-30 15:50:47 +01:00
Damir Jelić
38048a2043 base: Add presence storing. 2020-11-30 14:42:08 +01:00
Damir Jelić
ac2d90e92a client: Apply room changes when fetching members. 2020-11-30 09:19:11 +01:00
Damir Jelić
de5f5cf00a base: A better log message for unhandled member events. 2020-11-24 10:58:33 +01:00
Damir Jelić
e84d3b9950 base: Track new users we get from the room/members call. 2020-11-23 17:19:55 +01:00
Damir Jelić
c1383402ed matrix-sdk: Initial support to upload filters. 2020-11-22 21:25:31 +01:00
Damir Jelić
a98f23e2a7 base: Add a deserialized SyncResponse type. 2020-11-21 22:48:27 +01:00
Damir Jelić
9edf8657d0 base: WIP lazy loading support. 2020-11-20 20:17:59 +01:00
Damir Jelić
3da1d3cf8f store: Use streams so we don't load all members at once. 2020-11-16 18:11:12 +01:00
Damir Jelić
8ed8929788 base: Fix the storing of invited and joined user ids. 2020-11-12 12:59:43 +01:00
Damir Jelić
133b230964 base: Change the way we're saving our room summary updates. 2020-11-12 11:21:37 +01:00
Damir Jelić
3a1eeb6a16 Merge branch 'crypto-improvements' into new-state-store 2020-11-11 14:43:49 +01:00
Damir Jelić
3f57ba57d0 base: WIP start to split out the steps collect changes, save changes,
apply changes.
2020-11-11 14:37:04 +01:00
Damir Jelić
dc57873687 base: WIP more work on the new state store. 2020-10-25 21:03:03 +01:00
Damir Jelić
c1e679147d base: First working version of the new state store. 2020-10-24 20:01:39 +02:00
Damir Jelić
9ce7feea1a base: Wip. 2020-10-23 09:39:08 +02:00
Damir Jelić
bdf32eecc7 base: More work on the new state store. 2020-10-22 09:46:12 +02:00
Damir Jelić
045ab25fb7 base: Add initial state store based on sled. 2020-10-20 17:36:21 +02:00
Damir Jelić
cd3d90df3f base: Remove a bunch of stuff and add sled. 2020-10-20 17:36:21 +02:00