Commit Graph

542 Commits (03e53e991b9ca44087486aab663cc640fe147e7d)

Author SHA1 Message Date
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 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
Denis Kasak a9fd63fd4b Fix display name disambiguation so it passes the test. 2020-06-09 15:20:21 +02:00
Denis Kasak 60a43439e5 Properly test for display name disambiguation. 2020-06-09 15:20:21 +02:00
Denis Kasak b6d7939685 matrix-sdk: Vary sync token with each EventBuilder::build_sync_response call.
This allows us to hold onto an EventBuilder object and use it to build
multiple sync responses. Previously this would have resulted in each
of the responses having the same next_batch sync token. This would make
clients ignore the latter responses if they have already received any of
the previous ones.
2020-06-09 15:20:21 +02:00
Denis Kasak 4df0a839aa Fix Markdown in doc comment. 2020-06-09 15:20:21 +02:00
Denis Kasak e3cb3566bf Rename display_names -> disambiguated_display_names. 2020-06-09 15:20:21 +02:00
Valentin Brandl 9f34615869 Add first test for display names 2020-06-09 12:33:24 +02:00
Valentin Brandl 05503b28b7 Only add name duplicates to the display name map 2020-06-09 12:33:24 +02:00
Valentin Brandl 49e913865d Fix failing test 2020-06-09 12:33:06 +02:00
Valentin Brandl 4675a72e6b Rename accessor for display name 2020-06-09 12:30:12 +02:00
Valentin Brandl d5f66631c1 Implement display name resolving 2020-06-09 12:30:12 +02:00
Damir Jelić 6e5870bd2b crypto: Simplify the max keys calculation for one-time key uploads. 2020-06-04 17:36:33 +02:00
Damir Jelić 62e959a94d Merge branch 'expose-send' 2020-06-02 11:20:47 +02:00
Damir Jelić 54871f2af9 matrix-sdk: Make the example for the send method comiple. 2020-06-02 11:15:04 +02:00
Marcel 6a323525b5 Add example to the Client::send() doccomment 2020-06-02 10:40:50 +02:00
Marcel 1d00f79675 Run cargo fmt for the get_profiles example 2020-06-02 10:40:32 +02:00
Marcel 7201749280 Add small example on how to use Client::send 2020-06-02 10:39:50 +02:00
Damir Jelić 5175cd8ddb crypto: Remove some unnecessary mem::replace calls. 2020-06-02 10:36:51 +02:00
Damir Jelić 21b33f4e61 Merge branch 'doc-fix' 2020-06-02 10:31:09 +02:00
Damir Jelić 9f34b371be Merge branch 'unify-ee-methods' 2020-06-02 10:30:20 +02:00
Damir Jelić 587614cdd7 Merge branch 'unrecognized' 2020-06-02 10:28:57 +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 761071dac5 base_client: fix doc grammer and consistency, group request methods together 2020-06-01 07:50:45 -04:00
Devin R 8f017e7b27 event-emitter: rename on_account_data_* -> on_non_room_* 2020-06-01 07:13:57 -04:00
Devin R b1864887aa matrix-sdk: enable messages feature by default 2020-06-01 06:45:38 -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ć 8ee6c3bdc8 matrix-sdk: Don't require Send for the sync callback. 2020-05-29 09:39:17 +02:00
Damir Jelić 16f4021800 common: Depend on the git version of futures-locks again. 2020-05-26 22:21:03 +02:00
Damir Jelić fd3dc50ebe test: Add a copy of the test data to the test crate. 2020-05-26 21:30:15 +02:00
Damir Jelić 5ff7658f30 matrix-sdk-test: Specify a version for the test macros. 2020-05-26 19:59:40 +02:00
Damir Jelić efc80449c4 matrix-sdk-common: Depend on a version of futures-locks. 2020-05-26 19:33:36 +02:00
Damir Jelić 5637cdd133 matrix-sdk: Add a bunch of readmes to the crates. 2020-05-26 19:33:13 +02:00
Damir Jelić 6c3863f096 base: Don't unwrap when creating the olm machine. 2020-05-25 14:58:06 +02:00