From f7cea7df477eef600f75800e7f65f48c4c569eec Mon Sep 17 00:00:00 2001 From: Yan Chen Date: Sat, 26 Jan 2019 16:51:52 -0500 Subject: [PATCH] Fix flashlight button disappears when flip camera twice --- Source/Pages/Photo/YPCameraVC.swift | 3 +-- Source/Pages/Photo/YPPhotoCapture.swift | 2 +- Source/Pages/Photo/YPPhotoCaptureDefaults.swift | 5 ++++- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/Source/Pages/Photo/YPCameraVC.swift b/Source/Pages/Photo/YPCameraVC.swift index 582ba758b..dd4f2f384 100644 --- a/Source/Pages/Photo/YPCameraVC.swift +++ b/Source/Pages/Photo/YPCameraVC.swift @@ -83,8 +83,7 @@ public class YPCameraVC: UIViewController, UIGestureRecognizerDelegate, YPPermis @objc func flipButtonTapped() { doAfterPermissionCheck { [weak self] in - self?.photoCapture.flipCamera() - DispatchQueue.main.async { + self?.photoCapture.flipCamera { self?.refreshFlashButton() } } diff --git a/Source/Pages/Photo/YPPhotoCapture.swift b/Source/Pages/Photo/YPPhotoCapture.swift index 3e167a73a..6fc18e23c 100644 --- a/Source/Pages/Photo/YPPhotoCapture.swift +++ b/Source/Pages/Photo/YPPhotoCapture.swift @@ -19,7 +19,7 @@ protocol YPPhotoCapture: class { func tryToggleFlash() var hasFlash: Bool { get } var currentFlashMode: YPFlashMode { get } - func flipCamera() + func flipCamera(completion: @escaping () -> Void) func shoot(completion: @escaping (Data) -> Void) var videoLayer: AVCaptureVideoPreviewLayer! { get set } var device: AVCaptureDevice? { get } diff --git a/Source/Pages/Photo/YPPhotoCaptureDefaults.swift b/Source/Pages/Photo/YPPhotoCaptureDefaults.swift index e85f9dc12..0457a8a28 100644 --- a/Source/Pages/Photo/YPPhotoCaptureDefaults.swift +++ b/Source/Pages/Photo/YPPhotoCaptureDefaults.swift @@ -103,9 +103,12 @@ extension YPPhotoCapture { // MARK: - Flip - func flipCamera() { + func flipCamera(completion: @escaping () -> Void) { sessionQueue.async { [weak self] in self?.flip() + DispatchQueue.main.async { + completion() + } } }