mirror of
https://gitlab.opencode.de/bwi/bundesmessenger/clients/bundesmessenger-ios.git
synced 2026-04-22 01:22:46 +02:00
SP4: space settings (#5730)
* SP4: Space Settings - Space settings screen implemented - No space upgrade available as per Element web - Need more insights for the space address field - Added settings live update - Added local alias implementation
This commit is contained in:
@@ -110,7 +110,7 @@ final class RoomAccessCoordinator: Coordinator {
|
||||
}
|
||||
|
||||
private func createRoomAccessTypeCoordinator() -> RoomAccessTypeChooserCoordinator {
|
||||
let coordinator: RoomAccessTypeChooserCoordinator = RoomAccessTypeChooserCoordinator(parameters: RoomAccessTypeChooserCoordinatorParameters(roomId: parameters.room.roomId, session: parameters.room.mxSession))
|
||||
let coordinator: RoomAccessTypeChooserCoordinator = RoomAccessTypeChooserCoordinator(parameters: RoomAccessTypeChooserCoordinatorParameters(roomId: parameters.room.roomId, allowsRoomUpgrade: parameters.allowsRoomUpgrade, session: parameters.room.mxSession))
|
||||
coordinator.callback = { [weak self] result in
|
||||
guard let self = self else { return }
|
||||
|
||||
|
||||
+9
-2
@@ -34,6 +34,7 @@ final class RoomAccessCoordinatorBridgePresenter: NSObject {
|
||||
// MARK: Private
|
||||
|
||||
private let room: MXRoom
|
||||
private let allowsRoomUpgrade: Bool
|
||||
private var coordinator: RoomAccessCoordinator?
|
||||
|
||||
// MARK: Public
|
||||
@@ -42,16 +43,22 @@ final class RoomAccessCoordinatorBridgePresenter: NSObject {
|
||||
|
||||
// MARK: - Setup
|
||||
|
||||
init(room: MXRoom) {
|
||||
init(room: MXRoom,
|
||||
allowsRoomUpgrade: Bool) {
|
||||
self.room = room
|
||||
self.allowsRoomUpgrade = allowsRoomUpgrade
|
||||
super.init()
|
||||
}
|
||||
|
||||
convenience init(room: MXRoom) {
|
||||
self.init(room: room, allowsRoomUpgrade: true)
|
||||
}
|
||||
|
||||
// MARK: - Public
|
||||
|
||||
func present(from viewController: UIViewController, animated: Bool) {
|
||||
let navigationRouter = NavigationRouter()
|
||||
let coordinator = RoomAccessCoordinator(parameters: RoomAccessCoordinatorParameters(room: room, navigationRouter: navigationRouter))
|
||||
let coordinator = RoomAccessCoordinator(parameters: RoomAccessCoordinatorParameters(room: room, allowsRoomUpgrade: allowsRoomUpgrade, navigationRouter: navigationRouter))
|
||||
coordinator.callback = { [weak self] result in
|
||||
guard let self = self else { return }
|
||||
|
||||
|
||||
@@ -23,13 +23,18 @@ struct RoomAccessCoordinatorParameters {
|
||||
|
||||
/// The Matrix room
|
||||
let room: MXRoom
|
||||
|
||||
/// Set this value to false if you want to avoid room to be upgraded
|
||||
let allowsRoomUpgrade: Bool
|
||||
|
||||
/// The navigation router that manage physical navigation
|
||||
let navigationRouter: NavigationRouterType
|
||||
|
||||
init(room: MXRoom,
|
||||
allowsRoomUpgrade: Bool = true,
|
||||
navigationRouter: NavigationRouterType? = nil) {
|
||||
self.room = room
|
||||
self.allowsRoomUpgrade = allowsRoomUpgrade
|
||||
self.navigationRouter = navigationRouter ?? NavigationRouter(navigationController: RiotNavigationController())
|
||||
}
|
||||
}
|
||||
|
||||
+2
-1
@@ -18,6 +18,7 @@ import SwiftUI
|
||||
|
||||
struct RoomAccessTypeChooserCoordinatorParameters {
|
||||
let roomId: String
|
||||
let allowsRoomUpgrade: Bool
|
||||
let session: MXSession
|
||||
}
|
||||
|
||||
@@ -42,7 +43,7 @@ final class RoomAccessTypeChooserCoordinator: Coordinator, Presentable {
|
||||
@available(iOS 14.0, *)
|
||||
init(parameters: RoomAccessTypeChooserCoordinatorParameters) {
|
||||
self.parameters = parameters
|
||||
let viewModel = RoomAccessTypeChooserViewModel(roomAccessTypeChooserService: RoomAccessTypeChooserService(roomId: parameters.roomId, session: parameters.session))
|
||||
let viewModel = RoomAccessTypeChooserViewModel(roomAccessTypeChooserService: RoomAccessTypeChooserService(roomId: parameters.roomId, allowsRoomUpgrade: parameters.allowsRoomUpgrade, session: parameters.session))
|
||||
let room = parameters.session.room(withRoomId: parameters.roomId)
|
||||
let view = RoomAccessTypeChooser(viewModel: viewModel.context, roomName: room?.displayName ?? "")
|
||||
roomAccessTypeChooserViewModel = viewModel
|
||||
|
||||
+4
-2
@@ -26,6 +26,7 @@ class RoomAccessTypeChooserService: RoomAccessTypeChooserServiceProtocol {
|
||||
// MARK: Private
|
||||
|
||||
private let roomId: String
|
||||
private let allowsRoomUpgrade: Bool
|
||||
private let session: MXSession
|
||||
private var replacementRoom: MXRoom?
|
||||
private var didBuildSpaceGraphObserver: Any?
|
||||
@@ -63,8 +64,9 @@ class RoomAccessTypeChooserService: RoomAccessTypeChooserServiceProtocol {
|
||||
|
||||
// MARK: - Setup
|
||||
|
||||
init(roomId: String, session: MXSession) {
|
||||
init(roomId: String, allowsRoomUpgrade: Bool, session: MXSession) {
|
||||
self.roomId = roomId
|
||||
self.allowsRoomUpgrade = allowsRoomUpgrade
|
||||
self.session = session
|
||||
self.currentRoomId = roomId
|
||||
self.versionOverride = session.homeserverCapabilitiesService.versionOverrideForFeature(.restricted)
|
||||
@@ -144,7 +146,7 @@ class RoomAccessTypeChooserService: RoomAccessTypeChooserServiceProtocol {
|
||||
// MARK: - Private
|
||||
|
||||
private func setupAccessItems() {
|
||||
guard let spaceService = session.spaceService, let ancestors = spaceService.ancestorsPerRoomId[currentRoomId], !ancestors.isEmpty else {
|
||||
guard let spaceService = session.spaceService, let ancestors = spaceService.ancestorsPerRoomId[currentRoomId], !ancestors.isEmpty, allowsRoomUpgrade || !roomUpgradeRequired else {
|
||||
self.accessItems = [
|
||||
RoomAccessTypeChooserAccessItem(id: .private, isSelected: false, title: VectorL10n.private, detail: VectorL10n.roomAccessSettingsScreenPrivateMessage, badgeText: nil),
|
||||
RoomAccessTypeChooserAccessItem(id: .public, isSelected: false, title: VectorL10n.public, detail: VectorL10n.roomAccessSettingsScreenPublicMessage, badgeText: nil),
|
||||
|
||||
Reference in New Issue
Block a user