From de0ece477fd6dec36a22ecae71fc20c90b047c0a Mon Sep 17 00:00:00 2001 From: ivan-vanyusho Date: Sun, 23 Nov 2025 22:55:56 +0300 Subject: [PATCH 1/5] Update version android_camerax pubspec.yaml --- packages/camera/camera_android_camerax/pubspec.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/camera/camera_android_camerax/pubspec.yaml b/packages/camera/camera_android_camerax/pubspec.yaml index 6ab1c8390c95..0490f0a51b3f 100644 --- a/packages/camera/camera_android_camerax/pubspec.yaml +++ b/packages/camera/camera_android_camerax/pubspec.yaml @@ -31,7 +31,7 @@ dev_dependencies: sdk: flutter leak_tracker_flutter_testing: any mockito: ^5.4.4 - pigeon: ^26.1.4 + pigeon: ^25.3.2 topics: - camera From d09aecfa8f9277ed943d71b201adb335194a38f8 Mon Sep 17 00:00:00 2001 From: ivan-vanyusho Date: Tue, 20 Jan 2026 11:23:36 +0300 Subject: [PATCH 2/5] ios saving path --- .../Sources/camera_avfoundation/DefaultCamera.swift | 4 +--- packages/camera/camera_avfoundation/pubspec.yaml | 2 +- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/packages/camera/camera_avfoundation/ios/camera_avfoundation/Sources/camera_avfoundation/DefaultCamera.swift b/packages/camera/camera_avfoundation/ios/camera_avfoundation/Sources/camera_avfoundation/DefaultCamera.swift index 15a001d63ef0..26c97545a3dc 100644 --- a/packages/camera/camera_avfoundation/ios/camera_avfoundation/Sources/camera_avfoundation/DefaultCamera.swift +++ b/packages/camera/camera_avfoundation/ios/camera_avfoundation/Sources/camera_avfoundation/DefaultCamera.swift @@ -716,9 +716,7 @@ final class DefaultCamera: NSObject, Camera { subfolder: String, prefix: String ) throws -> String { - let documentDirectory = FileManager.default.urls( - for: .documentDirectory, - in: .userDomainMask)[0] + let documentDirectory = FileManager.default.temporaryDirectory let fileDirectory = documentDirectory.appendingPathComponent("camera").appendingPathComponent( subfolder) diff --git a/packages/camera/camera_avfoundation/pubspec.yaml b/packages/camera/camera_avfoundation/pubspec.yaml index 4f53f2d6d57f..85b28bc7abf3 100644 --- a/packages/camera/camera_avfoundation/pubspec.yaml +++ b/packages/camera/camera_avfoundation/pubspec.yaml @@ -2,7 +2,7 @@ name: camera_avfoundation description: iOS implementation of the camera plugin. repository: https://github.com/flutter/packages/tree/main/packages/camera/camera_avfoundation issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+camera%22 -version: 0.9.22+9 +version: 0.9.23+0 environment: sdk: ^3.9.0 From ba2c699c85009dbda1d72b8aacfae93e5e6bae7d Mon Sep 17 00:00:00 2001 From: ivan-vanyusho Date: Mon, 26 Jan 2026 15:05:29 +0300 Subject: [PATCH 3/5] Added file path saving tests for iOS. --- .../ios/RunnerTests/PhotoCaptureTests.swift | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/packages/camera/camera_avfoundation/example/ios/RunnerTests/PhotoCaptureTests.swift b/packages/camera/camera_avfoundation/example/ios/RunnerTests/PhotoCaptureTests.swift index 7f8cef124d6f..3237907746e2 100644 --- a/packages/camera/camera_avfoundation/example/ios/RunnerTests/PhotoCaptureTests.swift +++ b/packages/camera/camera_avfoundation/example/ios/RunnerTests/PhotoCaptureTests.swift @@ -201,4 +201,42 @@ final class PhotoCaptureTests: XCTestCase { waitForExpectations(timeout: 30, handler: nil) } + + func testCaptureToFile_mustSavePhotoToCameraPicturesDirectory() { + let expectation = self.expectation( + description: "Photo must be saved to camera pictures directory.") + + let captureSessionQueue = DispatchQueue(label: "capture_session_queue") + captureSessionQueue.setSpecific( + key: captureSessionQueueSpecificKey, value: captureSessionQueueSpecificValue) + let cam = createCam(with: captureSessionQueue) + + let mockOutput = MockCapturePhotoOutput() + mockOutput.capturePhotoWithSettingsStub = { settings, photoDelegate in + let delegate = cam.inProgressSavePhotoDelegates[settings.uniqueID] + let ioQueue = DispatchQueue(label: "io_queue") + ioQueue.async { + delegate?.completionHandler(delegate?.filePath, nil) + } + } + cam.capturePhotoOutput = mockOutput + + captureSessionQueue.async { + cam.captureToFile { filePath, error in + XCTAssertNil(error) + XCTAssertNotNil(filePath) + + if let filePath = filePath { + XCTAssertTrue( + filePath.contains("/tmp/camera/pictures/"), + "Photo must be saved in /tmp/camera/pictures/ directory" + ) + } + + expectation.fulfill() + } + } + + waitForExpectations(timeout: 30, handler: nil) + } } From ac9d06e9855eae4077c12273247e711e0cbbb29e Mon Sep 17 00:00:00 2001 From: ivan-vanyusho Date: Thu, 22 Jan 2026 17:08:02 +0300 Subject: [PATCH 4/5] Update CHANGELOG.md --- packages/camera/camera_avfoundation/CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/packages/camera/camera_avfoundation/CHANGELOG.md b/packages/camera/camera_avfoundation/CHANGELOG.md index d008c309612c..14cd0a2c9a50 100644 --- a/packages/camera/camera_avfoundation/CHANGELOG.md +++ b/packages/camera/camera_avfoundation/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.9.23 + +* Changes the default storage path for camera pictures and videos on iOS from the application's Documents directory to the system's temporaryDirectory. + ## 0.9.22+9 * Migrates `FLTSavePhotoDelegate`, `FLTWritableData`, and `FLTImageStreamHandler` classes to Swift. From 114293db30d07ccab5ca19c4f704cd5d89734f96 Mon Sep 17 00:00:00 2001 From: ivan-vanyusho Date: Thu, 22 Jan 2026 17:08:02 +0300 Subject: [PATCH 5/5] Update CHANGELOG.md --- packages/camera/camera_android_camerax/pubspec.yaml | 2 +- packages/camera/camera_avfoundation/CHANGELOG.md | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/camera/camera_android_camerax/pubspec.yaml b/packages/camera/camera_android_camerax/pubspec.yaml index 0490f0a51b3f..6ab1c8390c95 100644 --- a/packages/camera/camera_android_camerax/pubspec.yaml +++ b/packages/camera/camera_android_camerax/pubspec.yaml @@ -31,7 +31,7 @@ dev_dependencies: sdk: flutter leak_tracker_flutter_testing: any mockito: ^5.4.4 - pigeon: ^25.3.2 + pigeon: ^26.1.4 topics: - camera diff --git a/packages/camera/camera_avfoundation/CHANGELOG.md b/packages/camera/camera_avfoundation/CHANGELOG.md index d008c309612c..14cd0a2c9a50 100644 --- a/packages/camera/camera_avfoundation/CHANGELOG.md +++ b/packages/camera/camera_avfoundation/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.9.23 + +* Changes the default storage path for camera pictures and videos on iOS from the application's Documents directory to the system's temporaryDirectory. + ## 0.9.22+9 * Migrates `FLTSavePhotoDelegate`, `FLTWritableData`, and `FLTImageStreamHandler` classes to Swift.