element-ios/Riot/Modules/Application/ScreenNavigation/ScreenPresentationParameters.swift
2021-10-21 16:16:32 +02:00

65 lines
2.4 KiB
Swift

//
// Copyright 2021 New Vector Ltd
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
import Foundation
/// Screen presentation parameters used when a universal link is triggered
@objcMembers
class ScreenPresentationParameters: NSObject {
// MARK: - Properties
/// 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
/// The object that triggers the universal link action.
let sender: AnyObject?
/// The view containing the anchor rectangle for the popover. Useful for iPad if a universlink trigger a pop over.
let sourceView: UIView?
/// The view controller from which the universal link is triggered. `nil` if triggered from some other kind of object.
var presentingViewController: UIViewController? {
return self.sender as? UIViewController
}
// MARK: - Properties
init(restoreInitialDisplay: Bool,
stackAboveVisibleViews: Bool,
sender: AnyObject?,
sourceView: UIView?) {
self.restoreInitialDisplay = restoreInitialDisplay
self.stackAboveVisibleViews = stackAboveVisibleViews
self.sender = sender
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)
}
}