@@ -18,7 +18,7 @@ extension TLPhotosPickerConfigure {
1818var config = TLPhotosPickerConfigure ( )
1919
2020@objc ( MultipleImagePicker)
21- class MultipleImagePicker : NSObject , TLPhotosPickerViewControllerDelegate , UINavigationControllerDelegate , TLPhotosPickerLogDelegate , CropViewControllerDelegate {
21+ class MultipleImagePicker : NSObject , TLPhotosPickerViewControllerDelegate , UINavigationControllerDelegate {
2222 @objc static func requiresMainQueueSetup( ) -> Bool {
2323 return false
2424 }
@@ -31,37 +31,11 @@ class MultipleImagePicker: NSObject, TLPhotosPickerViewControllerDelegate, UINav
3131 var videoCount = 0
3232 var imageRequestOptions = PHImageRequestOptions ( )
3333 var videoRequestOptions = PHVideoRequestOptions ( )
34-
35- // controller
36-
34+
3735 // resolve/reject assets
3836 var resolve : RCTPromiseResolveBlock !
3937 var reject : RCTPromiseRejectBlock !
4038
41- func selectedCameraCell( picker: TLPhotosPickerViewController ) {
42- let generator = UIImpactFeedbackGenerator ( style: . medium)
43- generator. impactOccurred ( )
44- }
45-
46- func deselectedPhoto( picker: TLPhotosPickerViewController , at: Int ) {
47- let generator = UIImpactFeedbackGenerator ( style: . light)
48- generator. impactOccurred ( )
49- let cell = picker. collectionView ( picker. collectionView, cellForItemAt: IndexPath ( row: at, section: 0 ) ) as! Cell
50- if cell. asset? . mediaType == PHAssetMediaType . video {
51- self . videoCount -= 1
52- }
53- }
54-
55- func selectedPhoto( picker: TLPhotosPickerViewController , at: Int ) {
56- let generator = UIImpactFeedbackGenerator ( style: . medium)
57- generator. impactOccurred ( )
58- }
59-
60- func selectedAlbum( picker: TLPhotosPickerViewController , title: String , at: Int ) {
61- let generator = UIImpactFeedbackGenerator ( style: . medium)
62- generator. impactOccurred ( )
63- }
64-
6539 @objc ( openPicker: withResolver: withRejecter: )
6640 func openPicker( options: NSDictionary , resolve: @escaping RCTPromiseResolveBlock , reject: @escaping RCTPromiseRejectBlock ) {
6741 self . setConfiguration ( options: options, resolve: resolve, reject: reject)
@@ -177,31 +151,6 @@ class MultipleImagePicker: NSObject, TLPhotosPickerViewControllerDelegate, UINav
177151 }
178152 }
179153
180- func cropViewController( _ cropViewController: CropViewController , didCropToImage image: UIImage , withRect cropRect: CGRect , angle: Int ) {
181- let filePath = getImagePathFromUIImage ( uiImage: image, prefix: " crop " )
182- let TLAsset = self . selectedAssets. first
183-
184- // Dismiss twice for crop controller & picker controller
185- DispatchQueue . main. async {
186- self . getTopMostViewController ( ) ? . dismiss ( animated: true , completion: {
187- self . getTopMostViewController ( ) ? . dismiss ( animated: true , completion: {
188- if filePath != " " , TLAsset != nil {
189- self . fetchAsset ( TLAsset: TLAsset!) { object in
190-
191- object. data![ " crop " ] = [
192- " height " : image. size. height,
193- " width " : image. size. width,
194- " path " : filePath,
195- ]
196-
197- self . resolve ( [ object. data] )
198- }
199- }
200- } )
201- } )
202- }
203- }
204-
205154 func presentCropViewController( image: UIImage ) {
206155 let cropViewController = CropViewController ( croppingStyle: ( self . options [ " isCropCircle " ] as! Bool ) ? . circular : . default, image: image)
207156 cropViewController. delegate = self
@@ -336,3 +285,58 @@ extension UIViewController {
336285 return topMostViewController
337286 }
338287}
288+
289+ // TLPhotosPickerLogDelegate
290+ extension MultipleImagePicker : TLPhotosPickerLogDelegate {
291+ func selectedCameraCell( picker: TLPhotosPickerViewController ) {
292+ let generator = UIImpactFeedbackGenerator ( style: . medium)
293+ generator. impactOccurred ( )
294+ }
295+
296+ func deselectedPhoto( picker: TLPhotosPickerViewController , at: Int ) {
297+ let generator = UIImpactFeedbackGenerator ( style: . light)
298+ generator. impactOccurred ( )
299+ let cell = picker. collectionView ( picker. collectionView, cellForItemAt: IndexPath ( row: at, section: 0 ) ) as! Cell
300+ if cell. asset? . mediaType == PHAssetMediaType . video {
301+ self . videoCount -= 1
302+ }
303+ }
304+
305+ func selectedPhoto( picker: TLPhotosPickerViewController , at: Int ) {
306+ let generator = UIImpactFeedbackGenerator ( style: . medium)
307+ generator. impactOccurred ( )
308+ }
309+
310+ func selectedAlbum( picker: TLPhotosPickerViewController , title: String , at: Int ) {
311+ let generator = UIImpactFeedbackGenerator ( style: . medium)
312+ generator. impactOccurred ( )
313+ }
314+ }
315+
316+ // CropViewControllerDelegate
317+ extension MultipleImagePicker : CropViewControllerDelegate {
318+ func cropViewController( _ cropViewController: CropViewController , didCropToImage image: UIImage , withRect cropRect: CGRect , angle: Int ) {
319+ let filePath = getImagePathFromUIImage ( uiImage: image, prefix: " crop " )
320+ let TLAsset = self . selectedAssets. first
321+
322+ // Dismiss twice for crop controller & picker controller
323+ DispatchQueue . main. async {
324+ self . getTopMostViewController ( ) ? . dismiss ( animated: true , completion: {
325+ self . getTopMostViewController ( ) ? . dismiss ( animated: true , completion: {
326+ if filePath != " " , TLAsset != nil {
327+ self . fetchAsset ( TLAsset: TLAsset!) { object in
328+
329+ object. data![ " crop " ] = [
330+ " height " : image. size. height,
331+ " width " : image. size. width,
332+ " path " : filePath,
333+ ]
334+
335+ self . resolve ( [ object. data] )
336+ }
337+ }
338+ } )
339+ } )
340+ }
341+ }
342+ }
0 commit comments