diff --git a/IOSAccessAssessment.xcodeproj/project.pbxproj b/IOSAccessAssessment.xcodeproj/project.pbxproj index b7546d51..b168a86e 100644 --- a/IOSAccessAssessment.xcodeproj/project.pbxproj +++ b/IOSAccessAssessment.xcodeproj/project.pbxproj @@ -1325,6 +1325,7 @@ SUPPORTS_MACCATALYST = NO; SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO; SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO; + "SWIFT_ACTIVE_COMPILATION_CONDITIONS[arch=*]" = STRESS_MODE; SWIFT_EMIT_LOC_STRINGS = YES; SWIFT_OBJC_BRIDGING_HEADER = "IOSAccessAssessment/IOSAccessAssessment-Bridging-Header.h"; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; @@ -1376,6 +1377,7 @@ SUPPORTS_MACCATALYST = NO; SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO; SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO; + "SWIFT_ACTIVE_COMPILATION_CONDITIONS[arch=*]" = STRESS_MODE; SWIFT_EMIT_LOC_STRINGS = YES; SWIFT_OBJC_BRIDGING_HEADER = "IOSAccessAssessment/IOSAccessAssessment-Bridging-Header.h"; SWIFT_VERSION = 5.0; diff --git a/IOSAccessAssessment.xcodeproj/xcshareddata/xcschemes/iOSPointMapper-FieldDebug.xcscheme b/IOSAccessAssessment.xcodeproj/xcshareddata/xcschemes/iOSPointMapper-FieldDebug.xcscheme new file mode 100644 index 00000000..220ba2ce --- /dev/null +++ b/IOSAccessAssessment.xcodeproj/xcshareddata/xcschemes/iOSPointMapper-FieldDebug.xcscheme @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/IOSAccessAssessment/ARCamera/TestCameraManager.swift b/IOSAccessAssessment/ARCamera/TestCameraManager.swift index ed1b1fcb..4349ba06 100644 --- a/IOSAccessAssessment/ARCamera/TestCameraManager.swift +++ b/IOSAccessAssessment/ARCamera/TestCameraManager.swift @@ -562,4 +562,9 @@ extension TestCameraManager { self.cameraMeshResults = nil self.cameraCache = ARCameraCache() } + + @MainActor + func resume() throws { + self.outputConsumer?.resumeSession() + } } diff --git a/IOSAccessAssessment/View/TestMode/TestCameraView.swift b/IOSAccessAssessment/View/TestMode/TestCameraView.swift index 1f127487..c452df21 100644 --- a/IOSAccessAssessment/View/TestMode/TestCameraView.swift +++ b/IOSAccessAssessment/View/TestMode/TestCameraView.swift @@ -245,6 +245,14 @@ struct TestCameraView: View { } } .onDisappear { + Task { + do { + try manager.pause() + locationManager.stopLocationUpdates() + } catch { + print("Error pausing ARCameraManager: \(error)") + } + } } .alert(ARCameraViewConstants.Texts.managerStatusAlertTitleKey, isPresented: $managerConfigureStatusViewModel.isFailed, actions: { Button(ARCameraViewConstants.Texts.managerStatusAlertDismissButtonKey) { @@ -284,8 +292,13 @@ struct TestCameraView: View { // If the AnnotationView is dismissed, clear capture history and move to the next capture data Task { if (oldValue == true && newValue == false) { - await sharedAppData.refreshQueue() - self.currentIndex = max(min(self.currentIndex + 1, self.totalCaptures - 1), 0) + do { + await sharedAppData.refreshQueue() + try manager.resume() + self.currentIndex = max(min(self.currentIndex + 1, self.totalCaptures - 1), 0) + } catch { + managerConfigureStatusViewModel.update(isFailed: true, errorMessage: error.localizedDescription) + } } } }