diff --git a/submodules/Camera/Sources/Camera.swift b/submodules/Camera/Sources/Camera.swift index 9d0c54d93c..9e693c2574 100644 --- a/submodules/Camera/Sources/Camera.swift +++ b/submodules/Camera/Sources/Camera.swift @@ -144,7 +144,7 @@ private final class CameraContext { transform = CGAffineTransformTranslate(transform, 0.0, -size.height) ciImage = ciImage.transformed(by: transform) } - ciImage = ciImage.clampedToExtent().applyingGaussianBlur(sigma: Camera.isDualCameraSupported ? 100.0 : 40.0).cropped(to: CGRect(origin: .zero, size: size)) + ciImage = ciImage.clampedToExtent().applyingGaussianBlur(sigma: Camera.isDualCameraSupported(forRoundVideo: true) ? 100.0 : 40.0).cropped(to: CGRect(origin: .zero, size: size)) if let cgImage = self.ciContext.createCGImage(ciImage, from: ciImage.extent) { let uiImage = UIImage(cgImage: cgImage, scale: 1.0, orientation: .right) if front { @@ -1056,8 +1056,11 @@ public final class Camera { } } - public static var isDualCameraSupported: Bool { + public static func isDualCameraSupported(forRoundVideo: Bool = false) -> Bool { if #available(iOS 13.0, *), AVCaptureMultiCamSession.isMultiCamSupported && !DeviceModel.current.isIpad { + if forRoundVideo && DeviceModel.current == .iPhoneXR { + return false + } return true } else { return false diff --git a/submodules/TelegramUI/Components/CameraScreen/Sources/CameraScreen.swift b/submodules/TelegramUI/Components/CameraScreen/Sources/CameraScreen.swift index 881fdd33fe..84de31e778 100644 --- a/submodules/TelegramUI/Components/CameraScreen/Sources/CameraScreen.swift +++ b/submodules/TelegramUI/Components/CameraScreen/Sources/CameraScreen.swift @@ -1061,7 +1061,7 @@ private final class CameraScreenComponent: CombinedComponent { .disappear(.default(scale: true)) ) - if !isTablet && Camera.isDualCameraSupported { + if !isTablet && Camera.isDualCameraSupported(forRoundVideo: false) { let dualButton = dualButton.update( component: CameraButton( content: AnyComponentWithIdentity( @@ -1513,7 +1513,7 @@ public class CameraScreen: ViewController { self.previewBlurView = BlurView() self.previewBlurView.isUserInteractionEnabled = false - var isDualCameraEnabled = Camera.isDualCameraSupported + var isDualCameraEnabled = Camera.isDualCameraSupported(forRoundVideo: false) if isDualCameraEnabled { if let isDualCameraEnabledValue = UserDefaults.standard.object(forKey: "TelegramStoryCameraIsDualEnabled") as? NSNumber { isDualCameraEnabled = isDualCameraEnabledValue.boolValue diff --git a/submodules/TelegramUI/Components/VideoMessageCameraScreen/Sources/VideoMessageCameraScreen.swift b/submodules/TelegramUI/Components/VideoMessageCameraScreen/Sources/VideoMessageCameraScreen.swift index 911c5a611d..cbb09465a8 100644 --- a/submodules/TelegramUI/Components/VideoMessageCameraScreen/Sources/VideoMessageCameraScreen.swift +++ b/submodules/TelegramUI/Components/VideoMessageCameraScreen/Sources/VideoMessageCameraScreen.swift @@ -621,7 +621,7 @@ public class VideoMessageCameraScreen: ViewController { self.previewContainerView = UIView() self.previewContainerView.clipsToBounds = true - let isDualCameraEnabled = Camera.isDualCameraSupported + let isDualCameraEnabled = Camera.isDualCameraSupported(forRoundVideo: true) let isFrontPosition = "".isEmpty self.mainPreviewView = CameraSimplePreviewView(frame: .zero, main: true, roundVideo: true) @@ -695,7 +695,7 @@ public class VideoMessageCameraScreen: ViewController { func withReadyCamera(isFirstTime: Bool = false, _ f: @escaping () -> Void) { let previewReady: Signal if #available(iOS 13.0, *) { - previewReady = self.cameraState.isDualCameraEnabled ? self.additionalPreviewView.isPreviewing : self.mainPreviewView.isPreviewing |> delay(0.25, queue: Queue.mainQueue()) + previewReady = self.cameraState.isDualCameraEnabled ? self.additionalPreviewView.isPreviewing : self.mainPreviewView.isPreviewing |> delay(0.3, queue: Queue.mainQueue()) } else { previewReady = .single(true) |> delay(0.35, queue: Queue.mainQueue()) }