Space filters (#4977)

* 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
This commit is contained in:
Stefan Ceriu
2026-01-21 22:19:39 +02:00
committed by GitHub
parent 0d34a28ec2
commit b4b9f6affa
41 changed files with 808 additions and 13 deletions
@@ -130,6 +130,20 @@ extension PreviewTests {
}
}
func testChatsSpaceFilterCell() async throws {
AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings.
for (index, preview) in ChatsSpaceFilterCell_Previews._allPreviews.enumerated() {
try await assertSnapshots(matching: preview, step: index)
}
}
func testChatsSpaceFiltersScreen() async throws {
AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings.
for (index, preview) in ChatsSpaceFiltersScreen_Previews._allPreviews.enumerated() {
try await assertSnapshots(matching: preview, step: index)
}
}
func testCollapsibleRoomTimelineView() async throws {
AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings.
for (index, preview) in CollapsibleRoomTimelineView_Previews._allPreviews.enumerated() {
@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:3d3f226d34b1e0bd2297f4359189c8b33223316ea7dfb685bc6de866bb58e5ff
size 142344
@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:3d3f226d34b1e0bd2297f4359189c8b33223316ea7dfb685bc6de866bb58e5ff
size 142344
@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:d8abbfad872d996a2f82668373b92f0f33ec51b637263deb14c655d0cb958606
size 93320
@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:d8abbfad872d996a2f82668373b92f0f33ec51b637263deb14c655d0cb958606
size 93320
@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:e4bb60e28bcde15e69c627fa4b5f6dca2b26a3f25cbf1afb62a9302d6d549b46
size 150715
@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:e4bb60e28bcde15e69c627fa4b5f6dca2b26a3f25cbf1afb62a9302d6d549b46
size 150715
@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:e28fb24e8a9087f8e951ed8c18ab9048cfacd72fcb2c328ddf3e46169306a1b6
size 100972
@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:e28fb24e8a9087f8e951ed8c18ab9048cfacd72fcb2c328ddf3e46169306a1b6
size 100972