From 58880cc0b41ce49a1f24949f4aad408659f0c805 Mon Sep 17 00:00:00 2001 From: David Jia Date: Mon, 29 Dec 2025 16:53:11 -0800 Subject: [PATCH 1/3] Add ContentResolver to ImagePostProcessor.processImage() --- .../core/camera/postprocess/ImagePostProcessor.kt | 3 ++- .../google/jetpackcamera/core/camera/CameraXCameraSystem.kt | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/core/camera/postprocess/src/main/java/com/google/jetpackcamera/core/camera/postprocess/ImagePostProcessor.kt b/core/camera/postprocess/src/main/java/com/google/jetpackcamera/core/camera/postprocess/ImagePostProcessor.kt index a65ff6063..62e3dac06 100644 --- a/core/camera/postprocess/src/main/java/com/google/jetpackcamera/core/camera/postprocess/ImagePostProcessor.kt +++ b/core/camera/postprocess/src/main/java/com/google/jetpackcamera/core/camera/postprocess/ImagePostProcessor.kt @@ -15,6 +15,7 @@ */ package com.google.jetpackcamera.core.camera.postprocess +import android.content.ContentResolver import android.net.Uri /** @@ -30,5 +31,5 @@ interface ImagePostProcessor { * * @param uri The [Uri] of the saved image that needs to be processed. */ - suspend fun postProcessImage(uri: Uri) + suspend fun postProcessImage(uri: Uri, contentResolver: ContentResolver) } diff --git a/core/camera/src/main/java/com/google/jetpackcamera/core/camera/CameraXCameraSystem.kt b/core/camera/src/main/java/com/google/jetpackcamera/core/camera/CameraXCameraSystem.kt index 36f262c6d..4bc00bc72 100644 --- a/core/camera/src/main/java/com/google/jetpackcamera/core/camera/CameraXCameraSystem.kt +++ b/core/camera/src/main/java/com/google/jetpackcamera/core/camera/CameraXCameraSystem.kt @@ -620,7 +620,7 @@ constructor( }.also { outputFileResults -> outputFileResults.savedUri?.let { for ((key, value) in imagePostProcessors) { - value.get().postProcessImage(it) + value.get().postProcessImage(it, contentResolver) Log.d(TAG, "Post processed image with $key") } Log.d(TAG, "Saved image to $it") From ec1d7afd6a603bd51b9c5d8904fe98b284d4be25 Mon Sep 17 00:00:00 2001 From: David Jia Date: Tue, 6 Jan 2026 14:17:03 -0800 Subject: [PATCH 2/3] fix test and add kdoc --- .../jetpackcamera/core/camera/postprocess/ImagePostProcessor.kt | 1 + .../google/jetpackcamera/core/camera/CameraXCameraSystemTest.kt | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/core/camera/postprocess/src/main/java/com/google/jetpackcamera/core/camera/postprocess/ImagePostProcessor.kt b/core/camera/postprocess/src/main/java/com/google/jetpackcamera/core/camera/postprocess/ImagePostProcessor.kt index 62e3dac06..f307f4b02 100644 --- a/core/camera/postprocess/src/main/java/com/google/jetpackcamera/core/camera/postprocess/ImagePostProcessor.kt +++ b/core/camera/postprocess/src/main/java/com/google/jetpackcamera/core/camera/postprocess/ImagePostProcessor.kt @@ -30,6 +30,7 @@ interface ImagePostProcessor { * performing the post-processing. * * @param uri The [Uri] of the saved image that needs to be processed. + * @param contentResolver The [ContentResolver] used for post processing. */ suspend fun postProcessImage(uri: Uri, contentResolver: ContentResolver) } diff --git a/core/camera/src/androidTest/java/com/google/jetpackcamera/core/camera/CameraXCameraSystemTest.kt b/core/camera/src/androidTest/java/com/google/jetpackcamera/core/camera/CameraXCameraSystemTest.kt index a4f34d8a4..4fff693cd 100644 --- a/core/camera/src/androidTest/java/com/google/jetpackcamera/core/camera/CameraXCameraSystemTest.kt +++ b/core/camera/src/androidTest/java/com/google/jetpackcamera/core/camera/CameraXCameraSystemTest.kt @@ -405,7 +405,7 @@ object FakeImagePostProcessorFeatureKey : ImagePostProcessorFeatureKey class FakeImagePostProcessor(val shouldError: Boolean = false) : ImagePostProcessor { var postProcessImageCalled = false var savedUri: Uri? = null - override suspend fun postProcessImage(uri: Uri) { + override suspend fun postProcessImage(uri: Uri, contentResolver: ContentResolver) { postProcessImageCalled = true savedUri = uri if (shouldError) throw RuntimeException("Post process failed") From 0788f83742a237127fc5723221eafc08a2561332 Mon Sep 17 00:00:00 2001 From: David Jia Date: Fri, 9 Jan 2026 14:50:58 -0800 Subject: [PATCH 3/3] incorporate contentResolver into tests --- .../jetpackcamera/core/camera/CameraXCameraSystemTest.kt | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/core/camera/src/androidTest/java/com/google/jetpackcamera/core/camera/CameraXCameraSystemTest.kt b/core/camera/src/androidTest/java/com/google/jetpackcamera/core/camera/CameraXCameraSystemTest.kt index 4fff693cd..81ad60fc1 100644 --- a/core/camera/src/androidTest/java/com/google/jetpackcamera/core/camera/CameraXCameraSystemTest.kt +++ b/core/camera/src/androidTest/java/com/google/jetpackcamera/core/camera/CameraXCameraSystemTest.kt @@ -140,6 +140,7 @@ class CameraXCameraSystemTest { // Assert. assertThat(imagePostProcessor.postProcessImageCalled).isTrue() + assertThat(imagePostProcessor.savedContentResolver).isEqualTo(contentResolver) } @Test @@ -160,6 +161,7 @@ class CameraXCameraSystemTest { // Assert. assertThat(imagePostProcessor.postProcessImageCalled).isFalse() + assertThat(imagePostProcessor.savedContentResolver).isNull() } @Test @@ -177,6 +179,7 @@ class CameraXCameraSystemTest { } catch (e: RuntimeException) { // Assert. assertThat(imagePostProcessor.postProcessImageCalled).isTrue() + assertThat(imagePostProcessor.savedContentResolver).isEqualTo(contentResolver) val savedUri = imagePostProcessor.savedUri assertThat(savedUri).isNotNull() @@ -405,9 +408,11 @@ object FakeImagePostProcessorFeatureKey : ImagePostProcessorFeatureKey class FakeImagePostProcessor(val shouldError: Boolean = false) : ImagePostProcessor { var postProcessImageCalled = false var savedUri: Uri? = null + var savedContentResolver: ContentResolver? = null override suspend fun postProcessImage(uri: Uri, contentResolver: ContentResolver) { postProcessImageCalled = true savedUri = uri + savedContentResolver = contentResolver if (shouldError) throw RuntimeException("Post process failed") } }