Commit Graph

14300 Commits

Author SHA1 Message Date
Damir Jelić
d5d0368ba8 feat(multiverse): Add support to reset your identity 2025-04-07 14:17:10 +02:00
Damir Jelić
899eb04f05 feat(multiverse): Use F8 to open the details view instead of CTRL-D
CTRL-D might become important once we add scrolling to the timeline
2025-04-07 14:17:10 +02:00
Damir Jelić
187280d573 feat(multiverse): Show an exit screen instead of printing things to stdout 2025-04-07 14:17:10 +02:00
Damir Jelić
036d14e9e3 feat(multiverse): Settings view 2025-04-07 14:17:10 +02:00
Damir Jelić
226229d63b refactor(multiverse): Move the widgets of the details mode into the details module 2025-04-07 14:17:10 +02:00
Damir Jelić
0cf018cc1b feat(multiverse): Allow the help screen to be closed with ESC as well 2025-04-07 14:17:10 +02:00
Damir Jelić
c3d7a760f7 feat(multiverse): Add an input line so we can send messages 2025-04-07 14:17:10 +02:00
Damir Jelić
d51cf1e76e refactor(multiverse): Change the keybinding for the reaction sending feature 2025-04-07 14:17:10 +02:00
Damir Jelić
71b6b213c4 refactor(multiverse): Move the details mode into a tab-based popout 2025-04-07 14:17:10 +02:00
Damir Jelić
ec23638567 refactor(multiverse): Move some global shortcuts behind modifiers 2025-04-07 14:17:10 +02:00
Damir Jelić
688a56a077 feat(multiverse): Always render the timeline, despite showing some details 2025-04-07 14:17:10 +02:00
Damir Jelić
8413e856fe refactor(multiverse): Move the timeline rendering into a separate widget 2025-04-07 14:17:10 +02:00
Damir Jelić
3f16e77686 refactor(multiverse): Don't unwrap when subscribing to the event cache 2025-04-07 14:17:10 +02:00
Damir Jelić
a4779299f6 refactor(multiverse): Move the details views under the room view module 2025-04-07 14:17:10 +02:00
Damir Jelić
50934f5bc9 refactor(multiverse): Move the room view into a separate widget 2025-04-07 14:17:10 +02:00
Damir Jelić
fad63b9a64 feat(multiverse): Recovery support 2025-04-07 14:17:10 +02:00
Damir Jelić
d999cf9180 refactor(multiverse): Convert the status widget into a stateful widget
The status widget depends on the main app state, instead of cloning the
app state let's just use a StatefulWidget instead.
2025-04-07 14:17:10 +02:00
Damir Jelić
3cd60c5b01 doc(multiverse): Document the status widget a bit better 2025-04-07 14:17:10 +02:00
Damir Jelić
2e4587f824 refactor(multiverse): Move all the widgets into a separate module 2025-04-07 14:17:10 +02:00
Damir Jelić
3996f7c0d6 feat(multiverse): Add a help screen 2025-04-07 14:17:10 +02:00
Damir Jelić
774bff00a0 refactor(multiverse): Events view 2025-04-07 14:17:10 +02:00
Damir Jelić
d6196e6c5c refactor(multiverse): Move the linked chunk view into a popout widget 2025-04-07 14:17:10 +02:00
Damir Jelić
b49fd2b473 feat(multiverse): Only open the read receipt screen if a room is selected 2025-04-07 14:17:10 +02:00
Damir Jelić
f31119a013 refactor(multiverse): Turn the read receipt rendering logic into a widget 2025-04-07 14:17:10 +02:00
Damir Jelić
fb4caf40aa refactor(multiverse): Make the Status struct a true widget 2025-04-07 14:17:10 +02:00
Damir Jelić
238fbdbe82 refactor(multiverse): Use the Mutex from the common crate to avoid calling unwrap 2025-04-07 14:17:10 +02:00
Damir Jelić
a1d42cdf06 refactor(multiverse): Shorten some overly long lines 2025-04-07 14:17:10 +02:00
Damir Jelić
1c134a78de refactor(multiverse): Use a mpsc channel to propagate status messages to the status widget 2025-04-07 14:17:10 +02:00
Damir Jelić
b5d1c14e29 refactor(multiverse): Rename set_status_message to set_message 2025-04-07 14:17:10 +02:00
Damir Jelić
a28ec70816 refactor(multiverse): Move the set_status_message under the Status widget 2025-04-07 14:17:10 +02:00
Damir Jelić
e1b393c39f refactor(multiverse): Move the status message into a separate module 2025-04-07 14:17:10 +02:00
Damir Jelić
a345c47a31 refactor(multiverse): Merge the two App impl blocks 2025-04-07 14:17:10 +02:00
Damir Jelić
64feee41ef refactor(multiverse): Move the room subscription logic into the RoomList 2025-04-07 14:17:10 +02:00
Damir Jelić
9f947e019f refactor(multiverse): Split the get_selected_room_id method into two methods 2025-04-07 14:17:10 +02:00
Damir Jelić
be74cb4a16 refactor(multiverse): Move the get_selected_room_id under the RoomList 2025-04-07 14:17:10 +02:00
Damir Jelić
409f08dc2b refactor(multiverse): Simplify the constructor 2025-04-07 14:17:10 +02:00
Damir Jelić
a94a03766b refactor(multiverse): Move the closure listening for new data into a separate method 2025-04-07 14:17:10 +02:00
Damir Jelić
988fd18b78 refactor(multiverse): Move the RoomList widget into a separate module 2025-04-07 14:17:10 +02:00
Damir Jelić
68b848602a refactor(multiverse): Turn the RoomList struct into a widget 2025-04-07 14:17:10 +02:00
Damir Jelić
f7d6fe2dbf refactor(multiverse): Rename StatefulList to RoomList
While we're at it, move the impl block closer to the struct.
2025-04-07 14:17:10 +02:00
Damir Jelić
c2a9523cbb refactor(multiverse): Remove the generics from the StatefulList struct 2025-04-07 14:17:10 +02:00
Ivan Enderlin
ee879354b7 doc(sqlite,ffi): Add #4894 in the CHANGELOG.mds. 2025-04-07 14:05:40 +02:00
Ivan Enderlin
c3fd571623 feat(ffi): Add ClientBuilder::system_is_memory_constrained().
This patch adds `ClientBuilder::system_is_memory_constrained`
so that the client can be built with that in mind.
Behind the scene, for the moment, it only calls
`SqliteStoreConfig::with_low_memory_config` instead of
`SqliteStoreConfig::new`, but this flag can be used for other use cases.
2025-04-07 14:05:40 +02:00
Ivan Enderlin
52ec6a4539 feat(sqlite): Add SqliteStoreConfig::with_low_memory_config.
This patch adds a new constructor for `SqliteStoreConfig`, which sets
some defaults tailored for low memory usage.

