diff options
author | Roopesh Chander <roop@roopc.net> | 2018-11-01 02:14:30 +0530 |
---|---|---|
committer | Roopesh Chander <roop@roopc.net> | 2018-11-01 11:45:44 +0530 |
commit | b96e5ae5630c156529cde29e9f2a16a62fdb1bfd (patch) | |
tree | 854d7505c9c9c74916038d4a09bea937c7cabb92 /WireGuard/WireGuard/UI/iOS/QRScanViewController.swift | |
parent | Revert "QR code: QR code scanning is not available in the simulator" (diff) | |
download | wireguard-apple-b96e5ae5630c156529cde29e9f2a16a62fdb1bfd.tar.xz wireguard-apple-b96e5ae5630c156529cde29e9f2a16a62fdb1bfd.zip |
QR code: Degrade gracefully when running on the simulator or on a device without a camera
Signed-off-by: Roopesh Chander <roop@roopc.net>
Diffstat (limited to '')
-rw-r--r-- | WireGuard/WireGuard/UI/iOS/QRScanViewController.swift | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/WireGuard/WireGuard/UI/iOS/QRScanViewController.swift b/WireGuard/WireGuard/UI/iOS/QRScanViewController.swift index 21b50e9..ec397f6 100644 --- a/WireGuard/WireGuard/UI/iOS/QRScanViewController.swift +++ b/WireGuard/WireGuard/UI/iOS/QRScanViewController.swift @@ -13,7 +13,7 @@ class QRScanViewController: UIViewController { weak var delegate: QRScanViewControllerDelegate? var captureSession: AVCaptureSession? = AVCaptureSession() let metadataOutput = AVCaptureMetadataOutput() - var previewLayer: AVCaptureVideoPreviewLayer! + var previewLayer: AVCaptureVideoPreviewLayer? override func viewDidLoad() { super.viewDidLoad() @@ -50,10 +50,11 @@ class QRScanViewController: UIViewController { metadataOutput.setMetadataObjectsDelegate(self, queue: .main) metadataOutput.metadataObjectTypes = [.qr] - previewLayer = AVCaptureVideoPreviewLayer(session: captureSession) + let previewLayer = AVCaptureVideoPreviewLayer(session: captureSession) previewLayer.frame = view.layer.bounds previewLayer.videoGravity = .resizeAspectFill view.layer.insertSublayer(previewLayer, at: 0) + self.previewLayer = previewLayer } override func viewWillAppear(_ animated: Bool) { @@ -75,7 +76,7 @@ class QRScanViewController: UIViewController { override func viewDidLayoutSubviews() { super.viewDidLayoutSubviews() - if let connection = previewLayer.connection { + if let connection = previewLayer?.connection { let currentDevice: UIDevice = UIDevice.current @@ -100,8 +101,8 @@ class QRScanViewController: UIViewController { } } } - - previewLayer.frame = self.view.bounds + + previewLayer?.frame = self.view.bounds } func scanDidComplete(withCode code: String) { |