From 3cbe0c2ed1cee2475337c9b0b267b04cf838e816 Mon Sep 17 00:00:00 2001 From: Vadym Markov Date: Thu, 1 Feb 2018 11:38:04 +0100 Subject: [PATCH] Fix torch mode for front camera --- Sources/Controllers/CameraViewController.swift | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/Sources/Controllers/CameraViewController.swift b/Sources/Controllers/CameraViewController.swift index c5e0c46..b184d2e 100644 --- a/Sources/Controllers/CameraViewController.swift +++ b/Sources/Controllers/CameraViewController.swift @@ -58,6 +58,7 @@ public final class CameraViewController: UIViewController { private var torchMode: TorchMode = .off { didSet { guard let captureDevice = captureDevice, captureDevice.hasFlash else { return } + guard captureDevice.isTorchModeSupported(torchMode.captureTorchMode) else { return } do { try captureDevice.lockForConfiguration() @@ -138,7 +139,8 @@ public final class CameraViewController: UIViewController { torchMode = .off captureSession.startRunning() focusView.isHidden = false - flashButton.isHidden = false + flashButton.isHidden = captureDevice?.position == .front + cameraButton.isHidden = !showsCameraButton } func stopCapturing() { @@ -150,6 +152,7 @@ public final class CameraViewController: UIViewController { captureSession.stopRunning() focusView.isHidden = true flashButton.isHidden = true + cameraButton.isHidden = true } // MARK: - Actions @@ -243,6 +246,7 @@ public final class CameraViewController: UIViewController { } captureSession.addInput(newInput) captureSession.commitConfiguration() + flashButton.isHidden = position == .front } catch { delegate?.cameraViewController(self, didReceiveError: error) return @@ -423,7 +427,7 @@ private extension CameraViewController { func makeCameraButton() -> UIButton { let button = UIButton(type: .custom) button.setImage(imageNamed("cameraRotate"), for: UIControlState()) - button.isHidden = showsCameraButton + button.isHidden = !showsCameraButton return button } }