Suggest recently visited rooms when forwarding messages (#6251)

* Suggest recently visited rooms when forwarding messages

The Forward to screen now shows up to 5 recently visited rooms in a
Suggestions section, above a Chats section that lists every room. The
suggestions are never searched: while searching, only the Chats section
is shown and filtered. The source room, invites, spaces and upgraded
rooms are never suggested, and the section is hidden when there is
nothing to suggest.

The suggestions are resolved from the room summaries rather than room
proxies, so they show up without holding back the list, and they are
re-resolved as the room list loads after a cold start. ClientProxy now
exposes the recently visited room IDs for this.

The recently visited rooms filter is now async, so callers choose its
isolation instead of asserting it at runtime.

* Apply review suggestions to the forwarding suggestions

Rooms:
- Each room is listed once. Suggested rooms are left out of Chats unless
  searching, where Chats lists every result. This also removes the
  duplicated row whose selection changed without the tapped row's
  animation.
- The Chats header is hidden when the section has no rooms.

Suggestions:
- Resolve them once when the screen opens instead of on every room list
  update.
This commit is contained in:
Mauro
2026-10-02 12:04:07 +02:00
committed by GitHub
parent e67a4c388f
commit f91b7441e7
25 changed files with 287 additions and 68 deletions
@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:90feb66a7ec36bae867ca32a2a883960a5efeab4822b0cb0136926295d8744da
size 158905
@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:333ee064686f6d432b48a6fe38d34e801cc238ad34af28c7853f2ab794bbad46
size 160891
@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:4cb33b9bb83676d00fe204736824fca62327c17edd4deb0e2722286571b30fb2
size 107801
@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:c8cf4b81d5dfc381b74728e65bec8f947e01fa6a52cfd23201a4d473f2acff3d
size 107459
@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:175fc36dbb3f8b53610b87a06fb8f69d9a7c03416699a732678dc719ea7227e0
size 170430
@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:b1a433bd71d9eae827259513c29d4765202c38aac1a97c4e6e0527ca624779ac
size 174737
@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:143c4962bc624c86d81996a122894b18b76acbd587942942ca736f3ac5213c5d
size 118839
@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:78e40d11b882b09e271b345bbbe941216d15629a501191382ed5047e0f227c54
size 119142
@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:c1466071c1f9dbee5bdd27a85a05de3f80eb0f5b09ce99739d8386dc234870ea
size 161363
@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:70f396c9aba014af49da5528bda8762ccf837de55e88b57d9f39ff923cd2fcc3
size 162736
@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:b22eda91f8a662a8ae706fc4b48a68bf39c9f607e79e52459cd247cc06865443
size 111656
@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:9dadf1793a775b966312dd8c84b5b7b45fb00e59ce96f325ce9644ef540b4a7b
size 110350