From b96e5ae5630c156529cde29e9f2a16a62fdb1bfd Mon Sep 17 00:00:00 2001 From: Roopesh Chander Date: Thu, 1 Nov 2018 02:14:30 +0530 Subject: [PATCH] QR code: Degrade gracefully when running on the simulator or on a device without a camera Signed-off-by: Roopesh Chander --- WireGuard/WireGuard/UI/iOS/QRScanViewController.swift | 11 ++++++----- 1 file 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) { -- 2.47.3