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() + } } }