Ivan Enderlin
67ef42f4c5
feat(ui): Implement RoomList::room.
...
This patch implements `RoomList::room`, which returns a `Result<Room>`:
the room ay or may not exist.
A new `Room` type is created. It wraps an `Arc<RoomInner>` type, so that
it's cheap to clone it.
The `RoomInner` type owns a `SlidingSyncRoom` and
`matrix_sdk::room::Room` type. If some API or data are missing on
the former, the latter acts as a backup. This is the case for the
`Room::name` method which makes it best to return a name to the caller.
2023-06-02 21:28:45 +02:00
Ivan Enderlin
537f95b683
feat(sdk): SlidingSync::get_rooms? are now async.
2023-06-02 20:59:26 +02:00
Ivan Enderlin
dcad897084
test(ui): Ensure the timeline_limit is not reset.
2023-06-02 20:49:33 +02:00
Ivan Enderlin
c6dae678bd
sliding sync: move the bump_event_types to be per-list
...
sliding sync: move the `bump_event_types` to be per-list
2023-06-02 20:29:10 +02:00
Ivan Enderlin
e18728aa5f
feat(ui): Set timeline_limit for all_rooms and visible_rooms.
2023-06-02 20:06:50 +02:00
Ivan Enderlin
8ee84be839
doc(ui): Write documentation for RoomList.
2023-06-02 20:06:31 +02:00
Kévin Commaille
588b58c616
crypto: Remove unnecessary to_owned
...
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr >
2023-06-02 12:22:26 +02:00
Kévin Commaille
3ab171ca2d
chore: Update log dependency
...
Fixes compilation of value-bag crate with Rust nightly
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr >
2023-06-02 12:22:26 +02:00
Benjamin Bouvier
28c8e5df71
feat(sdk): move bump_event_types to the list sub-request
...
Signed-off-by: Benjamin Bouvier <public@benj.me >
2023-06-01 18:57:45 +02:00
Benjamin Bouvier
6a58be38ca
Temporarily use bnjbvr's repository for bump-event-types change in ruma
...
Signed-off-by: Benjamin Bouvier <public@benj.me >
2023-06-01 18:51:53 +02:00
Ivan Enderlin
2f68c86796
feat(ui): Add the RoomList Input API.
...
This patch lands the first design of the `Input` API. An `Input` is
something external that can be understood by the `RoomList` state
machine. The first inpuput is `Viewport` to change the “viewport” of the
`RoomList`, which translates to the change of the ranges of one specific
Sliding Sync list.
2023-06-01 16:55:29 +02:00
Ivan Enderlin
13d38993f8
feat(sdk): Expose the Range and Ranges type in matrix_sdk::sliding_sync.
2023-06-01 16:52:16 +02:00
Ivan Enderlin
e2d2cf787d
test(sdk): Fix according to previous commits.
2023-06-01 16:52:09 +02:00
Ivan Enderlin
f5c950c54a
fix(ffi): Update according to last commits.
2023-06-01 15:58:58 +02:00
Ivan Enderlin
c2d082ca8d
test(ui): Update the tests according to previous commits.
2023-06-01 15:58:12 +02:00
Ivan Enderlin
553b5c6db3
Merge pull request #1 from matrix-org/feat-ui-roomlist
...
Feat UI roomlist
2023-06-01 15:46:00 +02:00
Jonas Platte
5106255911
On-demand stream creation
2023-06-01 15:40:39 +02:00
Jonas Platte
58e8c0a7ac
Fix warning
2023-06-01 15:34:13 +02:00
Jonas Platte
db0217d093
Box internally
2023-06-01 15:34:07 +02:00
Ivan Enderlin
048b054a65
feat(ui): Implement RoomList::update_entries_stream_filter.
...
This patch implements `RoomList::update_entries_stream_filter` which
allows to… change the… entries stream filter. This patch also provides a
test for that. How nice it is.
2023-06-01 14:55:53 +02:00
Ivan Enderlin
0a1c0547b4
test(ui): Add test to ensure RoomList::sync resumes from current state.
2023-06-01 14:18:47 +02:00
Ivan Enderlin
fbe1603190
feat(ui): Rethink the state machine of RoomList.
2023-06-01 14:06:02 +02:00
Damir Jelić
d6d19d9111
Don't re-encode the plaintext after decrypting a backup
matrix-sdk-crypto-ffi-0.3.9
2023-06-01 12:56:18 +02:00
Jonas Platte
3e2bc3a514
Drop matrix-sdk-sled
2023-06-01 12:06:35 +02:00
Kévin Commaille
7cd8898f5f
indexeddb: Use parentheses for the impl_state_store macro
...
Allows rustfmt to do its thing.
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr >
2023-06-01 11:54:29 +02:00
Kévin Commaille
83e7afab5d
sdk: Allow to get stripped state events from the store
...
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr >
2023-06-01 11:13:24 +02:00
Kévin Commaille
645af31c59
base: Use generic types for (Raw)MemberEvent
...
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr >
2023-06-01 11:13:24 +02:00
Ivan Enderlin
a090a070ee
chore(cargo): Add missing EOF.
2023-06-01 10:08:59 +02:00
Ivan Enderlin
697c92beb1
test(ui): Test RoomList::entries_stream with more cases.
2023-06-01 09:48:54 +02:00
Ivan Enderlin
954d798ac3
test(ui): Write an assert_entries_stream macro.
2023-06-01 09:48:54 +02:00
Ivan Enderlin
a3c96dcb62
feat(ui): Implement RoomList::entries_stream.
2023-06-01 09:48:53 +02:00
Ivan Enderlin
1caa8b1aa6
chore(ui): Polish after the rebase.
2023-06-01 09:48:53 +02:00
Ivan Enderlin
4557c2a7b2
feat(ui): Add RoomList::entries.
...
This patch implements the `RoomList::entries` method, which allows
to get a stream of `VectorDiff` over the room list, and that can be
filtered.
2023-06-01 09:48:53 +02:00
Ivan Enderlin
f058c59582
feat(sdk): Add SlidingSyncList::room_list_filtered_stream.
...
This patch adds a new method on `SlidingSyncList` named
`room_list_filtered_stream`, which uses the new `eyeball-im-util` crate
with its new `FilteredSubscriber` type.
2023-06-01 09:48:53 +02:00
Ivan Enderlin
aa70c85e02
test(ui): Test RoomList sync from Init to Enjoy.
2023-06-01 09:48:53 +02:00
Ivan Enderlin
1173636b35
feat(ui): Add room_list::Error.
2023-06-01 09:48:53 +02:00
Ivan Enderlin
61f903a5a9
test(ui): Clean up a test.
2023-06-01 09:48:53 +02:00
Ivan Enderlin
4d6a6ac17f
feat(ui) Add State::Terminated in RoomList.
2023-06-01 09:48:53 +02:00
Ivan Enderlin
26a764d9dd
test(ui): Test all RoomList actions.
2023-06-01 09:48:53 +02:00
Ivan Enderlin
bd175d9f66
test(sdk): Store the sync-mode in SlidingSyncListInner only for tests.
2023-06-01 09:48:53 +02:00
Ivan Enderlin
f89060bbe9
chore(ui): Update after the rebase.
2023-06-01 09:48:53 +02:00
Ivan Enderlin
01366a08df
!foo
2023-06-01 09:48:53 +02:00
Ivan Enderlin
4e07ac1c76
test(ui): Improve testability of RoomList.
2023-06-01 09:48:53 +02:00
Ivan Enderlin
d1708ececf
feat(ui): Update according to the last patch.
2023-06-01 09:48:53 +02:00
Ivan Enderlin
4fa38d23d4
feat(sdk): SlidingSync has more non-blocking API.
...
This patch does several things.
First, `SlidingSync::on_list` is now async, and accept async closures.
Second, `SlidingSync::lists` and `::rooms` are behind an `AsyncRwLock`
instead of a `StdRwLock`. The rest of the patch updates the consequence
of this.
2023-06-01 09:48:53 +02:00
Ivan Enderlin
5f81d829c4
feat(ui): Create an Init state, and add state observer for RoomList.
2023-06-01 09:48:52 +02:00
Ivan Enderlin
92c3003535
!baz
2023-06-01 09:48:52 +02:00
Ivan Enderlin
f47c2ba125
!bar
2023-06-01 09:48:52 +02:00
Ivan Enderlin
7706b0096b
!foo
2023-06-01 09:48:52 +02:00
Ivan Enderlin
5f58438389
feat(ui): Oh, a roomlist module.
2023-06-01 09:48:51 +02:00