session-ios/Session/Signal/UIApplication+OWS.swift

34 lines
1018 B
Swift

//
// Copyright (c) 2019 Open Whisper Systems. All rights reserved.
//
import Foundation
@objc public extension UIApplication {
public var frontmostViewControllerIgnoringAlerts: UIViewController? {
return findFrontmostViewController(ignoringAlerts: true)
}
public var frontmostViewController: UIViewController? {
return findFrontmostViewController(ignoringAlerts: false)
}
internal func findFrontmostViewController(ignoringAlerts: Bool) -> UIViewController? {
guard let window = CurrentAppContext().mainWindow else {
return nil
}
Logger.error("findFrontmostViewController: \(window)")
guard let viewController = window.rootViewController else {
owsFailDebug("Missing root view controller.")
return nil
}
return viewController.findFrontmostViewController(ignoringAlerts)
}
public func openSystemSettings() {
openURL(URL(string: UIApplication.openSettingsURLString)!)
}
}