Ivan Enderlin
68651aac1f
feat(sdk): Add RoomEventCache::events to avoid ::subscribe.
...
`RoomEventCache::subscribe` returns the set of events + the
`RoomEventCacheListener`. However, creating this listener isn't
cheap, especially dropping it. That's why this patch creates
`RoomEventCache::events` to replace `subscribe` when the listener is
not necessary.
2025-05-16 14:43:45 +02:00
Ivan Enderlin
7ef962f931
chore(labs): Allow clippy::large_enum_variant in multiverse.
...
This is development-, debug-oriented tool. Let's allow
`clippy::large_enum_variant` for the moment.
2025-05-16 14:27:49 +02:00
Benjamin Bouvier
13a2a8757e
feat(event cache): enable storage by default \o/
2025-05-13 10:17:21 +02:00
Benjamin Bouvier
7115203a90
feat(event cache): get rid of add_initial_events() entirely
2025-05-13 10:17:21 +02:00
Richard van der Hoff
75cde02283
Merge pull request #4946 from matrix-org/rav/history_sharing/share_on_invite
...
sdk: share room history when we send an invite, subject to an experimental feature flag.
2025-04-23 11:15:57 +01:00
Damir Jelić
59ecb1edbd
fix(multiverse): Add a shortcut to mark rooms as read back
2025-04-23 11:39:59 +02:00
Damir Jelić
a848506669
feat(multiverse): Add a /invite command
2025-04-17 12:03:51 +02:00
Damir Jelić
f0e49c2adf
feat(multiverse): Render membership changes
2025-04-17 12:03:51 +02:00
Richard van der Hoff
96bdd91bad
sdk: share room history when we send an invite
...
... subject to an experimental feature flag.
2025-04-16 16:53:27 +01:00
Damir Jelić
bc50cae35f
feat(multiverse): Add support to join rooms you've been invited to
2025-04-16 11:35:57 +02:00
Benjamin Bouvier
a27d6e2655
multiverse: prefer rendering back-paginated events instead of timeline's tail
...
This is useful to observe the virtyual start of timeline item in manual
testing.
2025-04-15 16:31:20 +02:00
Richard van der Hoff
1d3107ebcb
multiverse: reduce redraw rate
...
This reduces the framerate from ~62fps to 10fps.
This is a workaround for a problem in my terminal, so apologies for inflicting
it on everyone else, but here we are, and 10fps seems like it should be enough
for anyone.
The problem in question is specifically when I try to select some text by
dragging the mouse (eg, to copy a generated recovery key). If I start a drag,
but a redraw happens before the mouse has moved [a certain distance?], then the
drag doesn't work, and nothing gets selected. By reducing the framerate, I have
a much better chance of successfully starting a drag.
2025-04-09 16:10:31 +02:00
Richard van der Hoff
073b4bae03
multiverse: allow recovery keys with h or l in them
...
Currently, `h` and `l` are intercepted by the parent view to change tab,
meaning it's impossible to enter a recovery key which contains those
characters.
The fix here is very blunt: it just disables `h` and `l` for tab-changing. I
considered making it dependent on which tab is open, or what's going on in the
'Encryption' tab, but given you need to know about the alternatives (tab/cursor
keys) to switch away from the Encryption tab, I don't think that makes sense.
2025-04-09 14:53:36 +02:00
Damir Jelić
f3291d15c5
feat(multiverse): Move the details view to be beside the timeline
...
This allows us to view the debug screen at the same time as the
timeline. The details view can be to the right of the timeline or bellow
the timeline and we can switch using ALT-t.
2025-04-07 14:17:10 +02:00
Damir Jelić
413070aecb
feat(multiverse): Shrink the room list to 25% of the screen
2025-04-07 14:17:10 +02:00
Damir Jelić
288251b1b5
feat(multiverse): Keep the timeline scrolled to the bottom
2025-04-07 14:17:10 +02:00
Damir Jelić
6c3e3bb519
feat(multiverse): Tweak the keybindings for the details view a bit
2025-04-07 14:17:10 +02:00
Damir Jelić
2e8b396c09
feat(multiverse): Add global keybindings to go directly into a details view
2025-04-07 14:17:10 +02:00
Damir Jelić
ed048af903
chore(multiverse): Fix some clippy warnings
2025-04-07 14:17:10 +02:00
Damir Jelić
28e475b1fc
chore(multiverse): Get rid of an unused dependency
2025-04-07 14:17:10 +02:00
Damir Jelić
5a13bd5e76
feat(multiverse): Allow to backpaginate while looking at the room details
2025-04-07 14:17:10 +02:00
Damir Jelić
6966302467
fix(multiverse): Properly document the shortcuts on the help screen
2025-04-07 14:17:10 +02:00
Damir Jelić
fd6ce02d70
feat(multiverse): Select the first item in the developer settings
2025-04-07 14:17:10 +02:00
Damir Jelić
2debfd4c4d
fix(multiverse): The encryption settings don't need a separate block anymore
2025-04-07 14:17:10 +02:00
Damir Jelić
19c40fd2da
fix(multiverse): Better rendering for the OAuth approval URL when resetting recovery
2025-04-07 14:17:10 +02:00
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