Damir Jelić
7ee0430054
base: Add methods to fetch user devices.
2020-08-12 17:17:22 +02:00
Damir Jelić
0dc232b268
base: Fix a clippy warning.
2020-08-12 15:39:38 +02:00
Damir Jelić
407f9a3da8
matrix-sdk: Make sure to not send out multiple group share requests at once.
2020-08-12 15:12:51 +02:00
Damir Jelić
7cb25361b2
matrix-sdk: Expose an API to start SAS verifications.
2020-08-12 11:39:47 +02:00
Damir Jelić
7637e79f2c
matrix-sdk: Fix the tarpaulin skip directives.
2020-08-11 15:49:04 +02:00
Damir Jelić
528483ef0e
crypto: Remove the last mutable self borrows in the Olm machine methods.
2020-08-11 12:22:14 +02:00
Damir Jelić
6f4d2022fd
Merge branch 'master' into sas-timeout
2020-08-10 15:00:08 +02:00
Damir Jelić
ef5201cf35
Merge branch 'up-ruma' into master
2020-08-10 14:58:47 +02:00
Damir Jelić
7bcdc2a3b6
Merge branch 'master' into sas-timeout
2020-08-10 14:57:32 +02:00
Matthew Hodgson
9c4229dc57
typoes
2020-08-10 13:15:58 +01:00
Damir Jelić
d5cd608045
base: Remove some unnecessary mutable borrows of the olm machine.
2020-08-10 14:11:55 +02:00
Jonas Platte
d83fc971ce
Update ruma
2020-08-10 13:58:39 +02:00
Jonas Platte
d016ce1848
Use identifier macros in tests
2020-08-06 13:03:32 +02:00
Devin Ragotzy
ffdb9c4a79
Fix failing wasm test and clippy warnings for wasm
2020-08-04 17:39:25 -04:00
Devin Ragotzy
cb8d5ce8fb
Rename CustomOrRawEvent -> CustomEvent and use raw json when failed
...
When deserialization fails we fallback to providing the user with a
serde_json::RawValue, basically the json string. Ruma should handle all
events that conform to a matrix event shape correctly by either
converting them to their type or returning a custom event.
2020-08-04 17:27:57 -04:00
Devin Ragotzy
47690bd268
Bump ruma and fix failing unrecognized_event test
...
The test was broken because the JSON being fed into it was bad.
2020-08-04 17:22:54 -04:00
Damir Jelić
2bf8c99dfe
Merge branch 'master' into sas-verification
2020-08-04 11:23:24 +02:00
Devin Ragotzy
33e1601004
matrix_sdk: Fix import error
2020-08-03 20:13:58 -04:00
Devin Ragotzy
0ac2b84c02
Unify import style across workspace
2020-08-02 08:05:43 -04:00
Devin Ragotzy
ed1f12ce37
Run cargo fmt with merge-imports true
2020-08-02 07:46:02 -04:00
Damir Jelić
3f83941d57
Merge branch 'master' into sas-verification
2020-07-31 16:27:52 +02:00
Devin Ragotzy
79e661d1d9
sdk-base: Remove MessageWrapper and do not order messages in queue
2020-07-31 09:16:41 -04:00
Damir Jelić
a07767d417
base: Hide the SAS getting method behind the encryption feature.
2020-07-30 11:50:42 +02:00
Damir Jelić
9facd86d81
base: Expose the verification methods in the base client.
2020-07-28 16:44:06 +02:00
Damir Jelić
7e95d85f17
crypto: Move the cryptostore behind a lock.
2020-07-28 15:03:44 +02:00
Jonas Platte
6a96368048
Upgrade ruma
2020-07-26 16:58:27 +02:00
Jonas Platte
d4fe2fe0a2
Remove redundant braces
2020-07-25 02:32:50 +02:00
Jonas Platte
14db34beee
Use Option::and_then over manual match
2020-07-25 02:32:18 +02:00
Jonas Platte
bf54b17a2f
Upgrade ruma
2020-07-22 22:31:42 +02:00
Devin R
71f2a042c2
Rename Stub -> Sync for all ruma events
2020-07-18 08:37:43 -04:00
Devin R
2e8fc3e232
matrix-sdk-base: Integrate redacted events into message queue
...
Redact message events according to spec and ruma types. Remove content
using events redact() method and insert the redacting event into the
event being redacted.
2020-07-17 13:41:55 -04:00
Denis Kasak
048a2000e7
Merge
2020-07-13 17:10:13 +02:00
Jonas Platte
eea00301ff
Remove immediately-deref'ed double references
2020-07-11 21:20:02 +02:00
Jonas Platte
ffc5204109
Fix two pattern matching related warnings
2020-07-11 20:57:01 +02:00
Denis Kasak
b16724841d
Correct state tracking of room members.
...
- use `state_key` instead of `user_id` to determine which member is
affected by the event
- assign state directly from the event in `add_member` instead of using
`membership_change`
- expand/fix docstrings
- add some logging
2020-07-10 15:11:03 +02:00
Denis Kasak
559306a33c
Rewrite disambiguation algorithm to handle profile changes.
...
The new algorithm is simpler. Instead of tracking a list of
disambiguated display names in `Room`, we instead track the display name
ambiguity status in `RoomMember`. This allows a client to generate the
correct name for a member using solely the information available in
`RoomMember`.
The disambiguation algorithm itself now only calculates the set of members
whose ambiguity status had changed instead of producing disambiguated
display names for everyone affected. This is called on each room entry
(join or invite), room entry and profile change, and the updates are
propagated to the affected `RoomMember`s.
2020-07-10 15:11:01 +02:00
Devin R
62eeb3707f
Fix wasm test failure gate unknown import
2020-07-10 08:59:02 -04:00
Devin R
3fa06eeb99
matrix-sdk-base: Add test for MessageQueue/JsonStore interaction
...
Ruma can't currently handle an event with the wrong event content type.
When replacing the MessageEventStub's content it automatically
serializes as "m.room.redaction".
2020-07-10 08:59:02 -04:00
Devin R
dcc3d6e755
sdk_base: Remove room_id as argument from all Room methods
...
Remove room_id paramater from some client methods. Make CreationContent
two methods of RoomBuilder. Add docs for MessageWrapper.
2020-07-10 08:59:02 -04:00
Devin R
2338d3e8fd
matrix-sdk-base: clean up recv/iter joined post rebase
...
The types for account data in a sync response have changed, no longer
Option. Re word comment in hoist prev_content test.
2020-07-10 08:59:02 -04:00
Devin R
b83b9dc59d
matrix-sdk-base: Use new accessor methods for models/message.rs
...
ruma now has field access methods for all of the Any*Event enums use
them for MessageWrapper's AnyMessageEventStub contents.
2020-07-10 08:59:02 -04:00
Devin R
68822861d5
Rebase upstream/master into ruma-mono branch
2020-07-10 08:59:02 -04:00
Devin R
b1e7bc77a4
Use ruma/ruma master, address review issues
2020-07-10 08:59:02 -04:00
Devin R
eb5949dbc2
Move matrix-sdk to ruma monorepo
2020-07-10 08:59:00 -04:00
Damir Jelić
98d36d0ef0
base: Only update the tracked users when we're done with the state and timeline.
2020-07-07 15:48:28 +02:00
Damir Jelić
11aa306de2
base: Swap around the store creation.
...
The state store creates directory structure but the crypto store does
not.
This can lead to confusing errors where we require a directory to be
created by the library user but it gets created by the library.
2020-07-06 10:54:01 +02:00
Damir Jelić
bd56c52b37
base: Don't double borrow the response in one iter rooms method.
2020-07-03 12:30:57 +02:00
Denis Kasak
1f25c4cf4b
Fix and test hoisting of prev_content
for timeline events.
...
The previous test only tested using the `EventEmitter`, which missed the
fact that the client was receiving unhoisted events. The test now also
tests the client state to detect this.
2020-07-03 11:54:08 +02:00
Denis Kasak
3f1a40a7d1
Add a bunch of FIXMEs to have receive_* methods do the emitting.
2020-07-03 10:31:47 +02:00
Damir Jelić
b092ed0a82
base: Put the decrypted event replacing in the correct place.
2020-07-02 23:16:56 +02:00
Damir Jelić
676d547161
matrix-sdk: Disable the tarpaulin skip lines since it fails to run with them.
2020-06-24 11:25:31 +02:00
Damir Jelić
6a670163d3
Merge branch 'feature/display-name'
2020-06-24 10:42:58 +02:00
Devin R
8e8ac8c5ac
matrix_sdk_base: Use test_json values for tests in base
2020-06-21 14:22:28 -04:00
Devin R
4a7b3a103c
matrix_sdk_test: Use static JSON values instead of reading files
2020-06-21 14:13:26 -04:00
Denis Kasak
c0c02baffc
Run cargo fmt and apply clippy lints.
2020-06-20 13:05:16 +02:00
Denis Kasak
1174ccfc89
Merge branch 'master' into feature/display-name
2020-06-20 12:54:46 +02:00
Denis Kasak
733689870e
Fix compilation error and remaining test.
...
Ref. for compilation error:
https://github.com/rust-lang/rust/issues/64552
2020-06-20 12:51:02 +02:00
Marcel
d4087a1aae
Fix cargo fmt issues that the local version didn't auto fix
2020-06-17 19:16:04 +02:00
Marcel
8b77b4171a
Do wasm sepcific changes:
...
- Only use send+sync when not using wasm
- Use wasm capabale async_trait wrapper macro
- Make room and room_member specific structs always clonable
2020-06-17 18:57:39 +02:00
Denis Kasak
765487dd9f
Fix comment style.
2020-06-15 17:29:38 +02:00
Denis Kasak
03e53e991b
Hoist prev_content to top-level in both timeline and state events.
...
Also refactor and document why this hoisting is needed.
This change makes the user_presence test fail because the hoisting
exposes an error encoded into the test's expected result.
Previously, the test expected 2 members in the room at the end. This is
incorrect since one of the members in the test data leaves the room.
However, since the prev_content of state events was previously not
hoisted to the top level, the `membership_change` method would not
notice it and thus not realize the member had left the room. The test
was corrected to expect only a single member in the room.
Another test change was made due to a limitation of EventBuilder: due to
the fact that it makes the test data go through a de/ser cycle, it
cannot easily hoist prev_content to the top level. Because of this, the
tests were change to put prev_content into the top level from the
outset.
2020-06-15 17:21:26 +02:00
Denis Kasak
331cb02266
Split joined/invited users and handle removing users.
2020-06-10 18:12:27 +02:00
Devin R
81baca2f92
base_client: emit typing events and test using EventEmitter
2020-06-06 17:00:29 -04:00
Damir Jelić
9f34b371be
Merge branch 'unify-ee-methods'
2020-06-02 10:30:20 +02:00
Devin R
db38bf1276
event_emitter: use enum to represent custom events and raw json
2020-06-01 17:02:12 -04:00
Devin R
8f017e7b27
event-emitter: rename on_account_data_* -> on_non_room_*
2020-06-01 07:13:57 -04:00
Devin R
9cb86596d8
add support for custom events and unrecognized by ruma events, test new code
2020-05-29 17:36:58 -04:00
Damir Jelić
6c3863f096
base: Don't unwrap when creating the olm machine.
2020-05-25 14:58:06 +02:00
Damir Jelić
3b5c9d3c75
Merge branch 'prev-content'
2020-05-25 14:31:19 +02:00
Damir Jelić
ba66ee214f
matrix-sdk: Move most of the configuration to the base client.
2020-05-25 14:21:04 +02:00
Devin R
ac4698f0d6
base_client: only swap prev_content if outer is None
2020-05-22 21:29:51 -04:00
Devin R
86a01a0ca6
Merge branch 'master' into prev-content
2020-05-22 17:20:06 -04:00
Devin R
2f6bebdd1a
base_client: replace event if prev_content deserialized from unsigned
2020-05-22 17:12:58 -04:00
Damir Jelić
ea5f7f1d19
matrix-sdk: Don't require the the session at client creation time.
...
The client objects in the sdk accepted an optional session argument at
creation time. If provided this would restore the client into a logged
in state.
Since we need to restore the client state and encryption state at some
point it makes sense to do it when the client transitions into a logged
in state. At the same time we would like to avoid the client creation to
be async.
This introduces a restore_login() method which can be called instead of
the login() method to restore a session.
2020-05-22 15:23:58 +02:00
Damir Jelić
6e83f7ffa1
base: Rename the method to remove room state.
2020-05-22 09:56:11 +02:00
Devin R
5c7ea17eef
state_store: only remove room state file don't bother moving the file
2020-05-21 18:38:25 -04:00
Devin R
eedf4e72d1
base_client: if unsigned field contains prev_content pull out and add to MemberEvent
2020-05-21 10:16:04 -04:00
Devin R
0f6caec93d
state_store: move room file when room state changes, test room_state_change method, doc edits
2020-05-18 16:26:27 -04:00
Damir Jelić
8c6c34e01a
matrix-sdk: Don't require coverage for some debug implementations.
2020-05-14 15:26:22 +02:00
Damir Jelić
9884c0bb7a
base: The session sharing test only works if encryption is enabled.
2020-05-14 14:01:16 +02:00
Damir Jelić
c0ff782ea3
base: Remove an aditional looping through the joined state events.
2020-05-14 13:01:41 +02:00
Damir Jelić
c9d38cdedb
base: Expire group sessions if the member list changes.
2020-05-14 13:01:41 +02:00
Damir Jelić
ecbd801c70
crypto: Invalidate group sessions if they fail to be shared.
2020-05-14 11:55:12 +02:00
Damir Jelić
77a8f1b1bc
base: Test the invited room creation.
2020-05-14 10:57:21 +02:00
Damir Jelić
fff3abf985
bae: More room creation tests.
2020-05-13 16:25:42 +02:00
Damir Jelić
e32af74be5
base: Add some initial test for room creation.
2020-05-13 15:57:09 +02:00
Damir Jelić
51f0a487ce
base: Remove the stale rooms from the hashmaps.
2020-05-13 13:23:16 +02:00
Damir Jelić
dc56063c67
base: Move the user tracking logic to the correct place.
2020-05-13 13:10:21 +02:00
Damir Jelić
a8f94e2329
base: Add some missing debug implementations and add more strict lints.
2020-05-13 12:34:46 +02:00
Damir Jelić
8a401d23e2
base: Always store the new sync token, even if nothing changed in the rooms.
2020-05-13 12:27:16 +02:00
Damir Jelić
993dc8264a
base: Return early if we get a duplicate sync response.
2020-05-13 12:26:07 +02:00
Damir Jelić
f1d12ff1f3
matrix-sdk: Remove all mentions of the AsyncClient.
2020-05-13 10:06:08 +02:00
Devin R
21bf631f47
Merge branch 'master' into store-room
2020-05-12 18:08:51 -04:00
stoically
ef6104bc53
matrix-sdk: Support compiling to wasm32-unknown-unknown
2020-05-12 15:48:09 +02:00
Devin R
21712d0930
state_store: load/store each room type (invite, join, left), add type for returning 3 room maps
2020-05-11 15:54:11 -04:00
Devin R
22c4a1f2e7
Merge branch 'master' of https://github.com/matrix-org/matrix-rust-sdk into store-room
2020-05-11 14:17:31 -04:00
Devin R
0d0d8fca2d
client: add store_room_state method
2020-05-11 07:04:47 -04:00
Damir Jelić
b6c0d4e3bb
base: Rename the Client to BaseClient.
2020-05-11 10:43:21 +02:00
Damir Jelić
8a7aefac3b
matrix-sdk: Split out the error types in our base and matrix-sdk crates.
2020-05-08 12:39:36 +02:00
Damir Jelić
9461f08906
base: Rename the base client file.
2020-05-08 11:49:25 +02:00