import UIKit import TelegramUI import BuildConfig import ShareExtensionContext import SwiftSignalKit import Postbox import TelegramCore @objc(ShareRootController) class ShareRootController: UIViewController { private var impl: ShareRootControllerImpl? override init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: Bundle?) { super.init(nibName: nibNameOrNil, bundle: nibBundleOrNil) self.modalPresentationStyle = .fullScreen } required init?(coder: NSCoder) { fatalError("init(coder:) has not been implemented") } override func loadView() { super.loadView() if self.impl == nil { let appBundleIdentifier = Bundle.main.bundleIdentifier! guard let lastDotRange = appBundleIdentifier.range(of: ".", options: [.backwards]) else { return } let baseAppBundleId = String(appBundleIdentifier[.. Bool { var responder: UIResponder? = self while responder != nil { if let application = responder as? UIApplication { if #available(iOS 18.0, *) { application.open(url, options: [:], completionHandler: nil) return true } else { return application.perform(#selector(openURL(_:)), with: url) != nil } } responder = responder?.next } return false } }