Commit 2f8c8326 authored by Nguyen Huy Nhat Anh's avatar Nguyen Huy Nhat Anh

add crop image ipad

parent 529a1ac4
...@@ -723,6 +723,10 @@ ...@@ -723,6 +723,10 @@
DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1; DYLIB_CURRENT_VERSION = 1;
DYLIB_INSTALL_NAME_BASE = "@rpath"; DYLIB_INSTALL_NAME_BASE = "@rpath";
HEADER_SEARCH_PATHS = (
"$(inherited)",
"${SRCROOT}/TensorFlowLite",
);
INFOPLIST_FILE = "OCR-SDK/Info.plist"; INFOPLIST_FILE = "OCR-SDK/Info.plist";
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
IPHONEOS_DEPLOYMENT_TARGET = 11.0; IPHONEOS_DEPLOYMENT_TARGET = 11.0;
...@@ -734,6 +738,7 @@ ...@@ -734,6 +738,7 @@
PRODUCT_BUNDLE_IDENTIFIER = "itsol.OCR-SDK"; PRODUCT_BUNDLE_IDENTIFIER = "itsol.OCR-SDK";
PRODUCT_NAME = SB_KYC_SDK; PRODUCT_NAME = SB_KYC_SDK;
SKIP_INSTALL = YES; SKIP_INSTALL = YES;
SWIFT_INCLUDE_PATHS = "${SRCROOT}/TensorFlowLite\n\n\nType a message\n${SRCROOT}/TensorFlowLite\n\n\nType a message${SRCROOT}/TensorFlowLite\n\n\nType a message\n";
SWIFT_VERSION = 5.0; SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2"; TARGETED_DEVICE_FAMILY = "1,2";
}; };
...@@ -750,6 +755,10 @@ ...@@ -750,6 +755,10 @@
DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1; DYLIB_CURRENT_VERSION = 1;
DYLIB_INSTALL_NAME_BASE = "@rpath"; DYLIB_INSTALL_NAME_BASE = "@rpath";
HEADER_SEARCH_PATHS = (
"$(inherited)",
"${SRCROOT}/TensorFlowLite",
);
INFOPLIST_FILE = "OCR-SDK/Info.plist"; INFOPLIST_FILE = "OCR-SDK/Info.plist";
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
IPHONEOS_DEPLOYMENT_TARGET = 11.0; IPHONEOS_DEPLOYMENT_TARGET = 11.0;
...@@ -761,6 +770,7 @@ ...@@ -761,6 +770,7 @@
PRODUCT_BUNDLE_IDENTIFIER = "itsol.OCR-SDK"; PRODUCT_BUNDLE_IDENTIFIER = "itsol.OCR-SDK";
PRODUCT_NAME = SB_KYC_SDK; PRODUCT_NAME = SB_KYC_SDK;
SKIP_INSTALL = YES; SKIP_INSTALL = YES;
SWIFT_INCLUDE_PATHS = "${SRCROOT}/TensorFlowLite\n\n\nType a message\n${SRCROOT}/TensorFlowLite\n\n\nType a message${SRCROOT}/TensorFlowLite\n\n\nType a message\n";
SWIFT_VERSION = 5.0; SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2"; TARGETED_DEVICE_FAMILY = "1,2";
}; };
......
...@@ -11,7 +11,7 @@ import UIKit ...@@ -11,7 +11,7 @@ import UIKit
public class SB_KYC_SDK { public class SB_KYC_SDK {
public static let shared = SB_KYC_SDK() public static let shared = SB_KYC_SDK()
public typealias CompletionHandle = (_ data: [String: Any]?) -> Void public typealias CompletionHandle = (_ data: [String: Any]?, _ cardImage: Data?, _ faceImage: Data?) -> Void
public typealias CompletionHandleFace = (_ data: Bool) -> Void public typealias CompletionHandleFace = (_ data: Bool) -> Void
let viewController = SBKTutorialVC(URLToken: "http://sdk.sb.gotai.ml") let viewController = SBKTutorialVC(URLToken: "http://sdk.sb.gotai.ml")
...@@ -38,9 +38,9 @@ public class SB_KYC_SDK { ...@@ -38,9 +38,9 @@ public class SB_KYC_SDK {
Global.ratioPass = Float(ratio) Global.ratioPass = Float(ratio)
Global.useFileCer = sdkConfig[""] as? Bool ?? Global.useFileCer Global.useFileCer = sdkConfig[""] as? Bool ?? Global.useFileCer
self.viewController.completionSuccessTutorial = { [weak self] data in self.viewController.completionSuccessTutorial = { [weak self] data, cardImage, faceImage in
guard self != nil else { return } guard self != nil else { return }
completion(data) completion(data, cardImage, faceImage)
} }
viewCurrent.navigationController?.pushViewController(self.viewController, animated: true) viewCurrent.navigationController?.pushViewController(self.viewController, animated: true)
viewCurrent.navigationController?.setNavigationBarHidden(false, animated: false) viewCurrent.navigationController?.setNavigationBarHidden(false, animated: false)
...@@ -87,14 +87,14 @@ public class SB_KYC_SDK { ...@@ -87,14 +87,14 @@ public class SB_KYC_SDK {
SBOCRRequest.shared.processFace(image: imageFaceUI! , pathURL: Global.url_face, idBack: "", idFront: "") {(errorCode,data) -> Void in SBOCRRequest.shared.processFace(image: imageFaceUI! , pathURL: Global.url_face, idBack: "", idFront: "") {(errorCode,data) -> Void in
guard errorCode == nil else { guard errorCode == nil else {
let error: [String: Any] = ["error": errorCode!] let error: [String: Any] = ["error": errorCode!]
completion(error) completion(error, nil, nil)
return return
} }
completion(data) completion(data, nil, nil)
} }
} else { } else {
let error: [String: Any] = ["error": "image faild"] let error: [String: Any] = ["error": "image faild"]
completion(error) completion(error, nil, nil)
} }
} }
} }
......
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="16097" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES"> <document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="17156" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
<device id="retina4_0" orientation="portrait" appearance="light"/> <device id="retina4_0" orientation="portrait" appearance="light"/>
<dependencies> <dependencies>
<deployment identifier="iOS"/> <deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="16087"/> <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="17125"/>
<capability name="Safe area layout guides" minToolsVersion="9.0"/> <capability name="Safe area layout guides" minToolsVersion="9.0"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies> </dependencies>
...@@ -41,9 +41,9 @@ ...@@ -41,9 +41,9 @@
</connections> </connections>
</button> </button>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Scan ID card" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="mDW-6Q-7Q8"> <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Scan ID card" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="mDW-6Q-7Q8">
<rect key="frame" x="111.5" y="13.5" width="97.5" height="21"/> <rect key="frame" x="112" y="13.5" width="96.5" height="21"/>
<fontDescription key="fontDescription" type="system" pointSize="17"/> <fontDescription key="fontDescription" type="system" pointSize="17"/>
<nil key="textColor"/> <color key="textColor" white="0.0" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<nil key="highlightedColor"/> <nil key="highlightedColor"/>
</label> </label>
</subviews> </subviews>
...@@ -127,6 +127,7 @@ ...@@ -127,6 +127,7 @@
</connections> </connections>
</button> </button>
</subviews> </subviews>
<viewLayoutGuide key="safeArea" id="fnl-2z-Ty3"/>
<color key="backgroundColor" red="0.88784521819999995" green="0.96387571100000002" blue="0.98960381750000004" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> <color key="backgroundColor" red="0.88784521819999995" green="0.96387571100000002" blue="0.98960381750000004" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<constraints> <constraints>
<constraint firstItem="iFg-0d-HQS" firstAttribute="top" secondItem="s0F-Op-Skc" secondAttribute="bottom" constant="30" id="0Hf-DN-0E8"/> <constraint firstItem="iFg-0d-HQS" firstAttribute="top" secondItem="s0F-Op-Skc" secondAttribute="bottom" constant="30" id="0Hf-DN-0E8"/>
...@@ -149,7 +150,6 @@ ...@@ -149,7 +150,6 @@
<constraint firstItem="5Kv-HH-7wN" firstAttribute="centerY" secondItem="iFg-0d-HQS" secondAttribute="centerY" id="wBh-u4-atm"/> <constraint firstItem="5Kv-HH-7wN" firstAttribute="centerY" secondItem="iFg-0d-HQS" secondAttribute="centerY" id="wBh-u4-atm"/>
<constraint firstItem="wWe-FJ-IbP" firstAttribute="top" secondItem="fnl-2z-Ty3" secondAttribute="top" id="zVg-x6-hYK"/> <constraint firstItem="wWe-FJ-IbP" firstAttribute="top" secondItem="fnl-2z-Ty3" secondAttribute="top" id="zVg-x6-hYK"/>
</constraints> </constraints>
<viewLayoutGuide key="safeArea" id="fnl-2z-Ty3"/>
<point key="canvasLocation" x="133" y="154"/> <point key="canvasLocation" x="133" y="154"/>
</view> </view>
</objects> </objects>
......
...@@ -31,7 +31,7 @@ class SBKCaptureCardVC: UIViewController, AVCapturePhotoCaptureDelegate { ...@@ -31,7 +31,7 @@ class SBKCaptureCardVC: UIViewController, AVCapturePhotoCaptureDelegate {
var statusScreen: String = "vertical" //horizontal var statusScreen: String = "vertical" //horizontal
let validateInput = SBKValidateInput.shared let validateInput = SBKValidateInput.shared
var completionSuccessCard: ([String:Any])->Void = {_ in} var completionSuccessCard: (_ data: [String: Any]?, _ cardImage: Data?, _ faceImage: Data?) -> Void = {_,_,_ in}
override func viewDidLoad() { override func viewDidLoad() {
super.viewDidLoad() super.viewDidLoad()
...@@ -178,15 +178,17 @@ class SBKCaptureCardVC: UIViewController, AVCapturePhotoCaptureDelegate { ...@@ -178,15 +178,17 @@ class SBKCaptureCardVC: UIViewController, AVCapturePhotoCaptureDelegate {
self.captureSession.removeOutput(self.videoDataOutput) self.captureSession.removeOutput(self.videoDataOutput)
self.captureSession.removeOutput(self.stillImageOutput) self.captureSession.removeOutput(self.stillImageOutput)
print("data image", imageData, "==", UIImage(data: imageData))
let viewController = SBKResultCapture() let viewController = SBKResultCapture()
viewController.imageData = imageData viewController.imageData = imageData
viewController.checkScreen = self.checkScreen viewController.checkScreen = self.checkScreen
viewController.idFront = self.idFront viewController.idFront = self.idFront
viewController.URLToken = self.URLToken viewController.URLToken = self.URLToken
viewController.statusScreen = self.statusScreen viewController.statusScreen = self.statusScreen
viewController.completionSuccessResultCard = { [weak self] data in viewController.completionSuccessResultCard = { [weak self] data, cardImage, faceImage in
guard let `self` = self else { return } guard let `self` = self else { return }
self.completionSuccessCard(data) self.completionSuccessCard(data, cardImage, faceImage)
} }
self.navigationController?.pushViewController(viewController, animated: true) self.navigationController?.pushViewController(viewController, animated: true)
...@@ -209,8 +211,8 @@ class SBKCaptureCardVC: UIViewController, AVCapturePhotoCaptureDelegate { ...@@ -209,8 +211,8 @@ class SBKCaptureCardVC: UIViewController, AVCapturePhotoCaptureDelegate {
let validateView = SBKValidateInput.shared let validateView = SBKValidateInput.shared
let imageInput = validateView.convertCVPixelToUIImage(pixelBuffer: pixelBuffer) let imageInput = validateView.convertCVPixelToUIImage(pixelBuffer: pixelBuffer)
var imageOutput: UIImage? var imageOutput: UIImage?
if self.statusScreen == "horizontal" { if UIDevice.current.userInterfaceIdiom == .pad {
imageOutput = validateView.cropImageHorizontal(image: imageInput, rect: CGRect(x: imageInput.size.width * 1 / 10, y: imageInput.size.height * 3 / 20, width: imageInput.size.width * 8 / 10, height: imageInput.size.height * 9 / 10), scale: 1.0) imageOutput = validateView.cropImage(image: imageInput, rect: CGRect(x: imageInput.size.width / 20, y: imageInput.size.height / 8, width: imageInput.size.width * 18 / 20, height: imageInput.size.width * 18 / 20 * 3 / 4), scale: 1.0)
} else { } else {
imageOutput = validateView.cropImage(image: imageInput, rect: CGRect(x: imageInput.size.width / 20, y: imageInput.size.height / 8, width: imageInput.size.width * 18 / 20, height: imageInput.size.width * 18 / 20 * 3 / 4), scale: 1.0) imageOutput = validateView.cropImage(image: imageInput, rect: CGRect(x: imageInput.size.width / 20, y: imageInput.size.height / 8, width: imageInput.size.width * 18 / 20, height: imageInput.size.width * 18 / 20 * 3 / 4), scale: 1.0)
} }
......
...@@ -24,7 +24,7 @@ class SBKCaptureFaceVC: UIViewController, AVCapturePhotoCaptureDelegate { ...@@ -24,7 +24,7 @@ class SBKCaptureFaceVC: UIViewController, AVCapturePhotoCaptureDelegate {
@IBOutlet weak var lbCopyright: UILabel! @IBOutlet weak var lbCopyright: UILabel!
@IBOutlet weak var viewOval: UIView! @IBOutlet weak var viewOval: UIView!
var completionSuccessFace: ([String:Any])->Void = {_ in} var completionSuccessFace: (_ data: [String: Any]?, _ cardImage: Data?, _ faceImage: Data?) -> Void = {_,_,_ in}
// var validateFace: (Bool) -> Void = {_ in} // var validateFace: (Bool) -> Void = {_ in}
// var checkFace: (Bool) -> Void = {_ in} // var checkFace: (Bool) -> Void = {_ in}
...@@ -210,9 +210,9 @@ class SBKCaptureFaceVC: UIViewController, AVCapturePhotoCaptureDelegate { ...@@ -210,9 +210,9 @@ class SBKCaptureFaceVC: UIViewController, AVCapturePhotoCaptureDelegate {
viewController.idBack = self.idBack viewController.idBack = self.idBack
viewController.URLToken = self.URLToken viewController.URLToken = self.URLToken
viewController.completionSuccessFaceData = { [weak self] data in viewController.completionSuccessFaceData = { [weak self] data, cardImage, faceImage in
guard let `self` = self else { return } guard let `self` = self else { return }
self.completionSuccessFace(data) self.completionSuccessFace(data, cardImage, faceImage)
} }
self.navigationController?.pushViewController(viewController, animated: true) self.navigationController?.pushViewController(viewController, animated: true)
......
...@@ -43,7 +43,7 @@ class SBKRecordFace: UIViewController, AVCaptureVideoDataOutputSampleBufferDeleg ...@@ -43,7 +43,7 @@ class SBKRecordFace: UIViewController, AVCaptureVideoDataOutputSampleBufferDeleg
var idFront: String = "" var idFront: String = ""
var idBack: String = "" var idBack: String = ""
var URLToken: String = "" var URLToken: String = ""
public var completionSuccessFaceRecord: ([String:Any])->Void = {_ in} public var completionSuccessFaceRecord: (_ data: [String: Any]?, _ cardImage: Data?, _ faceImage: Data?) -> Void = {_,_,_ in}
override func viewDidLoad() { override func viewDidLoad() {
super.viewDidLoad() super.viewDidLoad()
...@@ -147,6 +147,28 @@ class SBKRecordFace: UIViewController, AVCaptureVideoDataOutputSampleBufferDeleg ...@@ -147,6 +147,28 @@ class SBKRecordFace: UIViewController, AVCaptureVideoDataOutputSampleBufferDeleg
self.lbDescription.text = "Incorrect face, please check!".localized() self.lbDescription.text = "Incorrect face, please check!".localized()
} }
} }
} else {
if result![0] < result![1] {
DispatchQueue.main.async {
self.checkStartRecord = true
self.lbDescription.textColor = UIColor.white
//self.lbDescription.text = "Are you ready. Let's start!".localized()//"Bạn đã sẵn sàng. Hãy bắt đầu!"
if !self.checkStatusRecord {
self.checkStatusRecord = true
self.timeRecord = 0
self.checkStep = 0
self.viewCheckStep1.backgroundColor = UIColor.colorFromHexa("#333333")
self.viewCheckStep2.backgroundColor = UIColor.colorFromHexa("#333333")
self.viewCheckStep3.backgroundColor = UIColor.colorFromHexa("#333333")
}
}
} else {
DispatchQueue.main.async {
self.checkStartRecord = false
self.lbDescription.textColor = UIColor.red
self.lbDescription.text = "Incorrect face, please check!".localized()
}
}
} }
} }
...@@ -251,6 +273,7 @@ class SBKRecordFace: UIViewController, AVCaptureVideoDataOutputSampleBufferDeleg ...@@ -251,6 +273,7 @@ class SBKRecordFace: UIViewController, AVCaptureVideoDataOutputSampleBufferDeleg
private func detectFace(in image: CVPixelBuffer) { private func detectFace(in image: CVPixelBuffer) {
let faceDetectionRequest = VNDetectFaceLandmarksRequest(completionHandler: { (request: VNRequest, error: Error?) in let faceDetectionRequest = VNDetectFaceLandmarksRequest(completionHandler: { (request: VNRequest, error: Error?) in
DispatchQueue.main.async { DispatchQueue.main.async {
DispatchQueue.main.asyncAfter(deadline: .now() + 1.0) {
if (request.results as? [VNFaceObservation]) != nil { if (request.results as? [VNFaceObservation]) != nil {
if let results = request.results as? [VNFaceObservation], results.count > 0 { if let results = request.results as? [VNFaceObservation], results.count > 0 {
...@@ -261,19 +284,20 @@ class SBKRecordFace: UIViewController, AVCaptureVideoDataOutputSampleBufferDeleg ...@@ -261,19 +284,20 @@ class SBKRecordFace: UIViewController, AVCaptureVideoDataOutputSampleBufferDeleg
let statusString = self.checkFaceRightLeft(landmarks: results[0].landmarks!) let statusString = self.checkFaceRightLeft(landmarks: results[0].landmarks!)
self.startTimer() self.startTimer()
if !self.checkStartRecord && !self.checkStatusRecord {
self.checkStartRecord = true // if !self.checkStartRecord && !self.checkStatusRecord {
self.lbDescription.textColor = UIColor.white // self.checkStartRecord = true
//self.lbDescription.text = "Are you ready. Let's start!".localized()//"Bạn đã sẵn sàng. Hãy bắt đầu!" // self.lbDescription.textColor = UIColor.white
if !self.checkStatusRecord { // //self.lbDescription.text = "Are you ready. Let's start!".localized()//"Bạn đã sẵn sàng. Hãy bắt đầu!"
self.checkStatusRecord = true // if !self.checkStatusRecord {
self.timeRecord = 0 // self.checkStatusRecord = true
self.checkStep = 0 // self.timeRecord = 0
self.viewCheckStep1.backgroundColor = UIColor.colorFromHexa("#333333") // self.checkStep = 0
self.viewCheckStep2.backgroundColor = UIColor.colorFromHexa("#333333") // self.viewCheckStep1.backgroundColor = UIColor.colorFromHexa("#333333")
self.viewCheckStep3.backgroundColor = UIColor.colorFromHexa("#333333") // self.viewCheckStep2.backgroundColor = UIColor.colorFromHexa("#333333")
} // self.viewCheckStep3.backgroundColor = UIColor.colorFromHexa("#333333")
} // }
// }
DispatchQueue.global().async { DispatchQueue.global().async {
self.didOutput(pixelBuffer: image, statusFace: statusString) self.didOutput(pixelBuffer: image, statusFace: statusString)
...@@ -295,7 +319,7 @@ class SBKRecordFace: UIViewController, AVCaptureVideoDataOutputSampleBufferDeleg ...@@ -295,7 +319,7 @@ class SBKRecordFace: UIViewController, AVCaptureVideoDataOutputSampleBufferDeleg
} }
} }
} }
} }}
}) })
if #available(iOS 12.0, *) { if #available(iOS 12.0, *) {
...@@ -332,9 +356,9 @@ class SBKRecordFace: UIViewController, AVCaptureVideoDataOutputSampleBufferDeleg ...@@ -332,9 +356,9 @@ class SBKRecordFace: UIViewController, AVCaptureVideoDataOutputSampleBufferDeleg
viewController.idBack = self.idBack viewController.idBack = self.idBack
viewController.URLToken = self.URLToken viewController.URLToken = self.URLToken
viewController.dataImageSuccess = self.dataImageSuccess viewController.dataImageSuccess = self.dataImageSuccess
viewController.completionSuccessFaceData = { [weak self] data in viewController.completionSuccessFaceData = { [weak self] data, cardImage, faceImage in
guard let `self` = self else { return } guard let `self` = self else { return }
self.completionSuccessFaceRecord(data) self.completionSuccessFaceRecord(data, cardImage, faceImage)
} }
self.timeRecord = 0 self.timeRecord = 0
self.checkStep = 0 self.checkStep = 0
......
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="16097" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES"> <document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="17156" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
<device id="retina6_5" orientation="portrait" appearance="light"/> <device id="retina6_5" orientation="portrait" appearance="light"/>
<dependencies> <dependencies>
<deployment identifier="iOS"/> <deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="16087"/> <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="17125"/>
<capability name="Safe area layout guides" minToolsVersion="9.0"/> <capability name="Safe area layout guides" minToolsVersion="9.0"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies> </dependencies>
...@@ -49,9 +49,9 @@ ...@@ -49,9 +49,9 @@
</connections> </connections>
</button> </button>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Scan your face" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="iF4-Or-Bd6"> <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Scan your face" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="iF4-Or-Bd6">
<rect key="frame" x="150.33333333333334" y="11.999999999999998" width="113.66666666666666" height="20.333333333333329"/> <rect key="frame" x="150.33333333333334" y="11.999999999999998" width="113.33333333333334" height="20.333333333333329"/>
<fontDescription key="fontDescription" type="system" pointSize="17"/> <fontDescription key="fontDescription" type="system" pointSize="17"/>
<nil key="textColor"/> <color key="textColor" white="0.0" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<nil key="highlightedColor"/> <nil key="highlightedColor"/>
</label> </label>
</subviews> </subviews>
...@@ -111,10 +111,10 @@ ...@@ -111,10 +111,10 @@
</constraints> </constraints>
</imageView> </imageView>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="mYW-LC-gXD"> <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="mYW-LC-gXD">
<rect key="frame" x="172.66666666666666" y="771.33333333333337" width="68.666666666666657" height="20.333333333333371"/> <rect key="frame" x="173" y="771.33333333333337" width="68.333333333333314" height="20.333333333333371"/>
<subviews> <subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Step 3/3" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="AZY-QZ-V1U"> <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Step 3/3" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="AZY-QZ-V1U">
<rect key="frame" x="9.9999999999999964" y="3.0000000000000009" width="48.666666666666657" height="14.333333333333336"/> <rect key="frame" x="10.000000000000004" y="3.0000000000000009" width="48.333333333333343" height="14.333333333333336"/>
<fontDescription key="fontDescription" type="system" pointSize="12"/> <fontDescription key="fontDescription" type="system" pointSize="12"/>
<color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> <color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<nil key="highlightedColor"/> <nil key="highlightedColor"/>
...@@ -140,6 +140,7 @@ ...@@ -140,6 +140,7 @@
<nil key="highlightedColor"/> <nil key="highlightedColor"/>
</label> </label>
</subviews> </subviews>
<viewLayoutGuide key="safeArea" id="TI8-zP-E4o"/>
<color key="backgroundColor" red="0.88784521819999995" green="0.96387571100000002" blue="0.98960381750000004" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> <color key="backgroundColor" red="0.88784521819999995" green="0.96387571100000002" blue="0.98960381750000004" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<constraints> <constraints>
<constraint firstItem="5Z6-br-pb7" firstAttribute="centerX" secondItem="TI8-zP-E4o" secondAttribute="centerX" id="0Uk-6w-soF"/> <constraint firstItem="5Z6-br-pb7" firstAttribute="centerX" secondItem="TI8-zP-E4o" secondAttribute="centerX" id="0Uk-6w-soF"/>
...@@ -168,7 +169,6 @@ ...@@ -168,7 +169,6 @@
<constraint firstItem="gxX-Gl-8oL" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" constant="10" id="tIq-Or-5Bt"/> <constraint firstItem="gxX-Gl-8oL" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" constant="10" id="tIq-Or-5Bt"/>
<constraint firstItem="RCk-ff-zkC" firstAttribute="leading" secondItem="TI8-zP-E4o" secondAttribute="leading" id="teq-EN-Mp0"/> <constraint firstItem="RCk-ff-zkC" firstAttribute="leading" secondItem="TI8-zP-E4o" secondAttribute="leading" id="teq-EN-Mp0"/>
</constraints> </constraints>
<viewLayoutGuide key="safeArea" id="TI8-zP-E4o"/>
<point key="canvasLocation" x="131.25" y="153.16901408450704"/> <point key="canvasLocation" x="131.25" y="153.16901408450704"/>
</view> </view>
</objects> </objects>
......
...@@ -25,7 +25,7 @@ class SBKResultFaceVC: UIViewController { ...@@ -25,7 +25,7 @@ class SBKResultFaceVC: UIViewController {
var validateImage: Bool = true var validateImage: Bool = true
var dataPush: [String:Any]? var dataPush: [String:Any]?
static let shared = SBKResultFaceVC() static let shared = SBKResultFaceVC()
var completionSuccessFaceData: ([String:Any])->Void = {_ in} var completionSuccessFaceData: (_ data: [String: Any]?, _ cardImage: Data?, _ faceImage: Data?) -> Void = {_,_,_ in}
override func viewDidLoad() { override func viewDidLoad() {
super.viewDidLoad() super.viewDidLoad()
...@@ -97,7 +97,9 @@ class SBKResultFaceVC: UIViewController { ...@@ -97,7 +97,9 @@ class SBKResultFaceVC: UIViewController {
} }
return return
} }
self.completionSuccessFaceData(data!) DispatchQueue.main.async {
self.completionSuccessFaceData(data!, Global.imageCard1, self.imgFace.image!.pngData()!)
}
} }
} }
......
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="16097" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES"> <document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="17156" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
<device id="retina4_7" orientation="portrait" appearance="light"/> <device id="retina4_7" orientation="portrait" appearance="light"/>
<dependencies> <dependencies>
<deployment identifier="iOS"/> <deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="16087"/> <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="17125"/>
<capability name="Safe area layout guides" minToolsVersion="9.0"/> <capability name="Safe area layout guides" minToolsVersion="9.0"/>
<capability name="System colors in document resources" minToolsVersion="11.0"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies> </dependencies>
<objects> <objects>
...@@ -22,6 +23,9 @@ ...@@ -22,6 +23,9 @@
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/> <rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews> <subviews>
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="back_light.png" translatesAutoresizingMaskIntoConstraints="NO" id="azs-9d-VhT">
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
</imageView>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="IVc-JQ-1gz"> <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="IVc-JQ-1gz">
<rect key="frame" x="0.0" y="0.0" width="375" height="44"/> <rect key="frame" x="0.0" y="0.0" width="375" height="44"/>
<subviews> <subviews>
...@@ -38,7 +42,7 @@ ...@@ -38,7 +42,7 @@
</connections> </connections>
</button> </button>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Scan your face" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Hrc-lO-elK"> <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Scan your face" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Hrc-lO-elK">
<rect key="frame" x="130.5" y="12" width="114" height="20.5"/> <rect key="frame" x="131" y="12" width="113.5" height="20.5"/>
<fontDescription key="fontDescription" type="system" pointSize="17"/> <fontDescription key="fontDescription" type="system" pointSize="17"/>
<nil key="textColor"/> <nil key="textColor"/>
<nil key="highlightedColor"/> <nil key="highlightedColor"/>
...@@ -63,7 +67,7 @@ ...@@ -63,7 +67,7 @@
</constraints> </constraints>
</imageView> </imageView>
</subviews> </subviews>
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<constraints> <constraints>
<constraint firstItem="EZz-Dn-OWc" firstAttribute="centerY" secondItem="jTF-UR-ztj" secondAttribute="centerY" id="20h-GQ-ca0"/> <constraint firstItem="EZz-Dn-OWc" firstAttribute="centerY" secondItem="jTF-UR-ztj" secondAttribute="centerY" id="20h-GQ-ca0"/>
<constraint firstItem="EZz-Dn-OWc" firstAttribute="leading" secondItem="jTF-UR-ztj" secondAttribute="leading" constant="40" id="Vxp-ei-hfg"/> <constraint firstItem="EZz-Dn-OWc" firstAttribute="leading" secondItem="jTF-UR-ztj" secondAttribute="leading" constant="40" id="Vxp-ei-hfg"/>
...@@ -79,9 +83,9 @@ ...@@ -79,9 +83,9 @@
<stackView opaque="NO" contentMode="scaleToFill" distribution="fillEqually" spacing="10" translatesAutoresizingMaskIntoConstraints="NO" id="G7p-BC-jg4"> <stackView opaque="NO" contentMode="scaleToFill" distribution="fillEqually" spacing="10" translatesAutoresizingMaskIntoConstraints="NO" id="G7p-BC-jg4">
<rect key="frame" x="20" y="577" width="335" height="50"/> <rect key="frame" x="20" y="577" width="335" height="50"/>
<subviews> <subviews>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Ygn-WM-1nI"> <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Ygn-WM-1nI">
<rect key="frame" x="0.0" y="0.0" width="162.5" height="50"/> <rect key="frame" x="0.0" y="0.0" width="162.5" height="50"/>
<color key="backgroundColor" systemColor="tertiarySystemGroupedBackgroundColor" red="0.94901960780000005" green="0.94901960780000005" blue="0.96862745100000003" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> <color key="backgroundColor" systemColor="tertiarySystemGroupedBackgroundColor"/>
<fontDescription key="fontDescription" type="boldSystem" pointSize="18"/> <fontDescription key="fontDescription" type="boldSystem" pointSize="18"/>
<state key="normal" title="Retake"> <state key="normal" title="Retake">
<color key="titleColor" red="0.99603885410000004" green="0.46561479569999997" blue="0.0034391828810000002" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> <color key="titleColor" red="0.99603885410000004" green="0.46561479569999997" blue="0.0034391828810000002" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
...@@ -113,20 +117,26 @@ ...@@ -113,20 +117,26 @@
</connections> </connections>
</button> </button>
</subviews> </subviews>
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<constraints> <constraints>
<constraint firstAttribute="height" constant="50" id="U4E-iW-Pgb"/> <constraint firstAttribute="height" constant="50" id="U4E-iW-Pgb"/>
</constraints> </constraints>
</stackView> </stackView>
</subviews> </subviews>
<viewLayoutGuide key="safeArea" id="fnl-2z-Ty3"/>
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<constraints> <constraints>
<constraint firstItem="fnl-2z-Ty3" firstAttribute="trailing" secondItem="IVc-JQ-1gz" secondAttribute="trailing" id="3yE-zI-j42"/> <constraint firstItem="fnl-2z-Ty3" firstAttribute="trailing" secondItem="IVc-JQ-1gz" secondAttribute="trailing" id="3yE-zI-j42"/>
<constraint firstItem="azs-9d-VhT" firstAttribute="top" secondItem="i5M-Pr-FkT" secondAttribute="top" id="8Q2-df-pI0"/>
<constraint firstItem="K0l-gD-eeu" firstAttribute="centerX" secondItem="fnl-2z-Ty3" secondAttribute="centerX" id="8gk-Av-D0o"/> <constraint firstItem="K0l-gD-eeu" firstAttribute="centerX" secondItem="fnl-2z-Ty3" secondAttribute="centerX" id="8gk-Av-D0o"/>
<constraint firstAttribute="trailing" secondItem="azs-9d-VhT" secondAttribute="trailing" id="9Eb-Of-8pZ"/>
<constraint firstItem="fnl-2z-Ty3" firstAttribute="trailing" secondItem="jTF-UR-ztj" secondAttribute="trailing" id="ELj-E5-PcU"/> <constraint firstItem="fnl-2z-Ty3" firstAttribute="trailing" secondItem="jTF-UR-ztj" secondAttribute="trailing" id="ELj-E5-PcU"/>
<constraint firstItem="azs-9d-VhT" firstAttribute="leading" secondItem="fnl-2z-Ty3" secondAttribute="leading" id="HO0-cW-A0u"/>
<constraint firstItem="fnl-2z-Ty3" firstAttribute="trailing" secondItem="G7p-BC-jg4" secondAttribute="trailing" constant="20" id="K7S-w9-Csu"/> <constraint firstItem="fnl-2z-Ty3" firstAttribute="trailing" secondItem="G7p-BC-jg4" secondAttribute="trailing" constant="20" id="K7S-w9-Csu"/>
<constraint firstItem="jTF-UR-ztj" firstAttribute="leading" secondItem="fnl-2z-Ty3" secondAttribute="leading" id="Q0C-GZ-u9m"/> <constraint firstItem="jTF-UR-ztj" firstAttribute="leading" secondItem="fnl-2z-Ty3" secondAttribute="leading" id="Q0C-GZ-u9m"/>
<constraint firstItem="IVc-JQ-1gz" firstAttribute="leading" secondItem="fnl-2z-Ty3" secondAttribute="leading" id="RRz-Z6-RL0"/> <constraint firstItem="IVc-JQ-1gz" firstAttribute="leading" secondItem="fnl-2z-Ty3" secondAttribute="leading" id="RRz-Z6-RL0"/>
<constraint firstItem="G7p-BC-jg4" firstAttribute="leading" secondItem="fnl-2z-Ty3" secondAttribute="leading" constant="20" id="VPW-4V-SrR"/> <constraint firstItem="G7p-BC-jg4" firstAttribute="leading" secondItem="fnl-2z-Ty3" secondAttribute="leading" constant="20" id="VPW-4V-SrR"/>
<constraint firstAttribute="bottom" secondItem="azs-9d-VhT" secondAttribute="bottom" id="Xap-xC-OZ5"/>
<constraint firstItem="jTF-UR-ztj" firstAttribute="top" secondItem="IVc-JQ-1gz" secondAttribute="bottom" constant="20" id="XrM-V0-72h"/> <constraint firstItem="jTF-UR-ztj" firstAttribute="top" secondItem="IVc-JQ-1gz" secondAttribute="bottom" constant="20" id="XrM-V0-72h"/>
<constraint firstItem="G7p-BC-jg4" firstAttribute="top" secondItem="K0l-gD-eeu" secondAttribute="bottom" constant="45" id="cfL-Mz-nlh"/> <constraint firstItem="G7p-BC-jg4" firstAttribute="top" secondItem="K0l-gD-eeu" secondAttribute="bottom" constant="45" id="cfL-Mz-nlh"/>
<constraint firstItem="K0l-gD-eeu" firstAttribute="leading" secondItem="fnl-2z-Ty3" secondAttribute="leading" constant="10" id="cwR-lR-ot1"/> <constraint firstItem="K0l-gD-eeu" firstAttribute="leading" secondItem="fnl-2z-Ty3" secondAttribute="leading" constant="10" id="cwR-lR-ot1"/>
...@@ -134,12 +144,15 @@ ...@@ -134,12 +144,15 @@
<constraint firstItem="fnl-2z-Ty3" firstAttribute="bottom" secondItem="G7p-BC-jg4" secondAttribute="bottom" constant="40" id="qni-G5-mW6"/> <constraint firstItem="fnl-2z-Ty3" firstAttribute="bottom" secondItem="G7p-BC-jg4" secondAttribute="bottom" constant="40" id="qni-G5-mW6"/>
<constraint firstItem="K0l-gD-eeu" firstAttribute="top" secondItem="jTF-UR-ztj" secondAttribute="bottom" constant="10" id="yOm-E4-Arn"/> <constraint firstItem="K0l-gD-eeu" firstAttribute="top" secondItem="jTF-UR-ztj" secondAttribute="bottom" constant="10" id="yOm-E4-Arn"/>
</constraints> </constraints>
<viewLayoutGuide key="safeArea" id="fnl-2z-Ty3"/>
<point key="canvasLocation" x="133" y="131"/> <point key="canvasLocation" x="133" y="131"/>
</view> </view>
</objects> </objects>
<resources> <resources>
<image name="Back.png" width="31.5" height="53.5"/> <image name="Back.png" width="31.5" height="53.5"/>
<image name="Next.png" width="30" height="15"/> <image name="Next.png" width="30" height="15"/>
<image name="back_light.png" width="2484" height="4416"/>
<systemColor name="tertiarySystemGroupedBackgroundColor">
<color red="0.94901960784313721" green="0.94901960784313721" blue="0.96862745098039216" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
</systemColor>
</resources> </resources>
</document> </document>
...@@ -21,7 +21,7 @@ class SBKResultCapture: UIViewController { ...@@ -21,7 +21,7 @@ class SBKResultCapture: UIViewController {
var idFront: String = "" var idFront: String = ""
var idBack: String = "" var idBack: String = ""
var URLToken: String = "" var URLToken: String = ""
var completionSuccessResultCard: ([String:Any])->Void = {_ in} var completionSuccessResultCard: (_ data: [String: Any]?, _ cardImage: Data?, _ faceImage: Data?) -> Void = {_,_,_ in}
override func viewDidLoad() { override func viewDidLoad() {
super.viewDidLoad() super.viewDidLoad()
...@@ -34,7 +34,7 @@ class SBKResultCapture: UIViewController { ...@@ -34,7 +34,7 @@ class SBKResultCapture: UIViewController {
func loadConfigUI() { func loadConfigUI() {
//self.lbCopyright.text = Global.copyright //self.lbCopyright.text = Global.copyright
//self.lbCopyright.textColor = UIColor.colorFromHexa(Global.colorTextPreview) //self.lbCopyright.textColor = UIColor.colorFromHexa(Global.colorTextPreview)
self.lbDescription.textColor = UIColor.colorFromHexa(Global.colorTextPreview) //self.lbDescription.textColor = UIColor.colorFromHexa(Global.colorTextPreview)
//self.btnNext.backgroundColor = UIColor.colorFromHexa(Global.colorButtonNext) //self.btnNext.backgroundColor = UIColor.colorFromHexa(Global.colorButtonNext)
//self.btnClose.backgroundColor = UIColor.colorFromHexa(Global.colorButtonBack) //self.btnClose.backgroundColor = UIColor.colorFromHexa(Global.colorButtonBack)
//self.btnNext.setTitleColor(UIColor.colorFromHexa(Global.colorTextButtonNext), for: .normal) //self.btnNext.setTitleColor(UIColor.colorFromHexa(Global.colorTextButtonNext), for: .normal)
...@@ -58,7 +58,7 @@ class SBKResultCapture: UIViewController { ...@@ -58,7 +58,7 @@ class SBKResultCapture: UIViewController {
let scale = imgPhotoCard.frame.width / imageCap!.size.width let scale = imgPhotoCard.frame.width / imageCap!.size.width
var cropImage: UIImage? var cropImage: UIImage?
if self.statusScreen == "horizontal" { if UIDevice.current.userInterfaceIdiom == .pad {
cropImage = SBKValidateInput.shared.cropImageHorizontal(image: imageCap!, rect: CGRect(x: imageCap!.size.width * 1 / 10, y: imageCap!.size.height * 3 / 20, width: imageCap!.size.width * 8 / 10, height: imageCap!.size.height * 8 / 10), scale: 1.0)!.rotate(radians: .pi / 2) cropImage = SBKValidateInput.shared.cropImageHorizontal(image: imageCap!, rect: CGRect(x: imageCap!.size.width * 1 / 10, y: imageCap!.size.height * 3 / 20, width: imageCap!.size.width * 8 / 10, height: imageCap!.size.height * 8 / 10), scale: 1.0)!.rotate(radians: .pi / 2)
} else { } else {
cropImage = self.cropImage(image: imageCap!, rect: CGRect(x: imageCap!.size.width / 20, y: imageCap!.size.height / 8 + imageCap!.size.height / 50, width: imageCap!.size.width * 18 / 20, height: imageCap!.size.width * 18 / 20 * 3 / 4 ), scale: scale) cropImage = self.cropImage(image: imageCap!, rect: CGRect(x: imageCap!.size.width / 20, y: imageCap!.size.height / 8 + imageCap!.size.height / 50, width: imageCap!.size.width * 18 / 20, height: imageCap!.size.width * 18 / 20 * 3 / 4 ), scale: scale)
...@@ -89,9 +89,9 @@ class SBKResultCapture: UIViewController { ...@@ -89,9 +89,9 @@ class SBKResultCapture: UIViewController {
viewControllers.idBack = self.idBack viewControllers.idBack = self.idBack
viewControllers.URLToken = self.URLToken viewControllers.URLToken = self.URLToken
viewControllers.completionSuccessTutorialFace = { [weak self] data in viewControllers.completionSuccessTutorialFace = { [weak self] data, cardImage, faceImage in
guard let `self` = self else { return } guard let `self` = self else { return }
self.completionSuccessResultCard(data) self.completionSuccessResultCard(data, cardImage, faceImage)
} }
self.navigationController?.pushViewController(viewControllers, animated: true) self.navigationController?.pushViewController(viewControllers, animated: true)
} else { } else {
...@@ -100,9 +100,9 @@ class SBKResultCapture: UIViewController { ...@@ -100,9 +100,9 @@ class SBKResultCapture: UIViewController {
viewControllers.idBack = self.idBack viewControllers.idBack = self.idBack
viewControllers.URLToken = self.URLToken viewControllers.URLToken = self.URLToken
viewControllers.completionSuccessFaceRecord = { [weak self] data in viewControllers.completionSuccessFaceRecord = { [weak self] data, cardImage, faceImage in
guard let `self` = self else { return } guard let `self` = self else { return }
self.completionSuccessResultCard(data) self.completionSuccessResultCard(data, cardImage, faceImage)
} }
self.navigationController?.pushViewController(viewControllers, animated: true) self.navigationController?.pushViewController(viewControllers, animated: true)
} }
...@@ -122,9 +122,9 @@ class SBKResultCapture: UIViewController { ...@@ -122,9 +122,9 @@ class SBKResultCapture: UIViewController {
viewControllers.idFront = self.idFront viewControllers.idFront = self.idFront
viewControllers.URLToken = self.URLToken viewControllers.URLToken = self.URLToken
viewControllers.completionSuccessCard = { [weak self] data in viewControllers.completionSuccessCard = { [weak self] data, cardImage, faceImage in
guard let `self` = self else { return } guard let `self` = self else { return }
self.completionSuccessResultCard(data) self.completionSuccessResultCard(data, cardImage, faceImage)
} }
self.navigationController?.pushViewController(viewControllers, animated: true) self.navigationController?.pushViewController(viewControllers, animated: true)
......
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="16097" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES"> <document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="16097.2" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
<device id="retina4_0" orientation="portrait" appearance="light"/> <device id="retina4_0" orientation="portrait" appearance="light"/>
<dependencies> <dependencies>
<deployment identifier="iOS"/> <deployment identifier="iOS"/>
...@@ -23,6 +23,9 @@ ...@@ -23,6 +23,9 @@
<rect key="frame" x="0.0" y="0.0" width="320" height="568"/> <rect key="frame" x="0.0" y="0.0" width="320" height="568"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews> <subviews>
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="back_light.png" translatesAutoresizingMaskIntoConstraints="NO" id="lcB-I3-th1">
<rect key="frame" x="0.0" y="0.0" width="320" height="568"/>
</imageView>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="uyc-Hd-7Jb"> <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="uyc-Hd-7Jb">
<rect key="frame" x="5" y="5" width="40" height="30"/> <rect key="frame" x="5" y="5" width="40" height="30"/>
<constraints> <constraints>
...@@ -105,11 +108,15 @@ ...@@ -105,11 +108,15 @@
<constraint firstItem="er2-v1-Th5" firstAttribute="centerX" secondItem="fnl-2z-Ty3" secondAttribute="centerX" id="DW0-Ay-p5l"/> <constraint firstItem="er2-v1-Th5" firstAttribute="centerX" secondItem="fnl-2z-Ty3" secondAttribute="centerX" id="DW0-Ay-p5l"/>
<constraint firstItem="fnl-2z-Ty3" firstAttribute="bottom" secondItem="hKU-OV-8Xz" secondAttribute="bottom" constant="40" id="Ddb-Pw-GTx"/> <constraint firstItem="fnl-2z-Ty3" firstAttribute="bottom" secondItem="hKU-OV-8Xz" secondAttribute="bottom" constant="40" id="Ddb-Pw-GTx"/>
<constraint firstItem="IMd-rw-iRb" firstAttribute="top" secondItem="cKc-Rf-YxK" secondAttribute="bottom" constant="40" id="Hmq-XT-RXq"/> <constraint firstItem="IMd-rw-iRb" firstAttribute="top" secondItem="cKc-Rf-YxK" secondAttribute="bottom" constant="40" id="Hmq-XT-RXq"/>
<constraint firstItem="lcB-I3-th1" firstAttribute="top" secondItem="i5M-Pr-FkT" secondAttribute="top" id="I9s-GY-66r"/>
<constraint firstItem="fnl-2z-Ty3" firstAttribute="trailing" secondItem="IMd-rw-iRb" secondAttribute="trailing" constant="20" id="IvA-sL-Xwm"/> <constraint firstItem="fnl-2z-Ty3" firstAttribute="trailing" secondItem="IMd-rw-iRb" secondAttribute="trailing" constant="20" id="IvA-sL-Xwm"/>
<constraint firstAttribute="bottom" secondItem="lcB-I3-th1" secondAttribute="bottom" id="Kda-US-yVh"/>
<constraint firstItem="cKc-Rf-YxK" firstAttribute="centerX" secondItem="fnl-2z-Ty3" secondAttribute="centerX" id="Q5c-vK-ezA"/> <constraint firstItem="cKc-Rf-YxK" firstAttribute="centerX" secondItem="fnl-2z-Ty3" secondAttribute="centerX" id="Q5c-vK-ezA"/>
<constraint firstItem="hKU-OV-8Xz" firstAttribute="centerX" secondItem="fnl-2z-Ty3" secondAttribute="centerX" id="ZpP-oW-71S"/> <constraint firstItem="hKU-OV-8Xz" firstAttribute="centerX" secondItem="fnl-2z-Ty3" secondAttribute="centerX" id="ZpP-oW-71S"/>
<constraint firstAttribute="trailing" secondItem="lcB-I3-th1" secondAttribute="trailing" id="aV1-0P-v0a"/>
<constraint firstItem="IMd-rw-iRb" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" constant="20" id="je7-ie-JdT"/> <constraint firstItem="IMd-rw-iRb" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" constant="20" id="je7-ie-JdT"/>
<constraint firstItem="uyc-Hd-7Jb" firstAttribute="top" secondItem="fnl-2z-Ty3" secondAttribute="top" constant="5" id="kai-jC-edg"/> <constraint firstItem="uyc-Hd-7Jb" firstAttribute="top" secondItem="fnl-2z-Ty3" secondAttribute="top" constant="5" id="kai-jC-edg"/>
<constraint firstItem="lcB-I3-th1" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" id="s5k-q6-k8q"/>
<constraint firstItem="er2-v1-Th5" firstAttribute="top" relation="greaterThanOrEqual" secondItem="IMd-rw-iRb" secondAttribute="bottom" constant="10" id="vzk-mC-JPg"/> <constraint firstItem="er2-v1-Th5" firstAttribute="top" relation="greaterThanOrEqual" secondItem="IMd-rw-iRb" secondAttribute="bottom" constant="10" id="vzk-mC-JPg"/>
</constraints> </constraints>
<viewLayoutGuide key="safeArea" id="fnl-2z-Ty3"/> <viewLayoutGuide key="safeArea" id="fnl-2z-Ty3"/>
...@@ -119,5 +126,6 @@ ...@@ -119,5 +126,6 @@
<resources> <resources>
<image name="Back.png" width="31.5" height="53.5"/> <image name="Back.png" width="31.5" height="53.5"/>
<image name="Next.png" width="30" height="15"/> <image name="Next.png" width="30" height="15"/>
<image name="back_light.png" width="2484" height="4416"/>
</resources> </resources>
</document> </document>
...@@ -11,34 +11,19 @@ class SBKTutorialVC: UIViewController { ...@@ -11,34 +11,19 @@ class SBKTutorialVC: UIViewController {
@IBOutlet weak var btnProceed: UIButton! @IBOutlet weak var btnProceed: UIButton!
var URLToken: String = "" var URLToken: String = ""
var completionSuccessTutorial: ([String:Any]) -> Void = {_ in} var completionSuccessTutorial: (_ data: [String: Any]?, _ cardImage: Data?, _ faceImage: Data?) -> Void = {_,_,_ in}
override func viewDidLoad() { override func viewDidLoad() {
super.viewDidLoad() super.viewDidLoad()
// var image = UIImage(named: "back", in: Bundle(for: SBKTutorialVC.self), compatibleWith: nil)
// image = image?.withRenderingMode(.alwaysOriginal)
//
// let button = UIButton(type: .system)
// button.setImage(image, for: .normal)
// button.setTitle("Back".localized(), for: .normal)
// button.imageEdgeInsets.left = -5
// button.setTitleColor(UIColor.black, for: .normal)
// button.sizeToFit()
// button.addTarget(self, action: #selector(self.back), for: .touchUpInside)
//
// let newBackButton = UIBarButtonItem(customView: button)
// self.navigationItem.leftBarButtonItem = newBackButton
// btnProceed.imageView?.contentMode = .scaleAspectFit
// btnProceed.imageEdgeInsets = UIEdgeInsets(top: 100, left: 200, bottom: 100, right: 200)
} }
//Chuyển sang màn chụp thẻ mặt trước //Chuyển sang màn chụp thẻ mặt trước
@IBAction func onProceedToCaptureID(_ sender: Any) { @IBAction func onProceedToCaptureID(_ sender: Any) {
let controller = SBKCaptureCardVC() let controller = SBKCaptureCardVC()
controller.URLToken = self.URLToken controller.URLToken = self.URLToken
controller.completionSuccessCard = { [weak self] data in controller.completionSuccessCard = { [weak self] data, cardImage, faceImage in
guard let `self` = self else { return } guard let `self` = self else { return }
self.completionSuccessTutorial(data) self.completionSuccessTutorial(data, cardImage, faceImage)
} }
self.navigationController?.pushViewController(controller, animated: true) self.navigationController?.pushViewController(controller, animated: true)
......
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="16097" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES"> <document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="17156" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
<device id="retina6_5" orientation="portrait" appearance="light"/> <device id="retina6_5" orientation="portrait" appearance="light"/>
<dependencies> <dependencies>
<deployment identifier="iOS"/> <deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="16087"/> <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="17125"/>
<capability name="Safe area layout guides" minToolsVersion="9.0"/> <capability name="Safe area layout guides" minToolsVersion="9.0"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies> </dependencies>
...@@ -39,7 +39,7 @@ ...@@ -39,7 +39,7 @@
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" misplaced="YES" text="We support scan following document types" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="5zV-az-SvM"> <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" misplaced="YES" text="We support scan following document types" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="5zV-az-SvM">
<rect key="frame" x="10" y="82" width="394" height="62.333333333333329"/> <rect key="frame" x="10" y="82" width="394" height="62.333333333333329"/>
<fontDescription key="fontDescription" type="system" pointSize="17"/> <fontDescription key="fontDescription" type="system" pointSize="17"/>
<nil key="textColor"/> <color key="textColor" white="0.0" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<nil key="highlightedColor"/> <nil key="highlightedColor"/>
</label> </label>
<stackView opaque="NO" contentMode="scaleToFill" distribution="equalSpacing" translatesAutoresizingMaskIntoConstraints="NO" id="Reg-bd-ohy"> <stackView opaque="NO" contentMode="scaleToFill" distribution="equalSpacing" translatesAutoresizingMaskIntoConstraints="NO" id="Reg-bd-ohy">
...@@ -88,7 +88,7 @@ ...@@ -88,7 +88,7 @@
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="To verify one's identity, follow the tips below" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Wr6-Yc-KZF"> <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="To verify one's identity, follow the tips below" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Wr6-Yc-KZF">
<rect key="frame" x="20" y="10.000000000000004" width="374" height="58.333333333333343"/> <rect key="frame" x="20" y="10.000000000000004" width="374" height="58.333333333333343"/>
<fontDescription key="fontDescription" type="system" pointSize="17"/> <fontDescription key="fontDescription" type="system" pointSize="17"/>
<nil key="textColor"/> <color key="textColor" white="0.0" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<nil key="highlightedColor"/> <nil key="highlightedColor"/>
</label> </label>
<stackView opaque="NO" contentMode="scaleToFill" distribution="fillEqually" spacing="10" translatesAutoresizingMaskIntoConstraints="NO" id="m3X-6L-a5Q"> <stackView opaque="NO" contentMode="scaleToFill" distribution="fillEqually" spacing="10" translatesAutoresizingMaskIntoConstraints="NO" id="m3X-6L-a5Q">
...@@ -106,11 +106,11 @@ ...@@ -106,11 +106,11 @@
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Place within the box" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="zKV-7d-S9Z"> <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Place within the box" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="zKV-7d-S9Z">
<rect key="frame" x="0.0" y="154.99999999999994" width="124.66666666666667" height="46.666666666666657"/> <rect key="frame" x="0.0" y="154.99999999999994" width="124.66666666666667" height="46.666666666666657"/>
<fontDescription key="fontDescription" type="system" pointSize="12"/> <fontDescription key="fontDescription" type="system" pointSize="12"/>
<nil key="textColor"/> <color key="textColor" white="0.0" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<nil key="highlightedColor"/> <nil key="highlightedColor"/>
</label> </label>
</subviews> </subviews>
<color key="backgroundColor" systemColor="systemBackgroundColor" cocoaTouchSystemColor="whiteColor"/> <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<constraints> <constraints>
<constraint firstItem="zKV-7d-S9Z" firstAttribute="top" secondItem="jha-tX-Ply" secondAttribute="bottom" constant="5" id="0gF-Zp-9Eg"/> <constraint firstItem="zKV-7d-S9Z" firstAttribute="top" secondItem="jha-tX-Ply" secondAttribute="bottom" constant="5" id="0gF-Zp-9Eg"/>
<constraint firstItem="jha-tX-Ply" firstAttribute="top" secondItem="V2d-3w-egK" secondAttribute="top" id="CNG-ni-qDi"/> <constraint firstItem="jha-tX-Ply" firstAttribute="top" secondItem="V2d-3w-egK" secondAttribute="top" id="CNG-ni-qDi"/>
...@@ -133,11 +133,11 @@ ...@@ -133,11 +133,11 @@
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Do not place outside" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="NCX-HI-DmM"> <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Do not place outside" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="NCX-HI-DmM">
<rect key="frame" x="0.0" y="154.99999999999994" width="124.66666666666667" height="46.666666666666657"/> <rect key="frame" x="0.0" y="154.99999999999994" width="124.66666666666667" height="46.666666666666657"/>
<fontDescription key="fontDescription" type="system" pointSize="12"/> <fontDescription key="fontDescription" type="system" pointSize="12"/>
<nil key="textColor"/> <color key="textColor" white="0.0" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<nil key="highlightedColor"/> <nil key="highlightedColor"/>
</label> </label>
</subviews> </subviews>
<color key="backgroundColor" systemColor="systemBackgroundColor" cocoaTouchSystemColor="whiteColor"/> <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<constraints> <constraints>
<constraint firstItem="NCX-HI-DmM" firstAttribute="top" secondItem="i67-SP-e2c" secondAttribute="bottom" constant="5" id="A45-4M-oWc"/> <constraint firstItem="NCX-HI-DmM" firstAttribute="top" secondItem="i67-SP-e2c" secondAttribute="bottom" constant="5" id="A45-4M-oWc"/>
<constraint firstAttribute="bottom" secondItem="NCX-HI-DmM" secondAttribute="bottom" constant="10" id="BCI-ji-a8n"/> <constraint firstAttribute="bottom" secondItem="NCX-HI-DmM" secondAttribute="bottom" constant="10" id="BCI-ji-a8n"/>
...@@ -160,11 +160,11 @@ ...@@ -160,11 +160,11 @@
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Avoid glare" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="vzC-Ny-HhW"> <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Avoid glare" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="vzC-Ny-HhW">
<rect key="frame" x="0.0" y="154.99999999999994" width="124.66666666666667" height="46.666666666666657"/> <rect key="frame" x="0.0" y="154.99999999999994" width="124.66666666666667" height="46.666666666666657"/>
<fontDescription key="fontDescription" type="system" pointSize="12"/> <fontDescription key="fontDescription" type="system" pointSize="12"/>
<nil key="textColor"/> <color key="textColor" white="0.0" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<nil key="highlightedColor"/> <nil key="highlightedColor"/>
</label> </label>
</subviews> </subviews>
<color key="backgroundColor" systemColor="systemBackgroundColor" cocoaTouchSystemColor="whiteColor"/> <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<constraints> <constraints>
<constraint firstAttribute="bottom" secondItem="vzC-Ny-HhW" secondAttribute="bottom" constant="10" id="Fcl-GZ-xQK"/> <constraint firstAttribute="bottom" secondItem="vzC-Ny-HhW" secondAttribute="bottom" constant="10" id="Fcl-GZ-xQK"/>
<constraint firstItem="vzC-Ny-HhW" firstAttribute="leading" secondItem="LIh-la-7y5" secondAttribute="leading" id="MPX-T8-Sal"/> <constraint firstItem="vzC-Ny-HhW" firstAttribute="leading" secondItem="LIh-la-7y5" secondAttribute="leading" id="MPX-T8-Sal"/>
...@@ -176,9 +176,10 @@ ...@@ -176,9 +176,10 @@
</constraints> </constraints>
</view> </view>
</subviews> </subviews>
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
</stackView> </stackView>
</subviews> </subviews>
<color key="backgroundColor" systemColor="systemBackgroundColor" cocoaTouchSystemColor="whiteColor"/> <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<constraints> <constraints>
<constraint firstItem="m3X-6L-a5Q" firstAttribute="leading" secondItem="8Yt-Qx-ATJ" secondAttribute="leading" constant="10" id="ABq-Wg-xoM"/> <constraint firstItem="m3X-6L-a5Q" firstAttribute="leading" secondItem="8Yt-Qx-ATJ" secondAttribute="leading" constant="10" id="ABq-Wg-xoM"/>
<constraint firstItem="m3X-6L-a5Q" firstAttribute="centerX" secondItem="8Yt-Qx-ATJ" secondAttribute="centerX" id="KdF-op-tbT"/> <constraint firstItem="m3X-6L-a5Q" firstAttribute="centerX" secondItem="8Yt-Qx-ATJ" secondAttribute="centerX" id="KdF-op-tbT"/>
...@@ -213,7 +214,7 @@ ...@@ -213,7 +214,7 @@
</connections> </connections>
</button> </button>
</subviews> </subviews>
<color key="backgroundColor" systemColor="systemBackgroundColor" cocoaTouchSystemColor="whiteColor"/> <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<constraints> <constraints>
<constraint firstItem="76Z-UO-zeX" firstAttribute="leading" secondItem="N3E-7I-DJ4" secondAttribute="leading" constant="30" id="KSM-aM-TyU"/> <constraint firstItem="76Z-UO-zeX" firstAttribute="leading" secondItem="N3E-7I-DJ4" secondAttribute="leading" constant="30" id="KSM-aM-TyU"/>
<constraint firstItem="76Z-UO-zeX" firstAttribute="top" secondItem="N3E-7I-DJ4" secondAttribute="top" id="U01-bN-F1w"/> <constraint firstItem="76Z-UO-zeX" firstAttribute="top" secondItem="N3E-7I-DJ4" secondAttribute="top" id="U01-bN-F1w"/>
...@@ -228,6 +229,7 @@ ...@@ -228,6 +229,7 @@
</constraints> </constraints>
</stackView> </stackView>
</subviews> </subviews>
<viewLayoutGuide key="safeArea" id="fnl-2z-Ty3"/>
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<constraints> <constraints>
<constraint firstItem="naM-63-c8r" firstAttribute="trailing" secondItem="fnl-2z-Ty3" secondAttribute="trailing" id="4na-RD-0w6"/> <constraint firstItem="naM-63-c8r" firstAttribute="trailing" secondItem="fnl-2z-Ty3" secondAttribute="trailing" id="4na-RD-0w6"/>
...@@ -236,7 +238,6 @@ ...@@ -236,7 +238,6 @@
<constraint firstItem="fnl-2z-Ty3" firstAttribute="bottom" secondItem="naM-63-c8r" secondAttribute="bottom" id="mgA-Kd-cV3"/> <constraint firstItem="fnl-2z-Ty3" firstAttribute="bottom" secondItem="naM-63-c8r" secondAttribute="bottom" id="mgA-Kd-cV3"/>
</constraints> </constraints>
<nil key="simulatedTopBarMetrics"/> <nil key="simulatedTopBarMetrics"/>
<viewLayoutGuide key="safeArea" id="fnl-2z-Ty3"/>
<point key="canvasLocation" x="131.8840579710145" y="93.75"/> <point key="canvasLocation" x="131.8840579710145" y="93.75"/>
</view> </view>
</objects> </objects>
......
...@@ -17,7 +17,7 @@ class SBKTutorialFaceVC: UIViewController { ...@@ -17,7 +17,7 @@ class SBKTutorialFaceVC: UIViewController {
var idFront: String = "" var idFront: String = ""
var idBack: String = "" var idBack: String = ""
var URLToken: String = "" var URLToken: String = ""
var completionSuccessTutorialFace: ([String:Any])->Void = {_ in} var completionSuccessTutorialFace: (_ data: [String: Any]?, _ cardImage: Data?, _ faceImage: Data?) -> Void = {_,_,_ in}
override func viewDidLoad() { override func viewDidLoad() {
super.viewDidLoad() super.viewDidLoad()
...@@ -72,9 +72,9 @@ class SBKTutorialFaceVC: UIViewController { ...@@ -72,9 +72,9 @@ class SBKTutorialFaceVC: UIViewController {
viewControllers.idBack = self.idBack viewControllers.idBack = self.idBack
viewControllers.URLToken = self.URLToken viewControllers.URLToken = self.URLToken
viewControllers.completionSuccessFace = { [weak self] data in viewControllers.completionSuccessFace = { [weak self] data, cardImage, faceImage in
guard let `self` = self else { return } guard let `self` = self else { return }
self.completionSuccessTutorialFace(data) self.completionSuccessTutorialFace(data, cardImage, faceImage)
} }
self.navigationController?.pushViewController(viewControllers, animated: true) self.navigationController?.pushViewController(viewControllers, animated: true)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment