import Foundation import UIKit import Display import LegacyComponents import TelegramPresentationData import LegacyUI private final class LegacyImagePickerController: LegacyController, TGLegacyCameraControllerDelegate, TGImagePickerControllerDelegate { private let completion: (UIImage?) -> Void init(presentation: LegacyControllerPresentation, theme: PresentationTheme?, completion: @escaping (UIImage?) -> Void) { self.completion = completion super.init(presentation: presentation, theme: theme) } required public init(coder aDecoder: NSCoder) { fatalError("init(coder:) has not been implemented") } override func viewDidLoad() { super.viewDidLoad() self.view.disablesInteractiveModalDismiss = true } func legacyCameraControllerCompletedWithNoResult() { self.completion(nil) } func imagePickerController(_ imagePicker: TGImagePickerController!, didFinishPickingWithAssets assets: [Any]!) { if let image = assets.first as? UIImage { self.completion(image) } else { self.completion(nil) } } } func legacyImagePicker(theme: PresentationTheme, completion: @escaping (UIImage?) -> Void) -> ViewController { let legacyController = LegacyImagePickerController(presentation: .modal(animateIn: true), theme: theme, completion: { image in completion(image) }) let imagePickerController = TGLegacyCameraController(context: legacyController.context)! imagePickerController.sourceType = UIImagePickerController.SourceType.photoLibrary imagePickerController.completionDelegate = legacyController legacyController.bind(controller: imagePickerController) return legacyController }