Ivan Enderlin
db6798321c
feat(sdk): SlidingSyncList::state_stream returns a tuple.
...
This patch updates `SlidingSyncList::state_stream` to return
a tuple `(SlidingSyncListLoadingState, impl Stream<Item =
SlidingSyncListLoadingState>)`.
2023-06-15 15:45:30 +02:00
Ivan Enderlin
f10f0d017d
feat(sdk): Rename SlidingSyncState to SlidingSyncListLoadingState.
...
This patch renames `SlidingSyncState` to `SlidingSyncListLoadingState`
because:
1. It's about a list information,
2. It's about the loading state, not a generic state.
2023-06-15 15:45:28 +02:00
Jonas Platte
52d2fa1a72
ffi: Clean up
2023-06-15 15:20:46 +02:00
Jonas Platte
12df1f38ed
ffi: Remove remaining callback interfaces from UDL
2023-06-15 15:20:46 +02:00
Jonas Platte
899c0d59e6
ffi: Remove sliding sync things from UDL
2023-06-15 15:20:46 +02:00
Jonas Platte
867b3665d2
ffi: Remove re-exports from timeline module
2023-06-15 15:20:46 +02:00
Jonas Platte
daf59356cb
ffi: Remove room list from UDL
2023-06-15 15:20:46 +02:00
Jonas Platte
53ae4362f6
ffi: Remove unused public Rust API
2023-06-15 15:20:46 +02:00
Jonas Platte
b789b9e063
ffi: Remove room / timeline things from UDL
2023-06-15 15:20:46 +02:00
Ivan Enderlin
59565657fa
feat(ffi): Implement RoomList::apply_input.
...
This patch implements `RoomList::apply_input`. Usage example:
```rust
room_list.apply_input(RoomListInput::Viewport { ranges: vec![RoomListRange { start: 10, end_inclusive: 20 }]}).await?;
```
2023-06-15 11:12:17 +02:00
Jonas Platte
78135fcce9
ffi: Add message_event_content_new
2023-06-15 10:44:40 +02:00
Jonas Platte
7feba6f814
ffi: Use Duration instead of u64
...
Resolves FIXME comment.
2023-06-15 10:44:40 +02:00
Ivan Enderlin
7756b6d725
feat(ui): Implement room subscriptions in RoomList + notification counts
...
feat(ui): Implement room subscriptions in `RoomList` + notification counts
2023-06-15 10:28:04 +02:00
Ivan Enderlin
6e1de8a5ee
fix(ffi): RoomListItem::full_room returns a Room with a Timeline.
2023-06-15 09:26:33 +02:00
Richard van der Hoff
6b45749e17
crypto-js: Add new methods to VerificationRequest ( #2068 )
...
A couple of useful methods for accessing things in `VerificationRequest`.
2023-06-14 15:46:36 +01:00
Ivan Enderlin
b9c27b5c63
feat(ui): Implement Room::*unread_notifications.
2023-06-14 12:15:16 +02:00
Ivan Enderlin
1bc455f75b
feat(ffi): Room:add_timeline_listener returns a …Result.
...
This patch updates `Room::add_timeline_listener` to return a `RoomTimelineListenerResult`, a new type defined as:
```rust
pub RoomTimelineListenerResult {
items: Vec<Arc<TimelineItem>>,
items_stream: TaskHandle,
}
```
It is not possible to cancel the `items_stream` by cancelling the
`TaskHandle`. Without this, dropping `Room` won't drop the `Timeline`,
as a clone is moved inside the spawned task. As a consequence, it will
endlessly call the listener.
2023-06-14 11:56:07 +02:00
Ivan Enderlin
97e4a5cab0
chore(ffi): Remove RoomListItem::timeline.
...
What the FFI user wants is to subscribe a listener to the
timeline updates. This feature is already supported by
`room_item.full_room().add_timeline_listener()`. So we can safely
remove `RoomListItem::timeline` as we are sure it's never going to be
used for now.
2023-06-14 11:13:06 +02:00
Ivan Enderlin
192b9ce808
feat(ui+ffi): Implement Room::id as a shortcut.
...
It's possible to do `room.inner_room().room_id()` but it's just simpler
to call `room.id()`. This patch adds this shortcut.
It's especially useful for FFI users, where creating a “full
room” (`room_item.full_room().room_id()`) may be expensive.
2023-06-14 10:59:03 +02:00
Ivan Enderlin
dba397d470
feat(ffi): Add RoomListItem::subscribe and ::unsubscribe.
2023-06-14 10:56:59 +02:00
Damir Jelić
f67c592259
Properly support the hkdf-hmac-sha256.v2 MAC method for the SAS verification ( #2064 )
2023-06-14 10:17:22 +02:00
Ivan Enderlin
0db5a6a25d
Merge branch 'main' into pr/2058
2023-06-14 09:55:31 +02:00
Ivan Enderlin
2c871807a3
feat(ui+ffi): Add various features to RoomList
...
feat(ui+ffi): Add various features to `RoomList`
2023-06-14 09:22:24 +02:00
Richard van der Hoff
f78a2951e4
more doc fixes
2023-06-13 22:10:48 +01:00
Richard van der Hoff
a8468cba59
crypto-js: improvements to the documentation
...
... mostly, writing down what things actually return.
2023-06-13 21:54:19 +01:00
Benjamin Bouvier
a79d519ff9
sliding sync: always fall back to the auto-discovered proxy URL, if any
...
Signed-off-by: Benjamin Bouvier <public@benj.me >
2023-06-13 19:33:30 +02:00
Jonas Platte
2c71556ef2
Upgrade opentelemetry dependencies
2023-06-13 11:08:45 +02:00
Jonas Platte
e78dbaf7c6
ffi: Don't require native-tls
2023-06-13 10:33:52 +02:00
Ivan Enderlin
370083ee03
feat(ui,ffi): Add getter for matrix_sdk(_ffi)::Room.
2023-06-13 01:24:43 +02:00
Ivan Enderlin
3547bd2f54
feat(ffi): Implement RoomList API
...
feat(ffi): Implement `RoomList` API
2023-06-13 01:23:24 +02:00
Ivan Enderlin
742ccea5ef
doc(ffi): Fix a typo.
2023-06-13 00:37:14 +02:00
Ivan Enderlin
235efaa85c
fix(ffi): Do not overwrite Client's sliding_sync_proxy everytime.
...
The comment explains the fix correctly.
2023-06-13 00:12:41 +02:00
Ivan Enderlin
b85dff347a
chore(ffi): Simplify code and remove one method.
2023-06-12 23:36:35 +02:00
Ivan Enderlin
dec1129106
chore(ffi): Remove Client::sliding_sync_proxy.
...
Instead of storing `sliding_sync_proxy` inside the `Client`, this patch
updates the code to store it inside `matrix_sdk::Client` directly.
That way, there is unique place where to store the sliding sync proxy
URL.
2023-06-12 23:29:23 +02:00
Ivan Enderlin
9bcc50fe2f
feat(sdk): Client::sliding_sync_proxy is a StdRwLock.
...
This patch changes `matrix_sdk::Client::sliding_sync_proxy` to be a
`std::sync::RwLock<Option<Url>>` instead of `tokio::sync::RwLock<_>`.
It means that all methods reading or writing this field are sync instead
of async, which makes the code a lot more easier. Having an async-aware
lock wasn't necessary here.
2023-06-12 23:15:03 +02:00
Ivan Enderlin
7636a069b7
fix(ffi): Rollback how Sliding Sync proxy URL is computed.
...
I guess I know what's happening but I rollback some previous commits to
be sure it comes back on track.
2023-06-12 17:07:59 +02:00
Ivan Enderlin
8f102af801
chore: Make Clippy happy.
2023-06-12 16:47:22 +02:00
Ivan Enderlin
38f8ebb6b9
feat(ffi): Add ability to force a Sliding Sync proxy URL from a restored session.
2023-06-12 16:47:22 +02:00
Jonas Platte
f883826db0
ffi: Add Room::cancel_send
2023-06-12 14:20:51 +02:00
Ivan Enderlin
790dc47fca
feat(ffi): Make RoomList.room non-async.
2023-06-12 12:41:12 +02:00
Ivan Enderlin
39a4d039dd
chore(ffi): Remove ability to use a custom sliding sync proxy URL.
2023-06-12 09:58:33 +02:00
Ivan Enderlin
2f433138dd
chore(ffi): Make Clippy happy.
2023-06-12 09:07:39 +02:00
Ivan Enderlin
6301f32ee5
chore(ffi): Rename RoomListRoom to RoomListItem.
2023-06-12 09:07:39 +02:00
Ivan Enderlin
7ae8ee14eb
feat(ffi): RoomListRoom::name and ::latest_event are non-async.
2023-06-12 09:07:39 +02:00
Ivan Enderlin
070965fc87
feat(ffi): Implement RoomList::rooms.
...
This patch implements `RoomList::rooms` to fetch one room. The type
name is `RoomListRoom` to avoid any collision with an existing `Room`
type already.
`RoomListRoom` implements `name`, `timeline` and `latest_event`.
2023-06-12 09:07:39 +02:00
Ivan Enderlin
e2480be47f
feat(ffi): Make RoomList::entries async.
...
Because we can!
2023-06-12 09:07:39 +02:00
Ivan Enderlin
cb51c766a8
feat(ffi): Rename “observer” to “listener”.
2023-06-12 09:07:39 +02:00
Ivan Enderlin
68c19f4129
feat(ffi): First step for RoomList in FFI bindings.
2023-06-12 09:07:39 +02:00
Ivan Enderlin
623332b931
feat(ffi): Extract TaskHandle into itw own module.
2023-06-12 09:07:39 +02:00
Mauro
6444848511
docs: updated readme - rust version ( #2047 )
...
* docs: update readme
* removing error
2023-06-09 13:16:09 +00:00