From 6fba5eac1446f0ac85f783f49c6caaca4c97701f Mon Sep 17 00:00:00 2001 From: samdogg7 Date: Thu, 22 May 2025 10:07:33 -0400 Subject: [PATCH] Issue-89 Fix orientation lock --- Sources/Internal/UI/MCamera/MCamera+Config.swift | 1 + Sources/Internal/UI/MCamera/MCamera.swift | 2 +- .../Camera Settings/Public+CameraSettings+MCamera.swift | 8 +++++++- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/Sources/Internal/UI/MCamera/MCamera+Config.swift b/Sources/Internal/UI/MCamera/MCamera+Config.swift index 3e1f3b93c..8307c38b2 100644 --- a/Sources/Internal/UI/MCamera/MCamera+Config.swift +++ b/Sources/Internal/UI/MCamera/MCamera+Config.swift @@ -24,5 +24,6 @@ extension MCamera { @MainActor class Config { // MARK: Others var appDelegate: MApplicationDelegate.Type? = nil + var originalOrientationLock: UIInterfaceOrientationMask = .all var isCameraConfigured: Bool = false }} diff --git a/Sources/Internal/UI/MCamera/MCamera.swift b/Sources/Internal/UI/MCamera/MCamera.swift index b80737778..a84b2e58e 100644 --- a/Sources/Internal/UI/MCamera/MCamera.swift +++ b/Sources/Internal/UI/MCamera/MCamera.swift @@ -144,7 +144,7 @@ private extension MCamera { } private extension MCamera { func lockScreenOrientation(_ orientation: UIInterfaceOrientationMask?) { - config.appDelegate?.orientationLock = orientation ?? .all + config.appDelegate?.orientationLock = orientation ?? config.originalOrientationLock UINavigationController.attemptRotationToDeviceOrientation() } func notifyUserOfMediaCaptured(_ capturedMedia: MCameraMedia) { diff --git a/Sources/Public/Camera Settings/Public+CameraSettings+MCamera.swift b/Sources/Public/Camera Settings/Public+CameraSettings+MCamera.swift index 483823fb6..927b9607e 100644 --- a/Sources/Public/Camera Settings/Public+CameraSettings+MCamera.swift +++ b/Sources/Public/Camera Settings/Public+CameraSettings+MCamera.swift @@ -384,7 +384,13 @@ public extension MCamera { } ``` */ - func lockCameraInPortraitOrientation(_ appDelegate: MApplicationDelegate.Type) -> Self { config.appDelegate = appDelegate; manager.attributes.orientationLocked = true; return self } + func lockCameraInPortraitOrientation(_ appDelegate: MApplicationDelegate.Type) -> Self { + config.appDelegate = appDelegate + config.originalOrientationLock = appDelegate.orientationLock + manager.attributes.orientationLocked = true + + return self + } /** Starts the camera session.