marinofaggiana 6 жил өмнө
parent
commit
5cf15bcd57

+ 11 - 1
iOSClient/Login/CCLogin.m

@@ -27,7 +27,7 @@
 #import "NCBridgeSwift.h"
 #import "NCNetworkingEndToEnd.h"
 
-@interface CCLogin () <CCLoginDelegateWeb>
+@interface CCLogin () <CCLoginDelegateWeb, NCLoginQRCodeDelegate>
 {
     AppDelegate *appDelegate;
     UIView *rootView;
@@ -252,6 +252,16 @@
     }
 }
 
+
+#pragma --------------------------------------------------------------------------------------------
+#pragma mark === NCLoginQRCodeDelegate ===
+#pragma --------------------------------------------------------------------------------------------
+
+- (void)dismissQRCode:(NSString *)value metadataType:(NSString *)metadataType
+{
+    
+}
+
 #pragma --------------------------------------------------------------------------------------------
 #pragma mark === CCLoginDelegateWeb ===
 #pragma --------------------------------------------------------------------------------------------

+ 2 - 1
iOSClient/Login/CCLogin.storyboard

@@ -126,7 +126,7 @@
                             </button>
                             <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="6tp-bh-Z9k" userLabel="QRCode">
                                 <rect key="frame" x="194.66666666666666" y="440.66666666666669" width="25" height="25"/>
-                                <state key="normal" image="loginURL"/>
+                                <state key="normal" image="autoUpload"/>
                                 <connections>
                                     <action selector="handleQRCode:" destination="yj9-jo-WIn" eventType="touchUpInside" id="IW6-a9-880"/>
                                 </connections>
@@ -189,6 +189,7 @@
         </scene>
     </scenes>
     <resources>
+        <image name="autoUpload" width="25" height="25"/>
         <image name="loginPassword" width="25" height="25"/>
         <image name="loginURL" width="25" height="25"/>
         <image name="loginUser" width="25" height="25"/>

+ 17 - 5
iOSClient/Login/NCLoginQRCode.swift

@@ -24,18 +24,23 @@
 import Foundation
 import QRCodeReader
 
+@objc public protocol NCLoginQRCodeDelegate {
+    @objc func dismissQRCode(_ value: String?, metadataType: String?)
+}
+
 class NCLoginQRCode: NSObject, QRCodeReaderViewControllerDelegate {
     
     lazy var reader: QRCodeReader = QRCodeReader()
+    
     weak var delegate: UIViewController?
     
     lazy var readerVC: QRCodeReaderViewController = {
         let builder = QRCodeReaderViewControllerBuilder {
-            $0.reader                  = QRCodeReader(metadataObjectTypes: [.qr], captureDevicePosition: .back)
-            $0.showTorchButton         = true
+            $0.reader = QRCodeReader(metadataObjectTypes: [.qr], captureDevicePosition: .back)
+            $0.showTorchButton = true
             $0.preferredStatusBarStyle = .lightContent
-            $0.showOverlayView        = true
-            $0.rectOfInterest          = CGRect(x: 0.2, y: 0.2, width: 0.6, height: 0.6)
+            $0.showOverlayView = true
+            $0.rectOfInterest = CGRect(x: 0.2, y: 0.2, width: 0.6, height: 0.6)
             
             $0.reader.stopScanningWhenCodeIsFound = false
         }
@@ -55,12 +60,15 @@ class NCLoginQRCode: NSObject, QRCodeReaderViewControllerDelegate {
         guard checkScanPermissions() else { return }
         
         readerVC.modalPresentationStyle = .formSheet
-        readerVC.delegate               = self
+        readerVC.delegate = self
         
         readerVC.completionBlock = { (result: QRCodeReaderResult?) in
             if let result = result {
                 print("Completion with result: \(result.value) of type \(result.metadataType)")
+            } else {
+                
             }
+            self.readerVC.dismiss(animated: true, completion: nil)
         }
         
         delegate?.present(readerVC, animated: true, completion: nil)
@@ -98,9 +106,13 @@ class NCLoginQRCode: NSObject, QRCodeReaderViewControllerDelegate {
     
     func reader(_ reader: QRCodeReaderViewController, didScanResult result: QRCodeReaderResult) {
         reader.stopScanning()
+        
+        (self.delegate as? NCLoginQRCodeDelegate)?.dismissQRCode(result.value, metadataType: result.metadataType)
     }
     
     func readerDidCancel(_ reader: QRCodeReaderViewController) {
         reader.stopScanning()
+        
+        (self.delegate as? NCLoginQRCodeDelegate)?.dismissQRCode(nil, metadataType: nil)
     }
 }