@@ -12,7 +12,7 @@ import UIKit
12
12
@available ( macCatalyst 14 . 0 , * )
13
13
extension CodeScannerView {
14
14
15
- public class ScannerViewController : UIViewController , UIImagePickerControllerDelegate , UINavigationControllerDelegate , UIAdaptivePresentationControllerDelegate {
15
+ public class ScannerViewController : UIViewController , UINavigationControllerDelegate , UIAdaptivePresentationControllerDelegate {
16
16
private let photoOutput = AVCapturePhotoOutput ( )
17
17
private var isCapturing = false
18
18
private var handler : ( ( UIImage ) -> Void ) ?
@@ -56,45 +56,6 @@ extension CodeScannerView {
56
56
openGallery ( )
57
57
}
58
58
59
- public func imagePickerController( _ picker: UIImagePickerController , didFinishPickingMediaWithInfo info: [ UIImagePickerController . InfoKey : Any ] ) {
60
- isGalleryShowing = false
61
-
62
- if let qrcodeImg = info [ . originalImage] as? UIImage {
63
- let detector = CIDetector ( ofType: CIDetectorTypeQRCode, context: nil , options: [ CIDetectorAccuracy: CIDetectorAccuracyHigh] ) !
64
- let ciImage = CIImage ( image: qrcodeImg) !
65
- var qrCodeLink = " "
66
-
67
- let features = detector. features ( in: ciImage)
68
-
69
- for feature in features as! [ CIQRCodeFeature ] {
70
- qrCodeLink = feature. messageString!
71
- if qrCodeLink == " " {
72
- didFail ( reason: . badOutput)
73
- } else {
74
- let corners = [
75
- feature. bottomLeft,
76
- feature. bottomRight,
77
- feature. topRight,
78
- feature. topLeft
79
- ]
80
- let result = ScanResult ( string: qrCodeLink, type: . qr, image: qrcodeImg, corners: corners)
81
- found ( result)
82
- }
83
-
84
- }
85
-
86
- } else {
87
- print ( " Something went wrong " )
88
- }
89
-
90
- dismiss ( animated: true , completion: nil )
91
- }
92
-
93
- public func imagePickerControllerDidCancel( _ picker: UIImagePickerController ) {
94
- isGalleryShowing = false
95
- dismiss ( animated: true , completion: nil )
96
- }
97
-
98
59
public func presentationControllerDidDismiss( _ presentationController: UIPresentationController ) {
99
60
// Gallery is no longer being presented
100
61
isGalleryShowing = false
@@ -520,6 +481,49 @@ extension CodeScannerView.ScannerViewController: AVCaptureMetadataOutputObjectsD
520
481
}
521
482
}
522
483
484
+ // MARK: - UIImagePickerControllerDelegate
485
+
486
+ extension CodeScannerView . ScannerViewController : UIImagePickerControllerDelegate {
487
+ public func imagePickerController( _ picker: UIImagePickerController , didFinishPickingMediaWithInfo info: [ UIImagePickerController . InfoKey : Any ] ) {
488
+ isGalleryShowing = false
489
+
490
+ if let qrcodeImg = info [ . originalImage] as? UIImage {
491
+ let detector = CIDetector ( ofType: CIDetectorTypeQRCode, context: nil , options: [ CIDetectorAccuracy: CIDetectorAccuracyHigh] ) !
492
+ let ciImage = CIImage ( image: qrcodeImg) !
493
+ var qrCodeLink = " "
494
+
495
+ let features = detector. features ( in: ciImage)
496
+
497
+ for feature in features as! [ CIQRCodeFeature ] {
498
+ qrCodeLink = feature. messageString!
499
+ if qrCodeLink == " " {
500
+ didFail ( reason: . badOutput)
501
+ } else {
502
+ let corners = [
503
+ feature. bottomLeft,
504
+ feature. bottomRight,
505
+ feature. topRight,
506
+ feature. topLeft
507
+ ]
508
+ let result = ScanResult ( string: qrCodeLink, type: . qr, image: qrcodeImg, corners: corners)
509
+ found ( result)
510
+ }
511
+
512
+ }
513
+
514
+ } else {
515
+ print ( " Something went wrong " )
516
+ }
517
+
518
+ dismiss ( animated: true , completion: nil )
519
+ }
520
+
521
+ public func imagePickerControllerDidCancel( _ picker: UIImagePickerController ) {
522
+ isGalleryShowing = false
523
+ dismiss ( animated: true , completion: nil )
524
+ }
525
+ }
526
+
523
527
@available ( macCatalyst 14 . 0 , * )
524
528
extension CodeScannerView . ScannerViewController : AVCapturePhotoCaptureDelegate {
525
529
0 commit comments