|  |  |  | // Copyright © 2022 Rangeproof Pty Ltd. All rights reserved. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | import Foundation | 
					
						
							|  |  |  | import SessionUtilitiesKit | 
					
						
							|  |  |  | import UIKit | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | @objc public extension UIApplication { | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     var frontmostViewControllerIgnoringAlerts: UIViewController? { | 
					
						
							|  |  |  |         return findFrontmostViewController(ignoringAlerts: true) | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     var frontmostViewController: UIViewController? { | 
					
						
							|  |  |  |         return findFrontmostViewController(ignoringAlerts: false) | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     internal func findFrontmostViewController(ignoringAlerts: Bool) -> UIViewController? { | 
					
						
							|  |  |  |         guard let window: UIWindow = CurrentAppContext().mainWindow else { return nil } | 
					
						
							|  |  |  |          | 
					
						
							|  |  |  |         guard let viewController: UIViewController = window.rootViewController else { | 
					
						
							|  |  |  |             owsFailDebug("Missing root view controller.") | 
					
						
							|  |  |  |             return nil | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |         return viewController.findFrontmostViewController(ignoringAlerts: ignoringAlerts) | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     func openSystemSettings() { | 
					
						
							|  |  |  |         open(URL(string: UIApplication.openSettingsURLString)!, options: [:], completionHandler: nil) | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | } |