* Initial plan
* Offer only joined rooms in destination pickers
Co-authored-by: Velin92 <34335419+Velin92@users.noreply.github.com>
* Clean whitespace in share picker test
Co-authored-by: Velin92 <34335419+Velin92@users.noreply.github.com>
* Restrict the shared picker room list to joined rooms
The alternate room summary provider, which backs the forward, share and
Add rooms pickers and global search, now always includes the SDK's
joined filter in its base filter. This replaces the per-call joinedOnly
flags, so Add rooms no longer offers invited rooms or spaces and no
screen can forget the flag.
A filter set before the provider has its room list is now applied once
the list is set, instead of being reset to the default. The share picker
hit this on a cold launch from the share extension.
The forward and share pickers also hide upgraded rooms, matching the
Suggestions section. The SDK has no filter for these.
Also registers the share picker's test file in the project, fixes the
blank-line indentation SwiftFormat flagged, and re-records the picker
snapshots without the upgraded room.
* Check room membership for forwarding suggestions and search breadcrumbs
RoomSummary now has isJoined, built from the room's membership. The
forwarding suggestions and the search breadcrumbs used a missing
joinRequestType to mean joined, which is also the case for rooms that
have been left or banned from. It only worked because the room list's
base filter already drops those.
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Velin92 <34335419+Velin92@users.noreply.github.com>
Co-authored-by: Mauro Romito <mauro.romito@element.io>
* 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.
The search filter now takes a joinedOnly flag, which appends the SDK's
joined filter so that invited and knocked rooms are excluded. It defaults
to false, leaving the existing callers unchanged.
* Add support for SpaceFilters on the SpaceServiceProxy level and a screen that renders them
* Add aliases to a couple of space room mocks
* Update translations and related snapshots
* Add a feature flag for space filters
* Add a new room summary provider filter that takes a list of room identifiers next to the normal state filters
This will take the SpaceFilter's descendants and combine it with the normal filters to reduce the rooms shown
* Add a new space filter button to the home screen and link it to the SpaceFiltersScreen and the actual RoomSummaryProvider room list filters
* Bump the RustSDK to v26.01.20-2 for SpaceFilter support.
* Add a cancellation button to the space filters screen
* Make the filter presentation mode liquidy, move the sheet to within the home screen.
* Address PR comments
* refactored the suggestion item structure
to scale with the room pill
* Implemented a way for the rooms
to appear in the suggestions view for the RTE, however I need to add the pills to the composer and the compatibility with the plain text composer
* small code correction
* fix
* fixed a bug where the suggestion wasn't returning
the right suggestion type and the suggestion text properly
* implementation done!
also updated some tests, but we need more of them
* updated toolbar view model tests
* updated tests
* updated preview tests
* renamed the Avatars case for the suggestions
* added a way to render the room and the message
pills, but is WIP
* permalinks now get converted into pills!
* fixed an issue where room address mentions
were not adding a URL properly but a string
* updated tests
* c
* Revert "c"
This reverts commit 5c80252fa23dba7e4d44f2a07fbf1e9500e37c82.
* updated tests
* more tests
* created APIs to get a specific RoomSummary
given the id or the alias
* small mention builder improvement
* pr suggestions
* Hide the unread dot when previewing an invite.
* Remove an invited room ID when accepting/rejecting.
* Remove the unread badge from knocked room cells.
* Update snapshots.
* Address PR comments.
Refactor KnockRequestType to JoinRequestType.
* WIP RequestToJoin struct
* implemented the logic to display the cells
* knock request banner accept flow
* mark all knocks as seen implemented
* details logic
* implemented accept, decline and ban in the list
* added a loader and modified the stacked view
of the banner
* pr suggestions
* updated naming and loading strings
* added the initial loading state
improved code and the tests
* updated a string that has changed
* code improvement
* tests for the room screen view model
* room details tests
and improved the knock requests tests for the room screen
* knock requests list tests
* added error state alerts with retry
* struct has been renamed on the sdk
so I renamed it also on the app side
* update SDK
* Switch to the new local room list sorting API
* Get rid of the RoomSummary enum, replace it by the inner RoomSummaryDetails
* And finally, rename RoomSummaryDetails to RoomSummary
* Fix a bunch of warnings
* Small tidy up post rebase/review.
- Remove unused invalidated property.
- Rename some RoomSummary instances to summary instead of details.
- Fix tests with missing roomListItem's.
* Update snapshots
---------
Co-authored-by: Doug <douglase@element.io>