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:
Gil Eluard
2022-03-04 12:53:42 +01:00
committed by GitHub
parent 136b40e2eb
commit bc55dbb11b
43 changed files with 2184 additions and 118 deletions
@@ -30,6 +30,7 @@ final class RoomInfoCoordinator: NSObject, RoomInfoCoordinatorType {
private let room: MXRoom
private let parentSpaceId: String?
private let initialSection: RoomInfoSection
private let dismissOnCancel: Bool
private weak var roomSettingsViewController: RoomSettingsViewController?
private lazy var segmentedViewController: SegmentedViewController = {
@@ -103,6 +104,7 @@ final class RoomInfoCoordinator: NSObject, RoomInfoCoordinatorType {
self.room = parameters.room
self.parentSpaceId = parameters.parentSpaceId
self.initialSection = parameters.initialSection
self.dismissOnCancel = parameters.dismissOnCancel
}
// MARK: - Public methods
@@ -226,6 +228,22 @@ extension RoomInfoCoordinator: RoomNotificationSettingsCoordinatorDelegate {
}
extension RoomInfoCoordinator: RoomSettingsViewControllerDelegate {
func roomSettingsViewControllerDidCancel(_ controller: RoomSettingsViewController!) {
if self.dismissOnCancel {
self.navigationRouter.dismissModule(animated: true, completion: nil)
} else {
controller.withdrawViewController(animated: true) {}
}
}
func roomSettingsViewControllerDidComplete(_ controller: RoomSettingsViewController!) {
if self.dismissOnCancel {
self.navigationRouter.dismissModule(animated: true, completion: nil)
} else {
controller.withdrawViewController(animated: true) {}
}
}
func roomSettingsViewController(_ controller: RoomSettingsViewController!, didReplaceRoomWithReplacementId newRoomId: String!) {
self.delegate?.roomInfoCoordinator(self, didReplaceRoomWithReplacementId: newRoomId)
}
@@ -32,16 +32,22 @@ class RoomInfoCoordinatorParameters: NSObject {
let room: MXRoom
let parentSpaceId: String?
let initialSection: RoomInfoSection
let dismissOnCancel: Bool
init(session: MXSession, room: MXRoom, parentSpaceId: String?, initialSection: RoomInfoSection) {
init(session: MXSession, room: MXRoom, parentSpaceId: String?, initialSection: RoomInfoSection, dismissOnCancel: Bool) {
self.session = session
self.room = room
self.parentSpaceId = parentSpaceId
self.initialSection = initialSection
self.dismissOnCancel = dismissOnCancel
super.init()
}
convenience init(session: MXSession, room: MXRoom, parentSpaceId: String?) {
self.init(session: session, room: room, parentSpaceId: parentSpaceId, initialSection: .none)
self.init(session: session, room: room, parentSpaceId: parentSpaceId, initialSection: .none, dismissOnCancel: false)
}
convenience init(session: MXSession, room: MXRoom, parentSpaceId: String?, initialSection: RoomInfoSection) {
self.init(session: session, room: room, parentSpaceId: parentSpaceId, initialSection: initialSection, dismissOnCancel: false)
}
}