diff --git a/Riot/Modules/Application/ScreenPresentation/RoomPresentationParameters.swift b/Riot/Modules/Application/ScreenPresentation/RoomPresentationParameters.swift index 46019f222..6f36f2e54 100644 --- a/Riot/Modules/Application/ScreenPresentation/RoomPresentationParameters.swift +++ b/Riot/Modules/Application/ScreenPresentation/RoomPresentationParameters.swift @@ -31,25 +31,19 @@ class RoomPresentationParameters: NSObject { /// The Matrix session in which the room should be available. let mxSession: MXSession - /// Indicate to pop to home and restore initial view hierarchy - let restoreInitialDisplay: Bool - - /// Indicate to stack above visible views - /// If this variable is set to true `restoreInitialDisplay` should be set to false to have effect - let stackAboveVisibleViews: Bool + /// Universal link presentation parameters. + let presentationParameters: UniversalLinkPresentationParameters // MARK: - Setup init(roomId: String, eventId: String?, mxSession: MXSession, - restoreInitialDisplay: Bool, - stackAboveVisibleViews: Bool) { + presentationParameters: UniversalLinkPresentationParameters) { self.roomId = roomId self.eventId = eventId self.mxSession = mxSession - self.restoreInitialDisplay = restoreInitialDisplay - self.stackAboveVisibleViews = stackAboveVisibleViews + self.presentationParameters = presentationParameters super.init() } diff --git a/Riot/Modules/Application/ScreenPresentation/RoomPreviewPresentationParameters.swift b/Riot/Modules/Application/ScreenPresentation/RoomPreviewPresentationParameters.swift index b84b25c0d..1b71f5e57 100644 --- a/Riot/Modules/Application/ScreenPresentation/RoomPreviewPresentationParameters.swift +++ b/Riot/Modules/Application/ScreenPresentation/RoomPreviewPresentationParameters.swift @@ -28,13 +28,11 @@ class RoomPreviewPresentationParameters: RoomPresentationParameters { // MARK: - Setup - init(previewData: RoomPreviewData, restoreInitialDisplay: Bool, stackAboveVisibleViews: Bool) { + init(previewData: RoomPreviewData, presentationParameters: UniversalLinkPresentationParameters) { self.previewData = previewData - + super.init(roomId: previewData.roomId, eventId: previewData.eventId, - mxSession: previewData.mxSession, - restoreInitialDisplay: restoreInitialDisplay, - stackAboveVisibleViews: stackAboveVisibleViews) + mxSession: previewData.mxSession, presentationParameters: presentationParameters) } } diff --git a/Riot/Modules/DeepLink/UniversalLinkPresentationParameters.swift b/Riot/Modules/DeepLink/UniversalLinkPresentationParameters.swift index 14164e544..36c2fb79f 100644 --- a/Riot/Modules/DeepLink/UniversalLinkPresentationParameters.swift +++ b/Riot/Modules/DeepLink/UniversalLinkPresentationParameters.swift @@ -52,6 +52,15 @@ class UniversalLinkPresentationParameters: NSObject { self.sourceView = sourceView super.init() + } + + convenience init(restoreInitialDisplay: Bool, stackAboveVisibleViews: Bool) { + self.init(restoreInitialDisplay: restoreInitialDisplay, stackAboveVisibleViews: stackAboveVisibleViews, sender: nil, sourceView: nil) + } + + /// In this initializer `stackAboveVisibleViews` is set to false` + convenience init(restoreInitialDisplay: Bool) { + self.init(restoreInitialDisplay: restoreInitialDisplay, stackAboveVisibleViews: false, sender: nil, sourceView: nil) } /// For the moment this initializer assume that `stackAboveVisibleViews = false` means `restoreInitialDisplay = true` and the opposite