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
@@ -108,6 +108,7 @@ enum A11yIdentifiers {
let userAvatar = "home_screen-user_avatar"
let recoveryKeyConfirmationBannerContinue = "home_screen-recovery_key_confirmation_continue"
let startChat = "home_screen-start_chat"
let spaceFilters = "home_screen-space_filters"
let roomNamePrefix = "home_screen-room_name"
func roomName(_ name: String) -> String {
+2 -1
View File
@@ -141,6 +141,7 @@ enum RoomAvatarSizeOnScreen {
case chats
case spaces
case spaceSettings
case spaceFilters
case authorizedSpaces
case timeline
case leaveSpace
@@ -161,7 +162,7 @@ enum RoomAvatarSizeOnScreen {
case .chats, .spaces, .spaceSettings:
return 52
case .timeline, .leaveSpace, .roomDirectorySearch,
.completionSuggestions, .authorizedSpaces:
.completionSuggestions, .authorizedSpaces, .spaceFilters:
return 32
case .notificationSettings:
return 30
+4
View File
@@ -113,6 +113,10 @@ extension SDKListener: SpaceRoomListSpaceListener where T == SpaceRoom? {
func onUpdate(space: SpaceRoom?) { onUpdateClosure(space) }
}
extension SDKListener: SpaceServiceSpaceFiltersListener where T == [SpaceFilterUpdate] {
func onUpdate(filterUpdates: [SpaceFilterUpdate]) { onUpdateClosure(filterUpdates) }
}
// MARK: Room
extension SDKListener: RoomInfoListener where T == RoomInfo {
@@ -26,6 +26,8 @@ enum TestablePreviewsDictionary {
"BugReportScreen_Previews" : BugReportScreen_Previews.self,
"CallInviteRoomTimelineView_Previews" : CallInviteRoomTimelineView_Previews.self,
"CallNotificationRoomTimelineView_Previews" : CallNotificationRoomTimelineView_Previews.self,
"ChatsSpaceFilterCell_Previews" : ChatsSpaceFilterCell_Previews.self,
"ChatsSpaceFiltersScreen_Previews" : ChatsSpaceFiltersScreen_Previews.self,
"CollapsibleRoomTimelineView_Previews" : CollapsibleRoomTimelineView_Previews.self,
"CompletionSuggestion_Previews" : CompletionSuggestion_Previews.self,
"ComposerToolbar_Previews" : ComposerToolbar_Previews.self,