|
@@ -1,9 +1,11 @@
|
|
|
import UIKit
|
|
|
import Photos
|
|
|
import MobileCoreServices
|
|
|
+import ALCameraViewController
|
|
|
|
|
|
protocol MediaPickerDelegate: class {
|
|
|
func onMediaSelected(url: NSURL)
|
|
|
+ func onImageSelected(image: UIImage)
|
|
|
func onDismiss()
|
|
|
}
|
|
|
|
|
@@ -15,6 +17,22 @@ class MediaPicker: NSObject, UINavigationControllerDelegate, UIImagePickerContro
|
|
|
self.navigationController = navigationController
|
|
|
}
|
|
|
|
|
|
+ func showImageCropper(delegate: MediaPickerDelegate) {
|
|
|
+ let croppingParameters = CroppingParameters(isEnabled: true,
|
|
|
+ allowResizing: true,
|
|
|
+ allowMoving: true,
|
|
|
+ minimumSize: CGSize(width: 70, height: 70))
|
|
|
+
|
|
|
+ let controller = CameraViewController.imagePickerViewController(croppingParameters: croppingParameters,
|
|
|
+ completion: { [weak self] image, asset in
|
|
|
+ if let image = image {
|
|
|
+ self?.delegate?.onImageSelected(image: image)
|
|
|
+ }
|
|
|
+ self?.navigationController.dismiss(animated: true, completion: delegate.onDismiss)})
|
|
|
+ self.delegate = delegate
|
|
|
+ navigationController.present(controller, animated: true, completion: nil)
|
|
|
+ }
|
|
|
+
|
|
|
func showPhotoLibrary(delegate: MediaPickerDelegate) {
|
|
|
if PHPhotoLibrary.authorizationStatus() != .authorized {
|
|
|
PHPhotoLibrary.requestAuthorization { status in
|
|
@@ -39,7 +57,7 @@ class MediaPicker: NSObject, UINavigationControllerDelegate, UIImagePickerContro
|
|
|
photoPicker.title = String.localized("photo")
|
|
|
photoPicker.delegate = self
|
|
|
photoPicker.sourceType = .photoLibrary
|
|
|
- photoPicker.allowsEditing = false
|
|
|
+ photoPicker.allowsEditing = true
|
|
|
photoPicker.mediaTypes = UIImagePickerController.availableMediaTypes(for: .photoLibrary) ?? []
|
|
|
navigationController.present(photoPicker, animated: true, completion: nil)
|
|
|
self.delegate = delegate
|