Jonas Platte
3ee06be87b
Rewrite MessageQueue deserialization to reduce allocations
2020-07-10 21:41:46 +02:00
Jonas Platte
3a07a17e9d
Remove unnecessary calls to clone()
2020-07-10 21:24: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
c0e6279837
matrix-sdk: Update request_builder to use new constructors
...
The create_room::Request and get_message_events::Request now have
constructors that we use in our builder structs.
2020-07-10 08:59:02 -04:00
Devin R
e7c70854ab
sdk_base: message events in message queue have content redacted
...
The MessageQueue holds MessageEventStub<AnyMessageEventContent> so when
a redaction event is encountered the redacted event's content can be
replaced. The Unsigned field redacted_because is also populated with the
redaction event itself with the addition of a room_id Stub -> full
event.
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ć
283cf0d782
matrix-sdk: Bump all our deps.
2020-07-07 15:52:08 +02: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
Damir Jelić
b8c4d1d5fa
matrix-sdk: Remove the last test_data folder and fix the remaining tests.
2020-06-24 10:07:03 +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
5bd3c49afc
Correctly handle disambiguation for exiting members, refactor and test.
2020-06-15 17:29:38 +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
Damir Jelić
311e41ee0d
matrix-sdk: Fix the author field in the cargo files.
2020-06-15 09:47:13 +02:00
Denis Kasak
97b1bb6004
Must not take our user into account when calculating room name.
2020-06-10 22:53:31 +02:00
Denis Kasak
331cb02266
Split joined/invited users and handle removing users.
2020-06-10 18:12:27 +02:00
Denis Kasak
7751605e37
Nix RoomMember::update_member and tracking membership.
...
After discussing with poljar, we concluded we don't actually need to
tracking membership state, since we won't be tracking users that
left (banned, kicked, disinvited).
The only thing we need to keep track of is the difference between joined
and invited users which will be dealt with in a separate commit.
2020-06-10 16:36:51 +02:00
Denis Kasak
a0eaa9c364
Implement RoomMember::unique_name.
...
This gives us a name that is as ergonomic as possible while guaranteeing
it is unique.
2020-06-10 14:44:41 +02:00
Denis Kasak
241d456a81
Add RoomMember::name.
...
Returns the most ergonomic name for the member (either the display name
(if set) or the MXID).
2020-06-10 14:39:12 +02:00
Denis Kasak
3e5b6bb460
Style fixes.
2020-06-10 12:04:58 +02:00
Denis Kasak
5868c72662
Small refactor so we don't duplicate user_id creation.
2020-06-10 12:01:01 +02:00
Denis Kasak
4c184a30a2
Add doc comment to RoomName::calculate_name.
2020-06-10 00:28:56 +02:00
Denis Kasak
e4977d1d2a
Refactor member_display_name.
...
Make it more readable, add comments.
2020-06-09 23:02:01 +02:00
Denis Kasak
ac069152b9
Retrieve user id from RoomMember instead of reconstructing.
2020-06-09 22:19:51 +02:00
Denis Kasak
82827542b7
fixup: explicit type annotations
2020-06-09 19:31:01 +02:00
Denis Kasak
20a8e8e49b
Fix comment styling.
2020-06-09 19:24:00 +02:00
Denis Kasak
098cc1f9f8
Add explicit type annotation.
2020-06-09 19:08:14 +02:00
Denis Kasak
a3c46c6144
Run cargo fmt.
2020-06-09 16:41:26 +02:00
Denis Kasak
b93eb0e318
Make Room::member_display_name return MXID as fallback.
...
If there is no display name set. This means the method can now always
return something so there is no need to wrap in an `Option`.
2020-06-09 16:16:21 +02:00
Denis Kasak
e6b67e5fa7
Add short explanation to Room::member_display_name.
2020-06-09 15:35:43 +02:00
Denis Kasak
22ba253103
Use "disambiguated" instead of "resolved" display name in the doc comment.
...
To match how the C2S spec calls it.
2020-06-09 15:29:37 +02:00