Commit graph

124 commits

Author SHA1 Message Date
Damir Jelić
6760f81498 matrix-sdk: Update Ruma. 2020-08-26 13:40:38 +02:00
Devin Ragotzy
2b389b920d matrix_sdk_base: Add test for update_member_power overflow 2020-08-23 20:57:59 -04:00
Devin Ragotzy
72614e4252 matrix_sdk_crypto: Appease clippy 2020-08-22 08:00:32 -04:00
Devin Ragotzy
8a71cec81a matrix_sdk_base: Member power level math from Int -> i64 2020-08-22 07:52:12 -04:00
Damir Jelić
9fe23227af base: Fix the encryption settings Into implementation. 2020-08-21 12:44:14 +02:00
Jonas Platte
5040be042f
Update ruma 2020-08-15 15:17:27 +02:00
Damir Jelić
344631b4ee crypto: Respect the encryption settings of a room when creating sessions. 2020-08-13 14:41:59 +02:00
Damir Jelić
d4de877e09 base: Fix the docs for our feature flags. 2020-08-13 12:17:30 +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
c10120602a Add test actually testing a correct message edit event 2020-08-04 17:22:54 -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
Devin Ragotzy
79e661d1d9 sdk-base: Remove MessageWrapper and do not order messages in queue 2020-07-31 09:16:41 -04:00
Damir Jelić
3472614649 Merge branch 'remove-possibly-redacted-type-alias' into master 2020-07-31 15:13:23 +02:00
Denis Kasak
2ce0765206 Remove confusing type alias for AnyPossiblyRedactedSyncMessageEvent.
There's already a SyncMessageEvent in Ruma which is something else.
Let's prefer the full, unambiguous type.
2020-07-31 14:36:58 +02:00
Denis Kasak
e00e94c6c3 Fix input order. 2020-07-31 11:46:52 +02:00
Denis Kasak
359c5280d7 Expose sender in PossiblyRedactedExt.
Also add a few missing apostrophes.
2020-07-30 14:40:27 +02:00
Jonas Platte
6a96368048
Upgrade ruma 2020-07-26 16:58:27 +02:00
Jonas Platte
bf54b17a2f
Upgrade ruma 2020-07-22 22:31:42 +02:00
Devin R
e4f94cbfec Remove FullOrRedacted use ruma::AnyPossiblyRedacted event enum 2020-07-18 08:52:51 -04: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
Damir Jelić
a2a87b9fff matrix-sdk: Fix a bunch of clippy warnings. 2020-07-15 15:53:17 +02:00
Damir Jelić
fa0a22b090 Merge branch 'dkasak-master'
High-level summary of changes:

- Rewrite the disambiguation algorithm to simplify it.
- Fixes to state tracking, e.g. use `state_key` instead of `user_id` when
  determining which member an event is acting on.
- Changes to `RoomMember`:
  * Make `RoomMember` "dumber" and don't let it mutate itself. This came about
    primarily because `update_profile` cannot live on `RoomMember` because it
    needs some information from `Room`. The other few mutating methods then
    looked odd so it seemed best to move them to `Room` so that the room takes
    care of updating its members.
  * Each `RoomMember` now contains all information to calculate its set of
    names:
      + `.name()` (short/ergonomic but potentially ambiguous),
      + `.unique_name()` (unique but may be contain MXID when not necessary),
      + `.disambiguated_name()` (shortest possible while being unique).
- Add some logging using the `tracing` crate.
- Improvements to `EventBuilder`:
  * Add a docstring.
  * Make it clear itself when building a sync response so the same builder can
    be reused for later sync responses.
- A few tests.
2020-07-15 12:52:25 +02:00
Denis Kasak
bce7fe0217 Equivalence class -> equivalence set. 2020-07-15 11:58:52 +02:00
Denis Kasak
1fd21ee206 Fix docstrings regarding return value related to disambiguation. 2020-07-15 11:54:30 +02:00
Denis Kasak
8a4a4140b3 Remove stale comment. 2020-07-15 11:22:47 +02:00
Denis Kasak
62943f055d Rewrap docstrings and comments to 80 chars. 2020-07-15 11:21:01 +02:00
Denis Kasak
ea149ebd8e Update docstring for disambiguation_updates. 2020-07-15 11:16:13 +02:00
Denis Kasak
9e48b7172b cargo fmt 2020-07-14 12:38:55 +02:00
Damir Jelić
a38efc0f29 room: Fix a clippy warning, use unwrap_or_else for the member counts. 2020-07-14 10:56:06 +02: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
85522ac35a
Slightly simplify RoomName::calculate_name 2020-07-11 21:14:32 +02:00
Jonas Platte
9b5f95672b
Use js_int macros to improve readability 2020-07-11 21:06:21 +02:00
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
Denis Kasak
05a41d3b4d Move and rename member_display_name to RoomMember::disambiguated_name.
This makes more sense as all the required information is now available
on `RoomMember`. We also don't have to handle the case of the missing
member since now you have to actually get a `RoomMember` before you can
ask for their name.
2020-07-10 15:47:11 +02:00
Denis Kasak
4134ba969a DRY the membership logging a bit. 2020-07-10 15:11:03 +02:00
Denis Kasak
a8f24da3ba cargo fmt 2020-07-10 15:11:03 +02:00
Denis Kasak
390a1aa12c Clarify member_display_name docstring. 2020-07-10 15:11:03 +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
ec81a5e539 Implement Room::member_is_tracked. 2020-07-10 15:11:03 +02:00
Denis Kasak
949305da72 Clarify comment. 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
Denis Kasak
24d2aa8078 Style (cargo fmt, reordering import). 2020-07-10 15:07:21 +02:00
Denis Kasak
e70929317a Revert "add_member provably always returns true."
This reverts commit 7943baee49.
2020-07-10 15:07:17 +02:00
Devin R
62eeb3707f Fix wasm test failure gate unknown import 2020-07-10 08:59:02 -04:00