diff --git a/ElementX.xcodeproj/project.pbxproj b/ElementX.xcodeproj/project.pbxproj index 6f5067002..16e41d5c1 100644 --- a/ElementX.xcodeproj/project.pbxproj +++ b/ElementX.xcodeproj/project.pbxproj @@ -7372,7 +7372,7 @@ repositoryURL = "https://github.com/element-hq/compound-ios"; requirement = { kind = revision; - revision = 6d42477c54a1dae128e0cb3645e3d00a53a5736c; + revision = 5c8ee9be606768ad228d61aa3508df515f208908; }; }; F76A08D0EA29A07A54F4EB4D /* XCRemoteSwiftPackageReference "swift-collections" */ = { diff --git a/ElementX.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved b/ElementX.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved index 35ff65f2b..3fb390733 100644 --- a/ElementX.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved +++ b/ElementX.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -14,7 +14,7 @@ "kind" : "remoteSourceControl", "location" : "https://github.com/element-hq/compound-ios", "state" : { - "revision" : "6d42477c54a1dae128e0cb3645e3d00a53a5736c" + "revision" : "5c8ee9be606768ad228d61aa3508df515f208908" } }, { @@ -263,7 +263,7 @@ { "identity" : "swiftui-introspect", "kind" : "remoteSourceControl", - "location" : "https://github.com/siteline/SwiftUI-Introspect.git", + "location" : "https://github.com/siteline/SwiftUI-Introspect", "state" : { "revision" : "b94da693e57eaf79d16464b8b7c90d09cba4e290", "version" : "0.9.2" diff --git a/ElementX/Sources/Application/AppSettings.swift b/ElementX/Sources/Application/AppSettings.swift index 2b77db540..1e979777d 100644 --- a/ElementX/Sources/Application/AppSettings.swift +++ b/ElementX/Sources/Application/AppSettings.swift @@ -52,7 +52,6 @@ final class AppSettings { case roomListFiltersEnabled case markAsUnreadEnabled case markAsFavouriteEnabled - case roomModerationEnabled case publicSearchEnabled case qrCodeLoginEnabled } @@ -282,9 +281,6 @@ final class AppSettings { // MARK: - Feature Flags - @UserPreference(key: UserDefaultsKeys.roomModerationEnabled, defaultValue: false, storageType: .userDefaults(store)) - var roomModerationEnabled - @UserPreference(key: UserDefaultsKeys.publicSearchEnabled, defaultValue: false, storageType: .volatile) var publicSearchEnabled diff --git a/ElementX/Sources/FlowCoordinators/RoomFlowCoordinator.swift b/ElementX/Sources/FlowCoordinators/RoomFlowCoordinator.swift index 311128650..b783e278b 100644 --- a/ElementX/Sources/FlowCoordinators/RoomFlowCoordinator.swift +++ b/ElementX/Sources/FlowCoordinators/RoomFlowCoordinator.swift @@ -500,8 +500,7 @@ class RoomFlowCoordinator: FlowCoordinatorProtocol { userIndicatorController: userIndicatorController, notificationSettings: userSession.clientProxy.notificationSettings, attributedStringBuilder: AttributedStringBuilder(permalinkBaseURL: appSettings.permalinkBaseURL, - mentionBuilder: MentionBuilder()), - appSettings: appSettings) + mentionBuilder: MentionBuilder())) let coordinator = RoomDetailsScreenCoordinator(parameters: params) coordinator.actions.sink { [weak self] action in guard let self else { return } @@ -543,7 +542,6 @@ class RoomFlowCoordinator: FlowCoordinatorProtocol { let parameters = RoomMembersListScreenCoordinatorParameters(mediaProvider: userSession.mediaProvider, roomProxy: roomProxy, userIndicatorController: userIndicatorController, - appSettings: appSettings, analytics: analytics) let coordinator = RoomMembersListScreenCoordinator(parameters: parameters) diff --git a/ElementX/Sources/Screens/RoomChangeRolesScreen/View/RoomChangeRolesScreenRow.swift b/ElementX/Sources/Screens/RoomChangeRolesScreen/View/RoomChangeRolesScreenRow.swift index 0dc926dc8..6048a22cb 100644 --- a/ElementX/Sources/Screens/RoomChangeRolesScreen/View/RoomChangeRolesScreenRow.swift +++ b/ElementX/Sources/Screens/RoomChangeRolesScreen/View/RoomChangeRolesScreenRow.swift @@ -19,8 +19,6 @@ import MatrixRustSDK import SwiftUI struct RoomChangeRolesScreenRow: View { - @Environment(\.isEnabled) private var isEnabled - let member: RoomMemberDetails let imageProvider: ImageProviderProtocol? @@ -28,22 +26,13 @@ struct RoomChangeRolesScreenRow: View { let action: () -> Void var body: some View { - ListRow(label: .avatar(title: memberName, + ListRow(label: .avatar(title: member.name ?? member.id, + status: member.isInvited ? L10n.screenRoomMemberListPendingHeaderTitle : nil, description: member.name == nil ? nil : member.id, icon: avatar), kind: .multiSelection(isSelected: isSelected, action: action)) } - var memberName: String { - let name = member.name ?? member.id - - return if member.isInvited { - L10n.screenRoomChangeRoleInvitedMemberName(name) - } else { - name - } - } - var avatar: LoadableAvatarImage { LoadableAvatarImage(url: member.avatarURL, name: member.name, diff --git a/ElementX/Sources/Screens/RoomDetailsScreen/RoomDetailsScreenCoordinator.swift b/ElementX/Sources/Screens/RoomDetailsScreen/RoomDetailsScreenCoordinator.swift index 60b18400c..d556a60dd 100644 --- a/ElementX/Sources/Screens/RoomDetailsScreen/RoomDetailsScreenCoordinator.swift +++ b/ElementX/Sources/Screens/RoomDetailsScreen/RoomDetailsScreenCoordinator.swift @@ -25,7 +25,6 @@ struct RoomDetailsScreenCoordinatorParameters { let userIndicatorController: UserIndicatorControllerProtocol let notificationSettings: NotificationSettingsProxyProtocol let attributedStringBuilder: AttributedStringBuilderProtocol - let appSettings: AppSettings } enum RoomDetailsScreenCoordinatorAction { @@ -55,8 +54,7 @@ final class RoomDetailsScreenCoordinator: CoordinatorProtocol { analyticsService: parameters.analyticsService, userIndicatorController: parameters.userIndicatorController, notificationSettingsProxy: parameters.notificationSettings, - attributedStringBuilder: parameters.attributedStringBuilder, - appSettings: parameters.appSettings) + attributedStringBuilder: parameters.attributedStringBuilder) } // MARK: - Public diff --git a/ElementX/Sources/Screens/RoomDetailsScreen/RoomDetailsScreenViewModel.swift b/ElementX/Sources/Screens/RoomDetailsScreen/RoomDetailsScreenViewModel.swift index 874ba050f..a93408c05 100644 --- a/ElementX/Sources/Screens/RoomDetailsScreen/RoomDetailsScreenViewModel.swift +++ b/ElementX/Sources/Screens/RoomDetailsScreen/RoomDetailsScreenViewModel.swift @@ -27,7 +27,6 @@ class RoomDetailsScreenViewModel: RoomDetailsScreenViewModelType, RoomDetailsScr private let userIndicatorController: UserIndicatorControllerProtocol private let notificationSettingsProxy: NotificationSettingsProxyProtocol private let attributedStringBuilder: AttributedStringBuilderProtocol - private let appSettings: AppSettings private var dmRecipient: RoomMemberProxyProtocol? @@ -43,8 +42,7 @@ class RoomDetailsScreenViewModel: RoomDetailsScreenViewModelType, RoomDetailsScr analyticsService: AnalyticsService, userIndicatorController: UserIndicatorControllerProtocol, notificationSettingsProxy: NotificationSettingsProxyProtocol, - attributedStringBuilder: AttributedStringBuilderProtocol, - appSettings: AppSettings) { + attributedStringBuilder: AttributedStringBuilderProtocol) { self.roomProxy = roomProxy self.clientProxy = clientProxy self.mediaProvider = mediaProvider @@ -52,7 +50,6 @@ class RoomDetailsScreenViewModel: RoomDetailsScreenViewModelType, RoomDetailsScr self.userIndicatorController = userIndicatorController self.notificationSettingsProxy = notificationSettingsProxy self.attributedStringBuilder = attributedStringBuilder - self.appSettings = appSettings let topic = attributedStringBuilder.fromPlain(roomProxy.topic) @@ -181,11 +178,7 @@ class RoomDetailsScreenViewModel: RoomDetailsScreenViewModelType, RoomDetailsScr state.canEditRoomName = await (try? roomProxy.canUser(userID: roomProxy.ownUserID, sendStateEvent: .roomName).get()) == true state.canEditRoomTopic = await (try? roomProxy.canUser(userID: roomProxy.ownUserID, sendStateEvent: .roomTopic).get()) == true state.canEditRoomAvatar = await (try? roomProxy.canUser(userID: roomProxy.ownUserID, sendStateEvent: .roomAvatar).get()) == true - - if appSettings.roomModerationEnabled { - state.canEditRolesOrPermissions = await (try? roomProxy.suggestedRole(for: roomProxy.ownUserID).get()) == .administrator - } - + state.canEditRolesOrPermissions = await (try? roomProxy.suggestedRole(for: roomProxy.ownUserID).get()) == .administrator state.canInviteUsers = await (try? roomProxy.canUserInvite(userID: roomProxy.ownUserID).get()) == true } diff --git a/ElementX/Sources/Screens/RoomDetailsScreen/View/RoomDetailsScreen.swift b/ElementX/Sources/Screens/RoomDetailsScreen/View/RoomDetailsScreen.swift index ac6c696f9..a0d19e2b0 100644 --- a/ElementX/Sources/Screens/RoomDetailsScreen/View/RoomDetailsScreen.swift +++ b/ElementX/Sources/Screens/RoomDetailsScreen/View/RoomDetailsScreen.swift @@ -320,8 +320,7 @@ struct RoomDetailsScreen_Previews: PreviewProvider, TestablePreview { userIndicatorController: ServiceLocator.shared.userIndicatorController, notificationSettingsProxy: notificationSettingsProxy, attributedStringBuilder: AttributedStringBuilder(permalinkBaseURL: .userDirectory, - mentionBuilder: MentionBuilder()), - appSettings: ServiceLocator.shared.settings) + mentionBuilder: MentionBuilder())) }() static let dmRoomViewModel = { @@ -347,8 +346,7 @@ struct RoomDetailsScreen_Previews: PreviewProvider, TestablePreview { userIndicatorController: ServiceLocator.shared.userIndicatorController, notificationSettingsProxy: notificationSettingsProxy, attributedStringBuilder: AttributedStringBuilder(permalinkBaseURL: .userDirectory, - mentionBuilder: MentionBuilder()), - appSettings: ServiceLocator.shared.settings) + mentionBuilder: MentionBuilder())) }() static let simpleRoomViewModel = { @@ -373,8 +371,7 @@ struct RoomDetailsScreen_Previews: PreviewProvider, TestablePreview { userIndicatorController: ServiceLocator.shared.userIndicatorController, notificationSettingsProxy: notificationSettingsProxy, attributedStringBuilder: AttributedStringBuilder(permalinkBaseURL: .userDirectory, - mentionBuilder: MentionBuilder()), - appSettings: ServiceLocator.shared.settings) + mentionBuilder: MentionBuilder())) }() static var previews: some View { diff --git a/ElementX/Sources/Screens/RoomMemberListScreen/RoomMembersListScreenCoordinator.swift b/ElementX/Sources/Screens/RoomMemberListScreen/RoomMembersListScreenCoordinator.swift index 58052d813..44fbeaf5c 100644 --- a/ElementX/Sources/Screens/RoomMemberListScreen/RoomMembersListScreenCoordinator.swift +++ b/ElementX/Sources/Screens/RoomMemberListScreen/RoomMembersListScreenCoordinator.swift @@ -21,7 +21,6 @@ struct RoomMembersListScreenCoordinatorParameters { let mediaProvider: MediaProviderProtocol let roomProxy: RoomProxyProtocol let userIndicatorController: UserIndicatorControllerProtocol - let appSettings: AppSettings let analytics: AnalyticsService } @@ -44,7 +43,6 @@ final class RoomMembersListScreenCoordinator: CoordinatorProtocol { viewModel = RoomMembersListScreenViewModel(roomProxy: parameters.roomProxy, mediaProvider: parameters.mediaProvider, userIndicatorController: parameters.userIndicatorController, - appSettings: parameters.appSettings, analytics: parameters.analytics) } diff --git a/ElementX/Sources/Screens/RoomMemberListScreen/RoomMembersListScreenViewModel.swift b/ElementX/Sources/Screens/RoomMemberListScreen/RoomMembersListScreenViewModel.swift index 8d7bf5458..605147af2 100644 --- a/ElementX/Sources/Screens/RoomMemberListScreen/RoomMembersListScreenViewModel.swift +++ b/ElementX/Sources/Screens/RoomMemberListScreen/RoomMembersListScreenViewModel.swift @@ -22,7 +22,6 @@ typealias RoomMembersListScreenViewModelType = StateStoreViewModel