mirror of
https://gitlab.opencode.de/bwi/bundesmessenger/clients/bundesmessenger-ios.git
synced 2026-04-21 17:12:45 +02:00
SP2: Adding Rooms to Spaces element-ios#5230
- Added room ID to cancel callback as the room may have been upgraded
This commit is contained in:
@@ -21,7 +21,7 @@ import UIKit
|
||||
/// Actions returned by the coordinator callback
|
||||
enum RoomAccessCoordinatorCoordinatorAction {
|
||||
case done(String)
|
||||
case cancel
|
||||
case cancel(String)
|
||||
}
|
||||
|
||||
@objcMembers
|
||||
@@ -32,6 +32,7 @@ final class RoomAccessCoordinator: Coordinator {
|
||||
// MARK: Private
|
||||
|
||||
private let parameters: RoomAccessCoordinatorParameters
|
||||
private var upgradedRoomId: String?
|
||||
|
||||
private var navigationRouter: NavigationRouterType {
|
||||
return self.parameters.navigationRouter
|
||||
@@ -44,6 +45,13 @@ final class RoomAccessCoordinator: Coordinator {
|
||||
|
||||
var callback: ((RoomAccessCoordinatorCoordinatorAction) -> Void)?
|
||||
|
||||
var currentRoomId: String {
|
||||
if let upgradedRoomId = upgradedRoomId {
|
||||
return upgradedRoomId
|
||||
}
|
||||
return parameters.room.roomId
|
||||
}
|
||||
|
||||
// MARK: - Setup
|
||||
|
||||
init(parameters: RoomAccessCoordinatorParameters) {
|
||||
@@ -99,9 +107,10 @@ final class RoomAccessCoordinator: Coordinator {
|
||||
switch result {
|
||||
case .done(let roomId):
|
||||
self.callback?(.done(roomId))
|
||||
case .cancel:
|
||||
self.callback?(.cancel)
|
||||
case .cancel(let roomId):
|
||||
self.callback?(.cancel(roomId))
|
||||
case .spaceSelection(let roomId, _):
|
||||
self.upgradedRoomId = roomId
|
||||
self.pushScreen(with: self.createRestrictedAccessSpaceChooserCoordinator(with: roomId))
|
||||
}
|
||||
}
|
||||
@@ -122,7 +131,7 @@ final class RoomAccessCoordinator: Coordinator {
|
||||
case .back:
|
||||
self.navigationRouter.popModule(animated: true)
|
||||
case .cancel:
|
||||
self.callback?(.cancel)
|
||||
self.callback?(.cancel(roomId))
|
||||
case .done:
|
||||
self.callback?(.done(roomId))
|
||||
}
|
||||
|
||||
+8
-4
@@ -16,7 +16,7 @@
|
||||
import UIKit
|
||||
|
||||
@objc protocol RoomAccessCoordinatorBridgePresenterDelegate {
|
||||
func roomAccessCoordinatorBridgePresenterDelegateDidCancel(_ coordinatorBridgePresenter: RoomAccessCoordinatorBridgePresenter)
|
||||
func roomAccessCoordinatorBridgePresenterDelegate(_ coordinatorBridgePresenter: RoomAccessCoordinatorBridgePresenter, didCancelRoomWithId roomId: String)
|
||||
func roomAccessCoordinatorBridgePresenterDelegate(_ coordinatorBridgePresenter: RoomAccessCoordinatorBridgePresenter, didCompleteRoomWithId roomId: String)
|
||||
}
|
||||
|
||||
@@ -54,8 +54,8 @@ final class RoomAccessCoordinatorBridgePresenter: NSObject {
|
||||
guard let self = self else { return }
|
||||
|
||||
switch result {
|
||||
case .cancel:
|
||||
self.delegate?.roomAccessCoordinatorBridgePresenterDelegateDidCancel(self)
|
||||
case .cancel(let roomId):
|
||||
self.delegate?.roomAccessCoordinatorBridgePresenterDelegate(self, didCancelRoomWithId: roomId)
|
||||
case .done(let roomId):
|
||||
self.delegate?.roomAccessCoordinatorBridgePresenterDelegate(self, didCompleteRoomWithId: roomId)
|
||||
}
|
||||
@@ -88,7 +88,11 @@ final class RoomAccessCoordinatorBridgePresenter: NSObject {
|
||||
extension RoomAccessCoordinatorBridgePresenter: UIAdaptivePresentationControllerDelegate {
|
||||
|
||||
func roomNotificationSettingsCoordinatorDidComplete(_ presentationController: UIPresentationController) {
|
||||
self.delegate?.roomAccessCoordinatorBridgePresenterDelegateDidCancel(self)
|
||||
if let roomId = self.coordinator?.currentRoomId {
|
||||
self.delegate?.roomAccessCoordinatorBridgePresenterDelegate(self, didCancelRoomWithId: roomId)
|
||||
} else {
|
||||
self.delegate?.roomAccessCoordinatorBridgePresenterDelegate(self, didCancelRoomWithId: self.room.roomId)
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+2
-2
@@ -61,8 +61,8 @@ final class RoomAccessTypeChooserCoordinator: Coordinator, Presentable {
|
||||
self.callback?(.spaceSelection(roomId, accessType))
|
||||
case .done(let roomId):
|
||||
self.callback?(.done(roomId))
|
||||
case .cancel:
|
||||
self.callback?(.cancel)
|
||||
case .cancel(let roomId):
|
||||
self.callback?(.cancel(roomId))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+2
-2
@@ -36,7 +36,7 @@ struct RoomAccessTypeChooserAccessItem: Identifiable, Equatable {
|
||||
enum RoomAccessTypeChooserCoordinatorAction {
|
||||
case spaceSelection(String, RoomAccessTypeChooserAccessType)
|
||||
case done(String)
|
||||
case cancel
|
||||
case cancel(String)
|
||||
}
|
||||
|
||||
// MARK: - View model
|
||||
@@ -52,7 +52,7 @@ enum RoomAccessTypeChooserStateAction {
|
||||
enum RoomAccessTypeChooserViewModelAction {
|
||||
case spaceSelection(String, RoomAccessTypeChooserAccessType)
|
||||
case done(String)
|
||||
case cancel
|
||||
case cancel(String)
|
||||
}
|
||||
|
||||
// MARK: - View
|
||||
|
||||
+1
-1
@@ -112,7 +112,7 @@ class RoomAccessTypeChooserViewModel: RoomAccessTypeChooserViewModelType, RoomAc
|
||||
}
|
||||
|
||||
private func cancel() {
|
||||
callback?(.cancel)
|
||||
callback?(.cancel(roomAccessTypeChooserService.currentRoomId))
|
||||
}
|
||||
|
||||
private func didSelect(accessType: RoomAccessTypeChooserAccessType) {
|
||||
|
||||
Reference in New Issue
Block a user