This patch adds tests asserting the defaults for `new` and
`with_low_memory_config`.
2025-04-07 14:05:40 +02:00
Ivan Enderlin
a57322466c refactor(base): Simplify the e2ee response processor.
This patch explores a way to simplify the call sites of the `e2ee`
response processor by creating one response processor for `/v3/sync` and
one for MSC4186. The idea is to:

- simplify the call site by having less code,
- isolating the “dispatch” of a the response values into the `e2ee`
  response processor,
- make it easier to test this response processor based on a `Response`
  structs directly.
2025-04-07 13:52:29 +02:00
Ivan Enderlin
90ce6e85ad refactor(base): Centralise processors that require e2e-encryption. 2025-04-07 13:52:29 +02:00
Ivan Enderlin
e94fd64276 refactor(base): BaseClient uses response processors and remove duplicated code.
This patch updates
`BaseClient::receive_sync_repsonse_with_requested_required_states` to
use the `response_processors`. This patch also removes duplicated code
with the processors.
2025-04-07 13:52:29 +02:00
Ivan Enderlin
0c7cf58d4d refactor(base): BaseClient::process_sliding_sync_e2ee uses response processors. 2025-04-07 13:52:29 +02:00
Ivan Enderlin
e3b2e0fa3e feat(base): Add the Verification request processor. 2025-04-07 13:52:29 +02:00
Ivan Enderlin
4619221429 feat(base): Add the DecryptLatestEvents response processor. 2025-04-07 13:52:29 +02:00